Gästebuch auf Datenbankbasis

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gästebuch auf Datenbankbasis

    Hallo Leute,

    also aus dem Markt+Technik Buch "PHP Der leichte Einstieg" schreibe ich
    gerade ein Script für ein Gästebuch auf Datenbankbasis. Nun habe ich das
    Script für das Gästebuch fertig und auch die nötige Tabelle mit phpmyAdmin
    erstellt und wollte es nun testen und bekommen immer folgende Fehlermeldung :

    Parse error: parse error in gastbuch.php on line 37

    Leider kann ich kein Fehler finden und wollte euch mal um Rat fragen, hier das Script :

    <?php

    //$flag==1, wenn das formular abgeschickt wurde
    if($flag==1)
    {
    //Leerstellen entfernen
    $absender=trim($absender);
    $betreff=trim($betreff);
    $message=trim($message);
    //evt. vorhandenen HTML-Code entfernen
    $absender=strip_tags($absender);
    $betreff=strip_tags($betreff);
    $message=strip_tags($message);

    //testen, ob Felder ausgefüllt sind
    if(!$absender){$fehler="Bitte geben Sie eine Absenderinformation ein.<br>";}
    if(!$betreff){$fehler.="Bitte geben Sie eine Betreffinformation ein.<br>";}
    if(!$message){$fehler.="Bitte geben Sie eine Nachricht ein,<br>";}

    //Wenn Fehler vorhanden, die Textausgabe formatieren
    // und $flag zurücksetzen,damit das Formular erneut angezeigt wird

    if($fehler)
    {
    $meldung="<h2><font color=red>".$fehler."</font></h2>;
    unset($flag);
    }
    else //Es liegt kein Fehler vor, also Speichern der Information in der Datenbank
    {


    //sql-String zusammen bauen
    $tabellenname="gastbuch";
    $sql="INSERT INTO $gastbuch (absender, betreff, message, datum)values
    (´$absender`, `$betreff`, `$message`, now())";
    //Verbinden zur Datenbank
    $link=mysql_connect("localhost" "phpseitentest" "yvonne123123");
    mysql_query($sql, $link);
    $meldung=<h2><font color=red>Ihre Angaben wurde aufgenommen und werden in Kürze in unserem Gästebuch eingetragen.
    </font></h2><a href=´www.mitglied.lycos.de/phpseitentest.php`>Weiter</a>";
    }
    //Ausgeben der Meldung
    echo $meldung;
    } //Ende $flag==1
    if(!$flag)
    {
    ?>

    <form action=´<?php echo $PHP_SELF; ?>´method=post>
    <input type=hidden name=flag value=1>
    <p>Ihr Name: <br>
    <input type=text name=absender value=´<?php echo $absender; ?>´>
    <p>Betreff: <br>
    <input type=text name=betreff value=´<?php echo $betreff; ?>´>
    <p>Ihre Nachricht: <br>
    <textarea name=message>
    <?php echo $message; ?>
    </textarea>
    <br>
    <input type=submit>
    <?php
    }
    ?>
    </b*dy></ht*l>

    gruffy
    Zuletzt geändert von gruffy; 05.11.2002, 16:16.

  • #2
    Ich habe das Code gewusel nur schnell mal durchschaut, aber ich denke das könnte der Fehler sein. Folgende Zeile musst du Ändern!
    Das ist Deine Zeile:

    PHP-Code:
    $meldung=<h2><font color=red>Ihre Angaben wurde aufgenommen und werden in Kürze in unserem Gästebuch eingetragen.
    </
    font></h2><a href=´[url]www.mitglied.lycos.de/phpseitentest.php[/url]`>Weiter</a>"; 
    Ändere diese mal in
    PHP-Code:
    $meldung="<h2><font color=red>Ihre Angaben wurde aufgenommen und werden in Kürze in unserem Gästebuch eingetragen.
    </font></h2><a href=´[url]www.mitglied.lycos.de/phpseitentest.php[/url]`>Weiter</a>"

    Du hast das " - Zeichen am Anfang vergessen. Desweiteren musst du alle " - Zeichen innerhalb deines Strings durch das ' - Zeichen ersetzen oder weglassen.
    Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

    Kommentar


    • #3
      hallo bei folgender Zeile hast du ebenfalls ein " vergessen:

      PHP-Code:
      $meldung="<h2><font color=red>".$fehler."</font></h2>"
      und bei folgender Zeile fehlten die Kommas:

      PHP-Code:
      $link=mysql_connect("localhost","phpseitentest","yvonne123123"); 
      des weiteren solltest du bei deinem Formular statt der´´ diese benutzen:""

      also
      PHP-Code:
      <form action="<?php echo $PHP_SELF?>" method=post>
      <input type=hidden name=flag value=1>
      <p>Ihr Name: <br>
      <input type=text name=absender value="<?php echo $absender?>">
      <p>Betreff: <br>
      <input type=text name=betreff value="<?php echo $betreff?>">
      <p>Ihre Nachricht: <br>
      <textarea name=message>
      <?php echo $message?>
      </textarea>
      <br>
      <input type=submit>

      Kommentar


      • #4
        Habe eure Beiträge mal einwenig Formatiert!!!

        Tipp fürs nächste Mal:
        Makiere bitte die fehlerhafte Zeile und mach bitte [ php] am Anfang und[ /php] am Ende.
        Also so:
        PHP-Code:
        echo"Test"
        Und noch mal zum Nachlesen:
        http://www.php-resource.de/forum/sho...&threadid=9665

        Danke
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          Mhhh also ein wenig weiter bin ich schon gekommen,

          das Forumlar wird jetzt angezeigt aber sonst funktionert noch gar nichts,

          weder die Eintragungen in die Tabelle noch, das ausführen von

          Fehlermeldungen.

          gruffy

          Kommentar


          • #6
            PHP-Code:
            <?php
            //$flag==1, wenn das formular abgeschickt wurde
            if($flag==1)
                {
                
            //Leerstellen entfernen
                
            $absender=trim($absender);
                
            $betreff=trim($betreff);
                
            $message=trim($message);
                
            //evt. vorhandenen HTML-Code entfernen
                
            $absender=strip_tags($absender);
                
            $betreff=strip_tags($betreff);
                
            $message=strip_tags($message);
                
            //testen, ob Felder ausgefüllt sind
                
            if(!$absender)
                    {
                    
            $fehler="Bitte geben Sie eine Absenderinformation ein.<br>";
                    }
                if(!
            $betreff)
                    {
                    
            $fehler.="Bitte geben Sie eine Betreffinformation ein.<br>";
                    }
                if(!
            $message)
                    {
                    
            $fehler.="Bitte geben Sie eine Nachricht ein.<br>";
                    }
                
            //Wenn Fehler vorhanden, die Textausgabe formatieren
                // und $flag zurücksetzen,damit das Formular erneut angezeigt wird
                
            if($fehler)
                    {
                    
            $meldung="<h2><font color=red>".$fehler."</font></h2>";
                    unset(
            $flag);
                    }
                else 
            //Es liegt kein Fehler vor, also Speichern der Information in der Datenbank 
                    
            {
                    
            //sql-String zusammen bauen 
                    
            $tabellenname="gastbuch";
                    
            $sql "INSERT INTO $tabellenname ";
                    
            $sql.= "(absender, betreff, message, datum)";
                    
            $sql.= " VALUES ";
                    
            $sql.= "('$absender', '$betreff', '$message', now())";
                    
            //Verbinden zur Datenbank
                    
            $link=mysql_connect("localhost","phpseitentest","yvonne123123");
                    
            mysql_query($sql$link)or die(mysql_error()) ;
                    
            $meldung="<h2><font color=red>Ihre Angaben wurde aufgenommen und werden";
                    
            $meldung.=" in Kürze in unserem Gästebuch eingetragen.</font></h2>";
                    
            $meldung.="<a href=\"http://www.mitglied.lycos.de/phpseitentest.php\">Weiter</a>";
                    }
                
            //Ausgeben der Meldung
                
            echo $meldung;
                }
                
            //Ende $flag==1
            if(!$flag)
                {
            ?>
            <form action="<?php echo $PHP_SELF?>" method="post">
            <input type="hidden" name="flag" value="1">
            <p>Ihr Name: <br>
            <input type="text" name="absender" value="<?php echo $absender?>">
            <p>Betreff: <br>
            <input type="text" name="betreff" value="<?php echo $betreff?>">
            <p>Ihre Nachricht: <br>
            <textarea name="message">
            <?php echo $message?>
            </textarea>
            <br>
            <input type="submit">
            <?php
                
            }
            ?>
            Mal komplett überarbeitet. IST ABER NICHT GETESTET!!!
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #7
              Supi hat geklappt, aber viel schlauer bin ich nicht,

              das script von wotan ist doch etwas anders als meins,

              heißt das jetzt ich kann mein buch in den papierkorb werfen oder was ??

              Kommentar


              • #8
                Nein brauchst du nicht.

                In den Büchern steht einiges nur in sehr einfacher Form:

                Beispiel:
                PHP-Code:
                $tabellenname="gastbuch";
                $sql "INSERT INTO $tabellenname ";
                $sql.= "(absender, betreff, message, datum)";
                $sql.= " VALUES ";
                $sql.= "('$absender', '$betreff', '$message', now())"
                Diesen Teil habe ich einfach nur auf mehrere Zeilen aufgeteilt. Genauso wie den hier:
                PHP-Code:
                $meldung="<h2><font color=red>Ihre Angaben wurde aufgenommen und werden";
                $meldung.=" in Kürze in unserem Gästebuch eingetragen.</font></h2>";
                $meldung.="<a href=\"http://www.mitglied.lycos.de/phpseitentest.php\">Weiter</a>"
                Was in den Bücher nur schlecht beschrieben wird ist zum Beispiel das:
                PHP-Code:
                $link=mysql_connect("localhost","phpseitentest","yvonne123123");
                mysql_query($sql$link)or die(mysql_error());

                // geht auch so und vielleicht auch einfacher

                // Diesen bereich einfach in einer andere Datei auslagern
                //# Werte für das Testsystem einstellen!
                // Mysql_Server
                $MySQL_Host "localhost";
                // Mysql-User
                $MySQL_User "root";
                // Mysql-Passwort
                $MySQL_Pass "test";
                // Mysql-Datenbank
                $MySQL_Data "phorumtest";
                $conn mysql_connect("$MySQL_Host""$MySQL_User""$MySQL_Pass");
                if(
                $conn)
                {
                mysql_select_db("$MySQL_Data"$conn);
                }
                else
                {
                die(
                mysql_error());
                // "<B>Oops, something goes wrong</b>");
                }

                // und dann
                include("var.inc.php");
                $res mysql_query("INSERT INTO $tabellenname (absender,betreff,message) VALUES ('$absender','$betreff','$message')")or die(mysql_error()); 
                Das sind Sachen die man mit der Zeit und hier im Forum lernt.
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #9
                  Das ist gut dann kann ich mit dem Buch weiter arbeiten,

                  vielen dank für die hilfe, wünsche euch noch einen schönen Abend

                  gruffy

                  Kommentar

                  Lädt...
                  X