Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit php gästebuch

Einklappen

Neue Werbung 2019

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

  • Problem mit php gästebuch

    Hi,

    ich habe ein problem mit nem php Gästebuch. Es funktioniert zwar einwandfrei jedoch werden immer auf der Seite Fehler angezeigt mit undefinierten variablen.

    Hier ist mal der Quell text:

    <html>
    <STYLE>
    BODY { background-color:#808080; font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffffff }
    A { font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffaf49 }
    H1 { font-family:Verdana,Arial,Tahoma; font-size:16pt; color:#ffaf49 }
    HR { color:#ffffff }
    TD { font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffffff }
    INPUT,TEXTAREA { background-color:#517aa7; border:1px solid #ffffff; font-family:Arial,Tahoma; font-size:8pt; color:#ffffff; }
    </STYLE>
    <Body>
    <?

    ##### Admin-Passwort #####
    $adminpasswort="*****r";


    $myemail="*****@yahoo.de";

    ##### Soll bei jedem Eintrag eine Mail an Sie geschickt werden (ja/nein)? #####
    $email_senden="ja";

    ########### HAUPTPROGRAMM ###########
    if ($eintrag) { eintrag(); }
    else if ($senden) { auswertung($kommentar,$nname,$hpage,$email); }
    else if ($admin_login) { admin_login(); }
    else if ($admin) { admin($passwort); }
    else if ($loeschen) { loeschen($to_delete); }
    else gaestebuch_zeigen();

    ########### FUNKTIONEN ###########

    function gaestebuch_zeigen ()
    {
    global $PHP_SELF;
    echo <<<FORMULAR
    <h1>Gästebuch</h1>
    <center>
    <FORM METHOD="POST" ACTION="$PHP_SELF">
    <INPUT TYPE="SUBMIT" NAME="eintrag" VALUE="Neuer Eintrag">
    </FORM>
    </center>
    FORMULAR;

    $eintrag=array();
    $lesen=array();
    $teil=array();

    if (file_exists("gbuch.txt")) {

    $datei=fopen("gbuch.txt","r");
    while (!feof($datei)) {
    $lesen=fgets($datei,100000);
    array_push($eintrag,$lesen);
    }

    array_pop($eintrag);
    arsort($eintrag);

    foreach ($eintrag as $zeile) {
    $teil=explode("|",$zeile);

    $sekunden=$teil[0];
    $zeit=$teil[1];
    $name=$teil[2];
    $email=$teil[3];
    $hpage=$teil[4];
    $text=$teil[5];

    echo "<p align=\"justify\" style=\"margin-left:17pt;margin-right:25pt\">\n";
    echo"$zeit
    \n";
    echo "<img src=\"gb_person.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\">$name
    \n";

    if ($email!="") {
    echo "<img src=\"gb_email.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\"><a href=\"mailto:$email\">$email</a>
    \n";
    }

    if ($hpage!="") {
    echo "<img src=\"gb_home.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\"><a href=\"$hpage\" target=\"blank\">$hpage</a>
    \n";
    }

    echo "<p align=\"justify\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">$text</p>";
    echo "</p>\n";
    echo"<hr width=\"80%\" color=\"#2f5a4f\" size=\"1\">\n";

    }

    }
    echo "<p align=\"right\"><a href=\"$PHP_SELF?admin_login=true\">Admin</a>\n";
    }

    function eintrag()
    {
    global $PHP_SELF;

    $ua=getenv("HTTP_USER_AGENT");
    if (1*strpos(strtolower($ua),"msie")>0) {
    $breite1=38;
    $breite2=62;
    } else {
    $breite1=22;
    $breite2=30;
    }

    echo <<<EINTRAG
    <p align="right">zum Gästebuch</p>
    <table cellpadding="5" cellspacing="5" width="100%">
    <tr>
    <td align="center">

    <h1>Eintrag ins Gästebuch</h1>


    <FORM action="$PHP_SELF" method="post">
    <table width="310">
    <tr>
    <td>
    Name:
    </td>
    <td>
    <input type="text" name="nname" size="$breite1" maxlength="40" VALUE="$nname">
    </td>
    </tr>
    <tr>
    <td>
    Email:*
    </td>
    <td>
    <input type="text" name="email" size="$breite1" VALUE="$email">
    </td>
    </tr>
    <tr>
    <td width="33%">
    Homepage:*
    </td>
    <td>
    <input type="text" name="hpage" size="$breite1" VALUE="$hpage">
    </td>
    </tr>
    <tr>
    <td colspan="2">
    Kommentar:

    <textarea name="kommentar" rows="6" cols="$breite2" VALUE="$kommentar"></textarea>
    </td>
    <td>

    </td>
    </tr>
    <tr>
    <td colspan="2">
    <input type="submit" name="senden" value="eintragen">
    <INPUT TYPE="reset" VALUE=" löschen ">
    </td>
    <td>
    </td>
    </tr>
    <tr>
    <td>

    * optional



    </td>
    </tr>
    </table>
    </FORM>

    </td></tr></table>
    EINTRAG;
    }

    function auswertung ($kommentar,$nname,$hpage,$email)
    {
    global $PHP_SELF;
    global $myemail;
    global $email_senden;

    echo "<p align=\"right\"><a href=\"$PHP_SELF\">zum Gästebuch</a></p>\n";

    ####### Die Angaben werden von überflüssigen Zeichen befreit #######
    $kommentar = stripslashes ($kommentar);
    $kommentar = trim ($kommentar);
    $nname = stripslashes ($nname);
    $nname = trim ($nname);
    $hpage = stripslashes ($hpage);
    $hpage = trim ($hpage);
    $email = stripslashes ($email);
    $email = trim ($email);

    ####### Das Datum und die Zeit wird ermittelt #######
    $tag=date("d.");
    $m=array("Januar","Februar","M&auml;rz","April","M ai","Juni","Juli","August","September","Oktober"," November","Dezember");
    $monat=$m[1*date("m")-1];
    $jahr=date("Y");
    $tdw=array("Sonntag","Montag","Dienstag","Mittwoch ","Donnerstag","Freitag","Samstag",);
    $x=date("w");
    $zeit=date("H:i:s");
    $anm=$tdw[$x].",".$tag."".$monat."".$jahr."-".$zeit;
    $sekunden=date("U");

    ####### Definition der Fehlermeldung #######
    $zurueck="Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und die Fehler zu beheben.</center>";

    ####### Überprüfunge auf Fehler #######
    if ((empty($kommentar)) || ((!ereg(".+@.+\..+", $email)) && (!empty($email))) || (empty($nname))) {echo "<center>


    <h1>Fehler !</h1>

    ";}

    ### Kommentar ###
    if (empty($kommentar))
    { echo "Sie keinen Kommentar eingegeben.

    "; echo "$zurueck\n"; }

    ### Email ###
    else
    if(!ereg(".+@.+\..+", $email)&& !empty($email)) {
    echo "Die Email-Adresse ist falsch.

    "; echo "$zurueck\n"; }

    ### Name ###
    else
    if (empty($nname))
    { echo "Sie haben Ihren Namen nicht eingegeben.

    "; echo "$zurueck\n"; }

    ####### Alles in Ordnung #######
    else {

    ####### Daten werden gespeichert #######
    $komm=ereg_replace(chr(10),"
    ",$kommentar);
    if (!file_exists("gbuch.txt")) { $datei=fopen("gbuch.txt","w"); fclose($datei); }
    $gbfile=fopen("gbuch.txt","a");
    fputs($gbfile,"$sekunden|$anm|$nname|$email|$hpage |$komm\n");
    fclose($gbfile);

    ####### FALLS $email_senden="ja", WIRD EINE EMAIL AN $myemail GESENDET #######
    if ($email_senden=="ja")
    {
    $subject = "Eintrag";
    $header = "From: Gästebuch <$myemail>\n";
    $nachricht="Zeit - $anm\nName - $nname\nEmail - $email\nText - $komm";
    mail($myemail,$subject,$nachricht,$header);
    }

    echo "<center>


    <h1>Die Daten wurden gesendet.</h1>


    \n";
    echo "<a href=\"$PHP_SELF\">Gästebuch erneut anschauen</a></center>";
    }
    }

    function admin_login()
    {
    global $PHP_SELF;

    echo <<<ADMINFORMULAR
    <p align="right">zum Gästebuch</p>
    <center>


    <form action="$PHP_SELF?admin=true" method="post">
    Passwort:
    <input type="password" name="passwort" size="20" maxlength="30">
    <input type="submit" name="admin" value=" login ">
    </form>
    </center>
    ADMINFORMULAR;
    }

    function admin($passwort)
    {
    global $PHP_SELF;
    global $adminpasswort;

    echo "<p align=\"right\"><a href=\"$PHP_SELF\">zum Gästebuch</a></p>\n";

    if ($passwort==$adminpasswort)
    {
    echo "<form action=\"$PHP_SELF\" method=\"post\">";
    echo "<table cellpadding=\"5\" cellspacing=\"5\" width=\"100%\">";

    $eintrag=array();
    $lesen=array();
    $teil=array();

    if (file_exists("gbuch.txt"))
    {
    $datei=fopen("gbuch.txt","r");
    while (!feof($datei))
    {
    $lesen=fgets($datei,100000);
    array_push($eintrag,$lesen);
    }

    array_pop($eintrag);
    rsort($eintrag);

    foreach ($eintrag as $zeile)
    {
    $teil=explode("|",$zeile);
    $sekunden=$teil[0];
    $zeit=$teil[1];
    $name=$teil[2];
    $email=$teil[3];
    $hpage=$teil[4];
    $text=$teil[5];
    $time=ereg_replace("","",$zeit);
    $time=ereg_replace(" ","",$time);
    echo "<tr><td width=\"50\" align=\"right\" valign=\"top\">";
    echo "<input type=\"radio\" name=\"to_delete\" value=\"$sekunden\">
    ";
    echo "</td><td>";
    echo"Zeit: $zeit
    ";
    echo "Name: $name
    ";
    echo "Email: $email
    ";
    echo "Homepage: $hpage
    ";
    echo "Kommentar: $text

    ";
    echo "</td></tr>";
    }
    echo "<tr><td></td><td align=\"left\">";
    echo "<input type=\"submit\" name=\"loeschen\" value=\"den markierten Eintrag löschen\">";
    echo "<input type=\"reset\" value=\"abbrechen\"></td></tr>";
    echo "</table></form>";
    }

    }

    else
    {
    echo "<center><h1>



    Falsches Passwort!</h1>\n";
    echo "<p align=\center\"><a href=\"$PHP_SELF?admin_login=true\">Admin</a><center>\n";
    }
    }

    function loeschen($to_delete)
    {
    global $PHP_SELF;
    global $adminpasswort;

    $zeile=array();
    $tosave=array();

    $to_delete=ereg_replace("","",$to_delete);
    $to_delete=ereg_replace(" ","",$to_delete);

    $datei=fopen("gbuch.txt","r");
    while (!feof($datei))
    {
    $zeile=fgets($datei,100000);
    $teil=explode("|",$zeile);
    $datum=ereg_replace("","",$teil[0]);
    $datum=ereg_replace(" ","",$datum);
    if ($datum!=$to_delete) { array_push($tosave,$zeile); }
    }
    fclose($datei);

    $datei=fopen("gbuch.txt","w");
    foreach ($tosave as $x)
    {
    fputs($datei,"$x");
    }
    fclose($datei);

    echo <<<FORMULAR
    <p align="right">zum Gästebuch</p>
    <center>
    <h1>Der Eintrag wurde gelöscht</h1>



    zum Gästebuch



    <form action="$PHP_SELF" method="post">
    <input type="hidden" name="passwort" value="$adminpasswort">
    <input type="submit" name="admin" value="zurück zur Administration">
    </form>
    </center>
    FORMULAR;
    }
    ?>

    So dann gibt es da noch die Textdatei wo die einträge rein gespeichert werden. Und all das funzt auch außer das folgende Fehlermeldungen immer da stehen:

    Notice: Undefined variable: eintrag in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 23

    Notice: Undefined variable: senden in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 24

    Notice: Undefined variable: admin_login in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 25

    Notice: Undefined variable: admin in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 26

    Notice: Undefined variable: loeschen in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 27


    so aber ansonsten funktioniert es einwandfrei da aber diese Fehlermeldungen sehr hässlich aussehen wollte ich fragen wo da mein Fehler liegt das er mir diese Fehler anzeigt???

    Kann mir einer Helfen???

    Danke im Vorraus!

  • #2
    1. Es ist schon ein Frechheit, so einen langen Quellcode unformatiert zu posten
    2. Was hat diese Frage in einem Fortgeschrittenen-Forum zu suchen
    3. Undefined variable ist doch sehr aussagekräftig, oder? PHP kennt diese Variable nicht
    4. Mit Hilfe der Suchfunktion sollte sich eine Lösung finden lassen
    5. Stichwort isset und register_globals

    Gruß
    phpfan

    Kommentar


    • #3
      register globals habe ich in der php.ini auf on gestellt trotzdem geht das net

      Kommentar


      • #4
        was is isset???


        ach ja außerdem was soll php net kennen??

        das gästebuch funzt doch außer dieser fehler die angezeigt werden die aber eigentlich gar keine sind weil es ja funktioniert

        Kommentar


        • #5
          Zitat von djrace
          was is isset???
          Zu faul, in der Doku nachsehen?

          Zitat von djrace
          ach ja außerdem was soll php net kennen??
          Notice: Undefined variable: eintrag
          Ist das wirklich so schwer zu verstehen???
          Zitat von djrace
          das gästebuch funzt doch außer dieser fehler die angezeigt werden die aber eigentlich gar keine sind weil es ja funktioniert
          Wenn es richtig funktionieren würde, dann würdest du hier nicht nachfragen.

          Gruß
          phpfan

          PS: Kann das mal ein Moderator ins Anfänger-Forum verschieben.

          Kommentar


          • #6
            Also

            sorry ich verstehe schon was dieser Fehler heißt.

            Ich zeige euch jetze hier mal den link zu dem orig. gästebuch.

            http://www.widiker.de/php-skripte/ga...2.phtml?co=yes

            genauso habe ich das auch gedownloadet d.h. das script ist nicht falsch irgendwas mit meinem php stimmt nicht. Aber ich weiß nicht was.

            Und hatte gehofft das hier jemand schonmal das selbe problem hatte und mir helfen könnte

            Kommentar


            • #7
              Zitat von djrace
              sorry ich verstehe schon was dieser Fehler heißt.
              Dann korrigiere doch die Fehler, verdammt noch mal!

              genauso habe ich das auch gedownloadet d.h. das script ist nicht falsch irgendwas mit meinem php stimmt nicht.
              Ein Script, das die Existenz von Variablen vor der Verwendung nicht testet, ist übelster Mist.
              Aber ich weiß nicht was.
              RTFM und RTFAQ.

              btw: Kann mal jemand diese Anfängerfrage in das Forum verschieben, in dem Anfänger ihre Fragen stellen? Danke.

              Kommentar


              • #8
                Zitat von djrace
                genauso habe ich das auch gedownloadet d.h. das script ist nicht falsch irgendwas mit meinem php stimmt nicht. Aber ich weiß nicht was.
                Na geil! Ich hoffe, dass nicht jeder so denkt. Man kann doch nicht unsauber coden und wenn ein Fehler kommt, die php.ini so ändern, dass keine Fehlermeldungen mehr ausgegeben werden ... Dann hätten sich die Entwickler nicht die Mühe machen brauchen und Fehlermeldungen erstellen.

                Kommentar


                • #9
                  Der Beitrag wurde verschoben, wegen...
                  ... Postings im falschen Forum.

                  Bemerkung:
                  Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

                  moved to PHP - Anfänger

                  Kommentar

                  Lädt...
                  X