11. januar 2006 - 19:27Der er
30 kommentarer og 1 løsning
Kalender system Ret/slet funktion
Jeg er ved at lave et kalender system til en side. Men er godt nok ramlet i en mur af håbløshed... jeg kan ikke rigtigt beskriv problemet for jeg aner ikke hvad der går galt. i stedet for at vise noget viser den bare hvid skærm som om PHP filen er tom. Håber virkelig at der er nogen der kan gennemskue hvad der er galt i koden! Fil med kode ligger her http://www.kfiil.com/mix/rs_kalender.rar ! Filen i "aktion" kan ses her http://morsoegarden.dk/php/admin/rs_kalender_kfiil.php
Jeg har hentet det kode du postede, og jeg får følgende meddelelse:
Parse error: parse error, expecting `','' or `';'' in rs_kalender.php on line 25
Jeg kan godt nok ikke lige få øje på noget deromkring, men jeg tænker på om det måske har noget med strengens længde at gøre. Når jeg skal udskrive så store blokke plejer jeg at bruge denne konstruktion:
echo<<<EOF
Alt det tekst du gerne vil have udskrevet med $variabler og det hele.
Nej, på din server er error_reporting slået fra i php.ini. Når der så er syntax-fejl bliver scriptet ikke kørt (og dermed heller ikke de linier som slår error reporting til).
I stedet for at bruge
echo " En eller anden kæmpe blok text, html osv ";
Kan du bruge echo<<<EOF en eller anden kæmpe blok text og html osv. Den udskriver alt indtil den møder 'EOF;' på en linie for sig. EOF;
Fordelen er, at du slipper for at escape alle dine gåseøjne, og stadig kan indsætte dine variabler med $variabel.
Daym vist jeg ikke var slået fra... fedt set... Nu har jeg skrevet:
echo<<<EOF " lalalalala php lalalala " EOF;
så kommer den med fejlen Parse error: syntax error, unexpected T_SL in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/rs_kalender_kfiil.php on line 18
Du skal ikke have gåseøjne med når du bruger det. Det skal skrives ligesom jeg gjorde i eksemplet med echo<<<EOF på en linie for sig selv, og EOF; på en linie for sig selv.
Så har jeg prøvet: echo<<<EOF <form action='kalender_ret.php' method='post'> Overskrift: osv osv osv EOF; } ?> Så kommer fejlen
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/rs_kalender_kfiil.php on line 20
Hvad problemet med den originale kode er, ved jeg virkelig ikke. Det virker som om der mangler der noget (backslash, punktum eller gådeøjne), men jeg synes ikke jeg kan få øje på hvor.
Jeg har lavet det her til dig. Det er testet og det virker.
Det er den modificerede udgave af den fil du lagde op i det originale spørgsmål, så der mangler godt nok tabellen. Når du skal tilgå et array skal det smides ind i {}, så php ved hvad der er en del af variabelnavnet og hvad der hører til teksten.
Det ser ud til at virke som det skal... Nu opstår problemet så bare i den næste fil:
Warning: mysql_query() [function.mysql-query]: Access denied for user: 'morsoegarden.dk@localhost' (Using password: NO) in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 23
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 23
Warning: mysql_query() [function.mysql-query]: Access denied for user: 'morsoegarden.dk@localhost' (Using password: NO) in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 26
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /customers/morsoegarden.dk/morsoegarden.dk/httpd.www/php/admin/kalender_ret.php on line 26 Aktiviteten er opdateret i kalenderen, gå tilbage til -Skriv i kalender Eller til Admin Delen
$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id"; mysql_query($updateSQL);
if ($slet==1) {
conn();
$resultat = mysql_query("delete from $gruppe where id = $id limit 1");
}
echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";
$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id"; mysql_query($updateSQL);
if ($slet==1) {
conn();
$resultat = mysql_query("delete from $gruppe where id = $id limit 1");
}
echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";
$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id"; mysql_query($updateSQL);
if ($slet==1) {
$resultat = mysql_query("delete from $gruppe where id = $id limit 1");
}
echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";
$updateSQL = "UPDATE $kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id"; mysql_query($updateSQL);
if ($slet==1) {
$resultat = mysql_query("delete from $gruppe where id = $id limit 1");
}
echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";
?>
</html>
Er koden nu... og den brokker sig ikke mere... men der sker tilgengæld også nada!
Så vidt jeg kan se er der flere variabler som ikke er defineret nogen steder. F.eks. er $kalender (bruges til at angive tabellen i dine queries) ikke defineret nogen steder. Det samme gælder $id (brugt i din update sql).
En god idé er at rette mysql_query($xxx); til mysql_query($xxx) or die(mysql_error());
Så skulle den gerne fortælle dig når der er fejl i dine SQL sætninger.
$updateSQL = "UPDATE kalender SET day='$day', month='$month', year='$year', daye='$daye', monthe='$monthe', yeare='$yeare', overskrift='$overskrift', beskrivelse='$beskrivelse' WHERE id = $id"; mysql_query($updateSQL) or die(mysql_error());
if ($slet==1) {
$resultat = mysql_query("delete from $gruppe where id = $id limit 1");
}
echo "Aktiviteten er opdateret i kalenderen, gå tilbage til -<a href='kal-skriv.php'>Skriv i kalender</a> Eller til <a href='index.php'>Admin Delen</a>";
?> Dette er koden nu. Nu kan jeg rette i det, for det meste det virker lidt rodet og prøv at kigge på http://www.morsoegarden.dk/php/admin/rs-kalender.php det gentager det som om det bliver skrevet ind i kalenderen igen!
Det er altså ikke fordi jeg ikke vil hjælpe dig, men det er jo ikke meningen at jeg skal skrive dit script. Prøv at kigge en ekstra gang på det kode du har, og se om ikke du kan finde ud af hvorfor det går galt.
Et lille hint ang. slet - min kommentar fra 12/01-2006 17:24:28
Det var nu ikke for at skræmme dig væk, men meningen med exp.dk er at man kan få hjælp hvis man er kørt fast, og på den måde lære af det. Når du nu har noget erfaring fra C++, så skulle jeg mene at du burde kunne gennemskue det kode du har hvis du gjorde et forsøg.
Du er selvfølgelig velkommen til at spørge igen hvis du kører fast, men prøv først om du ikke selv kan gennemskue det.
Kan godt gennemskue den og kan godt se hvad den gør... men kan ikke gennemskue hvor det lige er det går galt... Men vil lige prøve mig lidt frem!!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.