Gästebuch Tutorial

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

  • Gästebuch Tutorial

    hallo.
    ich habe mal des gästebuchtutorial von dieser seite

    http://www.php-resource.de/tutorials/read/11/1/

    versucht nachzubauen, aber leider funktioniert es nicht wie beschrieben. könnte da ein fehler im script sein? jedenfalls geht es bei mir nich!

  • #2
    "geht nicht" ist eine schöne Fehlerbeschreibung...


    schreib
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ?>
    an den Anfang der Datei und guck was für Fehler gemeldet werden

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      da kommt dann diese meldung!

      Notice: Undefined variable: action in /srv/www/htdocs/web135/html/Gaestebuch/eintragen.php on line 14

      also jedesmal wenn ich des formular ausgefüllt hab und auf senden geh, lädt sich die eintragen.php neu und ich kann neu eingeben. aber gb-einträge sieht man nicht.

      Kommentar


      • #4
        Original geschrieben von Cabal
        da kommt dann diese meldung!

        Notice: Undefined variable: action in /srv/www/htdocs/web135/html/Gaestebuch/eintragen.php on line 14

        also jedesmal wenn ich des formular ausgefüllt hab und auf senden geh, lädt sich die eintragen.php neu und ich kann neu eingeben. aber gb-einträge sieht man nicht.
        register_globals ist off, d.h. dein Skript sieht wohl so aus
        PHP-Code:
        if (isset($action)) 
        und das sollte z.B. bei einem post-Formular so aussehen
        PHP-Code:
        if (isset($_POST['action'])) 
        siehe dazu auch http://de2.php.net/variables.predefined

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          also bei mir steht da

          if ($action == "add")

          wenn ich des jetzt in

          if (isset($_POST['action']))

          umschreib, passiert auch nix anderes!

          drotzdem danke für die hilfe!

          Kommentar


          • #6
            Und die Zeilennummer in der Fehlermeldung ändert sich auch nicht? Falls doch, dann benutzt dein Script noch anderswo $action statt $_POST['action'], falls nicht, wird einfach kein Wert namens action übermittelt. Das könnte mehrere Ursachen haben, du solltest dann mal den HTML-Code der Formularseite zeigen (die relevanten Teile).

            Kommentar


            • #7
              das mal hier der gesamte script: eintragen.php

              _________________________________________________________
              <html>
              <head>
              <title>Eintragen</title>
              </head>

              <body bgcolor="#FFFFFF">

              <?php
              error_reporting(E_ALL);
              ?>


              <?php
              if ($action == "post"){

              if ($name == "" || $mail == "" || $text == ""){
              echo "<b>Du hast nicht alle Felder ausgef&uuml;llt !</b><br>";
              echo "Klicke auf den Backbutton deines Browsers";
              }
              else{

              if ($www == ""){
              $eintrag = "<a href=\"mailto:$mail\">$name</a><br>$text";
              }
              else{
              $eintrag = "<a href=\"mailto:$mail\">$name</a>

              <br><a href=\"$www\">$www</a>$text<hr><br><br>";
              }

              $datei = fopen("gaestebuch.txt","w+");
              fputs($datei,$eintrag);
              fclose($datei);
              echo "Danke <i>$name</i> f&uuml;r deinen Eintrag";

              }

              }
              else{
              ?>
              <font face="Verdana" size="1">
              <b>Eintragen in mein G&auml;stebuch</b><br>
              <form action="eintragen.php?action=add" method="get">
              Dein Name: <input type="text" name="name" size="24"><br>
              E-Mail: <input type="text" name="mail" size="24"><br>
              Homepage: <input type="text" name="www" size="24"><br>
              <br>
              Dein Eintrag:<br>
              <textarea name="text" cols="35" rows="5"></textarea><br>
              <input type="submit" name="submit" value="Senden">
              </form></font>
              <?php
              }
              ?>
              </body>

              </html>

              ________________________________________________________

              hab die übertragene seite mal über „quelltext anzeigen“ anzeigen lassen und musste feststellen, dass die php-scripte nicht mehr drin sind:
              ________________________________________________________

              <html>
              <head>
              <title>Eintragen</title>
              </head>

              <body bgcolor="#FFFFFF">



              <br />
              <b>Notice</b>: Undefined variable: action in <b>/srv/www/htdocs/web135/html/Gaestebuch/eintragen.php</b> on line <b>14</b><br />

              <font face="Verdana" size="1">
              <b>Eintragen in mein G&auml;stebuch</b><br>
              <form action="eintragen.php?action=add" method="get">
              Dein Name: <input type="text" name="name" size="24"><br>
              E-Mail: <input type="text" name="mail" size="24"><br>
              Homepage: <input type="text" name="www" size="24"><br>
              <br>
              Dein Eintrag:<br>
              <textarea name="text" cols="35" rows="5"></textarea><br>
              <input type="submit" name="submit" value="Senden">
              </form></font>

              </body>

              </html>
              _____________________________________________________

              mit php hab ich mich leider noch nicht so beschäftigt.

              Kommentar


              • #8
                Bitte die PHP-Tags des Forums verwenden! Danke.

                Weißt du eigentlich, was $_POST ist und kennst du den Unterschied zu $_GET? (Nein, nicht der Name.)
                http://de2.php.net/manual/en/languag...predefined.php

                Kommentar


                • #9
                  Original geschrieben von onemorenerd
                  http://de2.php.net/manual/en/languag...predefined.php
                  hat wohl keinen Sinn, denn den Link hatte ich auch schon gepostet *shrug und Thread ab jetzt ignorier*

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Hi erstmal!
                    Leider habe ich genau das selbe Problem.Habe mir den geposteten Link genau durchgelesen aber so wirklich komme ich damit nicht weiter, denn irgendwie gibts bei mir garkein Array mit dem Index action =(. Bin ein absoluter php-Newbie, wäre sehr nett wenn da jemand mal weiterhelfen könnte.

                    Thx!

                    Kommentar


                    • #11
                      Hallo,
                      lest bitte mal diesen Thread .. da wird "für Dumme" erklärt, was es so mit register_globals auf sich hat
                      --> http://php.de/forum/ftopic26569.html

                      Grüße Ben.
                      Java, PHP, (X)HTML, CSS, XML, Linux, Webserver, ... uvm.

                      Kommentar


                      • #12
                        Hallo

                        das problem ligt im <form>-Teil!

                        Ersetzte den Teil von dir:

                        <form action="eintragen.php?action=add" method="get">

                        einfach durch:

                        <form action="eintragen.php?action=add" method="post">

                        dann müsste es gehen...dazu kommt noch etwas wenn du das gästebuch mit "w+" schreibst schreibt es die gaestebuch.txt datei einfach neu und löscht den vorherigen eintrag...

                        Das gibt daher nur immer einen Eintrag in deinem Gästebuch:

                        $datei = fopen("gaestebuch.txt","w+");
                        fputs($datei,$eintrag);
                        fclose($datei);
                        echo "Danke <i>$name</i> für deinen Eintrag";

                        wenn du das ganze aber mit "a" schreibst, hängen sich die neuen einträge einfach hinten an:

                        $datei = fopen("gaestebuch.txt","a");
                        fputs($datei,$eintrag);
                        fclose($datei);
                        echo "Danke <i>$name</i> für deinen Eintrag";

                        w = write (überschreibt)
                        a = append (hängt dazu)

                        dazu kannst du die letzte zeile noch erweitern:

                        echo "Danke <i>$name</i> für deinen Eintrag";
                        <br>
                        <a href=\"zeigen.php\"><input type\"button\" name=\"back\" value=\"Zur&uuml;ck zum G&auml;stebuch\"></a>

                        dann hast du auch einen Button zurück der zu deinem gästebuch führt.

                        Ich werde auf meiner Seite, die in kürze veröffentlicht wird ebenfalls Tutorials einbauen. Dann kommt ein php-forum tutorial dazu!

                        mfg
                        goodone90

                        Kommentar

                        Lädt...
                        X