Stefan P.: Was ist an dem script falsch

?
Schaut euch das mal an:

<html><head><title>Mein kleines Gästebuch</title></head>
<body bgcolor="#ffffff">

<?
////////////////////////////////////////
// Kleines Gäste-Buch /////
////////////////////////////////////////

// Hier wird das Formular ausgegeben

echo '<form name="beitrag_eintragen" action="'.$PHP_SELF.'" method="post">
      <table width="300" border="0" cellspacing="1" align="center">
      <tr><td colspan="2">
      <h2 align="center">Gästebuch</h2>
      </td></tr>
      <tr>
      <td width="67" valign="middle"><p><b>Betreff:</b></p></td>
      <td width="224" valign="middle">
      <input type="text" name="betreff" size="30"></td>
      </tr>
      <tr>
      <td width="67" valign="top"><p><b>Text:</b></p></td>
      <td width="224">
      <textarea name="text" cols="30" rows="10"></textarea></td>
      </tr>
      <tr>
      <td width="67"> </td>
      <td width="224"> </td>
      </tr>
      <tr>
      <td colspan="2"><div align="center">
      <input type="submit" name="button" value="Beitrag eintragen">
      </div></td>
      </tr>
      </table>
      </form>';

// Wenn User auf den Button "Beitrag eintragen" gedrückt hat

if($button) {
      if($betreff != '' && $text != '') {
           // Das aktuelle Datum ermitteln
           $datum = date('d.m.Y');

// Text in HTML-Text ändern
           $text = str_replace("\r\n", "<br>", $text);

// Hier wird der aktuelle Beitrag ganz oben eingefügt
           $fp = fopen('gaestebuch.txt', 'r');
           // Setze neuen Beitrag zusammen
           $input .= "$datum | $betreff | $text\n";
           // Lese alte Einträge aus
           while (!feof($fp)) {
                           $input .= fgets($fp, 500);
           }
           fclose($fp);

// Hier wird der Inhalt in die Datei geschrieben
           $fp = fopen('gaestebuch.txt', 'w+');
           fputs($fp, $input, strlen($input));
           fclose($fp);

// Bestätigung des der Beitrag aufgenommen ist
           echo '<h2 align="center">Besten Dank für Ihren Beitrag!<br>
           <a href="'.$PHP_SELF.'">Eintrag ansehen</a></h2>';

} else {

echo '<h2 align="center">Bitte füllen Sie beide Felder aus!<br>
          <a href="javascript:history.back()">Zurück zum Formular</a>';

}

// Wenn User noch nichts eingegeben hat

} else {
      $fp = fopen('gaestebuch.txt', 'r');
      while (!feof($fp)) {
           $zeile = fgets($fp, 500);
           $daten = explode(" | ", $zeile);
           $datum = $daten[0];
           $betreff = $daten[1];
           $text = $daten[2];

// Gib einzelne Beiträge in einer Tabelle aus
           echo '<table width="300" border="0" align="center">
           <tr bgcolor="#CCCCCC"><td><b>
           <font color="#000000">'.$betreff.' - </font></b>
           <font color="#666666" size="2">'.$datum.'</font></td></tr>
           <tr><td>'.$text.'</td></tr>
           <tr><td> </td></tr>
           </table>';
      }
      fclose($fp);
}

?>

</body></html>

und jetzt: http://mitglied.lycos.de/outlawofdeath/Design/Forumtest.php

Wo liegt der Fehler angeblich in Line 53 aber ich kann nix finden

Gruß Stefan

  1. hi

    $input .= "$datum | $betreff | $text\n";
               // Lese alte Einträge aus
               while (!feof($fp)) {

    ^^ das ist Zeile 53 wenn ich den Code so wie du ihn gepostet hast in meinen Editor einzufügen
    ob man variablen auch in schleifen "zusammenbauen" weiß ich nicht

    $input .= fgets($fp, 500);
               }
               fclose($fp);

    und jetzt: http://mitglied.lycos.de/outlawofdeath/Design/Forumtest.php

    gibt einen 404-Fehler

    Wo liegt der Fehler angeblich in Line 53 aber ich kann nix finden

    s.o. poste doch einfach mal den Fehler

    gruß
    Tobias

    1. Bei mir funzt es.

      du must natürlich deiner archiv-datei entsprechende rechte vergeben.

      dein beispiel ist live anzusehen unter

      http://www.reise-notizen.de/kl_gaestebuch.php

      grüße knut

  2. $fp = fopen('gaestebuch.txt', 'r');
          while (!feof($fp)) {

    Vermutlich gibt fopen kein handle zurück, weil gaestebuch.txt nicht existiert, nicht geöffnet werden kann, die falschen Rechte hat...

    Wo liegt der Fehler angeblich in Line 53 aber ich kann nix finden

    Ohne weitere Angaben wie z.B. der konkreten Fehlermeldung artet das in ein nettes Ratespiel aus...