xeta: fehler in meinem gästebuch! ;(

ich habe das folgende gästebuch programmiert. na ja, habe mich für die speicherung der daten innerhalb einer txt datei entschieden.

so, jetzt das problem. er schreib und liest nicht ????
Woran kann das liegen???

Mein betriebssystem: xp
Server: xitami
aktuelle php4 version
php wird einwandferi interpretiert, laut anderen tests.
alle dateien befinden in dem ordner "webpages" so wie´s sein soll.

Das script:
2 dateien; sehen.php und sign.php (gaestebuch.txt)
die datei sehen.php ist folgederweise aufgebaut:

sehen.php Soll die einträge alle anzeigen, tut´s aber nicht, sattdessen eine fehlermeldung, die ich nicht versehe.

//********************************************************
<html>
<head>
<title>sehen</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<a href="sign.php"> hier kannst du dich eintragen</a><br><br>
<hr>
<?php
 include("gaestebuch.txt");
?>

</body>
</html>
//*******************************************************
Warum die fehlermeldung:

Warning: Failed opening 'gaestebuch.txt' for inclusion (include_path='.;c:\php4\pear') in C:\Xitami\webpages\buch\sehen.php on line 10
... unter dem strich ???

Und dann die Datei sign.php sie beinhaltet das formular, und prüft fehler, und schreib dann in die txt datei.

//******************************************************
<html>
<head>
<title>eintragen</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

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

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

$fp=fopen("gaestebuch.txt", "r+");

$inhalt=fread($fp, filesize("gaestebuch.txt"));
       fclose($fp);

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ür deinen Eintrag";

}
}
else
{
?>

<b>eintragen ins gästebuch</b>
<form action="sign.php?actionadd" method="post">
Dein Name: <input type="text"name="name" size="24"></input><br>
E-Mail: <input type="text" name="mail" size="24"></input><br>
Homepage: <input type="text" name="www" size="24"></input><br>
Dein Eintrag: <textarea name="text" cols"35" rows="5"></textarea><br>
<input type="submit" value="abschicken"></input>
</form>

<?php
}
?>

</body>
</html>
//************************************************************
Und dann ensteht doch glatt die fehlermelung über dem formular:

Notice: Undefined variable: action in C:\Xitami\webpages\buch\sign.php on line 8
eintragen ins gästebuch

?????? :(

Ich bin einfach verzweifelt, das ist doch so einfach programmiert, das ich einfach kein fehler finde.
Oder ich blicke einfach nur darüber hinweg.

Es wäre echt cool, wenn mirjemand so  richtig helfen könnte....

Vielen dank
mfg

xeta
xetaxeta@web.de

p.s. ich muss gestehen, das dies meine ersten erfahrungen in php sind. allerding habe ich des offters schon in c und vb sowie java programmiert.

  1. hi,

    <?php
     include("gaestebuch.txt");
    ?>

    include-probleme kommen vor, wenn die Datei anders heisst, beachte Gross und Kleinschreibung, woanders liegt oder sonstiges,
    um das zu prüfen, würde ich mal eine Datei, test.html anlegen und diese includieren, wenn es bei dieser auch nicht geht, liegt es am server, wenn es dort geht, stimmt was mit gaestebuch.txt nicht

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

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    <b>eintragen ins gästebuch</b>
    <form action="sign.php?actionadd" method="post">

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    hier fehlt das gleichheitszeichen zwischen action und add und dadurch kennt er oben die Varaible nicht!

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
  2. Hallo,

    aktuelle php4 version
    = 4.2 ?

    if($action=="add"){

    dann wird ^ das nämlich nicht funktionieren. Erstens aus dem Grund, den romy schon genannt hat, zweitens müßte es dann heißen:
    if($_POST["action"] == "add")

    if(§name=="" || $mail=="" || $text=="")

    hier ist es das selbe.

    mehr Infos findest du unter: http://www.php.net/manual/en/language.variables.predefined.php

    Gruß, Jan

    1. nun,
      habe das fehlende "=" wieder eingesetzt, ud die test datei kann ich mir jetzt auich fehlerfrei anzeigen lassen.
      juhhuuuu

      Aber das mit dem >> if($_POST["action"] == "add") <<
      habe ich dann auch geändert, und habe immer noch den gleichen fehlr.

      Das heisst: mit >> if($_POST["action"] == "add") <<
      Notice: Undefined index: action in C:\Xitami\webpages\buch\sign.php on line 8

      und mit >> if($action == "add") <<
      Notice: Undefined index: action in C:\Xitami\webpages\buch\sign.php on line 8

      Nun jetzt will er was mit index !!!
      :(

      Ich habe das buch php4 von egon schmid vor mir. isb 3-8272-5877-4 : ist das vielleicht nicht auf den neusten stand ???

      Auf jeden fall habe ich dann versucht mit dem $_POST dann auch die feldvariablen auszulesen. es kamm noch nicht mal mehr ne weitere fehlermeldung !!!?

      NA, Ja der link war nicht schlecht, allerings habe ich so meine english probleme. einzelen wörte versehe ich doch mit den zusammenhängen komme ich nich klar, sorry.

      Deshalb frage ich noch mal nach !!!

      mfg
      xeta

      1. Hallo,

        Das heisst: mit >> if($_POST["action"] == "add") <<
        Notice: Undefined index: action in C:\Xitami\webpages\buch\sign.php on line 8

        und mit >> if($action == "add") <<
        Notice: Undefined index: action in C:\Xitami\webpages\buch\sign.php on line 8

        Nun jetzt will er was mit index !!!

        Ich bin mir da jetzt nicht 100%ig sicher.
        Versuch mal:
        if(isset($_POST["action"]))
         $action = $_POST["action"];
        else
         $action = "";

        if($action == "add"){
        ...
        }

        Eventuell müssen jetzt auch alle Variablen explizit initialisiert werden.

        Andererseits ist es ja 'nur' ein 'notice', keine wirkliche Fehlermeldung.
        In deiner php.ini solltest du eine Zeile finden, die anfängt mit:
        error_reporting = ...
        gibt da als Wert mal folgendes an:
        E_ALL & ~E_NOTICE
        Dann sollten diese 'Fehlermeldungen' nicht mehr ausgegeben werden.

        Ich habe das buch php4 von egon schmid vor mir. isb 3-8272-5877-4 : ist das vielleicht nicht auf den neusten stand ???

        Das kann sein, da ab PHP4.2 in den default-Einstellungen einiges geändert wurde.

        NA, Ja der link war nicht schlecht, allerings habe ich so meine english probleme. einzelen wörte versehe ich doch mit den zusammenhängen komme ich nich klar, sorry.

        Das deutsche manual ist noch nicht auf dem neusten Stand. Für dein Problem sind aber genau die Änderungen, auf in der deutschen Version noch nicht eingegangen wird, wichtig.

        Deshalb frage ich noch mal nach !!!

        zurecht ;-)

        Gruß, Jan

        1. wenn die das gästebuch asprobiere, dann schreibt es leider nichts in meine txt datei.

          hab geread etwas rum probiert, abder bin jetztt total verwirrt.

          eine andere idee, diesem problem aus dem weg zu gehen:
          ich deinstallierte php4.x und installierte mir einen altere php4 version ???

          Oder bekomme ich da wieder komplikationen was meinst du ???

          Danke

          mfg
          xeta