Was ist an dem script falsch
Stefan P.
- php
0 Tobias0 Bernhard Mecl
?
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
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
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
$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...