Guestbook - submit funzt nicht !?
Mfrank
- php
Hallo
Ich habe ein guestbook, das die Einträge in ein Textfile schreibt.
Das Anzeigen des Gästebuches funktioniert auch einwandfrei - nur wenn ich einen neuen Eintrag erstelle, wird dieser nicht geschrieben und das script springt zurück auf meine index-datei der HP.
Zur Veranschaulichung folgt der Quelltext... wäre nett wenn mir da jemand weiterhelfen könnte !!
Danke
Frank
*********************************
<?
$txt=fopen("guestbook/guestbook.gb","r"); // Pfad zur Datei
$gbfile="";
while($line=fgets($txt,3000))
$gbfile.=$line;
//name
if(isset($name))
if($name==""){
$errorfarbe_1 = "red";
$error = "fehler";
}
else{
$errorfarbe_1 = "black";
}
//comment
if(isset($comment))
if($comment==""){
$errorfarbe_2 = "red";
$error = "fehler";
}
else{
$errorfarbe_2 = "black";
}
if(!$aktion){
$aktion = "eingabe";
}
if($error=="fehler"||$aktion=="eingabe"){
?>
<form method="post" action="<? echo $PHP_SELF;?>">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="37"> <div class="text"><? echo $errorfarbe_1; ?>Name*
<input type="text" name="name" size="30" <? if(isset($name)) echo "value='$name'";?></div>
</td>
</tr>
<tr>
<td height="37"> <div class="text">mail
<input type="text" name="mail" size="30"></div>
</td>
</tr>
<tr>
<td height="37"> <div class="text">site
<input type="text" name="site" size="30" value="http://"></div>
</td>
</tr>
<tr valign="top">
<td valign="top"> <div class="text"><? echo $errorfarbe_2; ?>Kommentar*
<textarea name="comment" cols="30" rows="5"><? if(isset($comment)) echo "$comment";?></textarea></div>
</td>
</tr>
<tr align="right">
<td>
<input type="submit" name="Button" value="eintragen">
<input type="Hidden" name="aktion" value="senden">
</td>
</tr>
</table>
<br>
</form>
<div class="text">
<? echo " $gbfile "?>
<?
}else{
if(isset($name)&&isset($comment)&&isset($mail)&&isset($site))
{
$name=stripslashes(strip_tags($name));
$comment=stripslashes(strip_tags($comment));
$mail=stripslashes(strip_tags($mail));
$site=stripslashes(strip_tags($site));
//mail("webmaster@kstv-ravensberg.de","Gästebucheintrag - KStV Ravensberg","name: $name\nText:$comment"); //Bestätigungsemail
$gbfile=" <font color='black'><b>$name</b> - ".date("m/d/Y")."<br>\n<a href='mailto:$mail'>$mail</a>\n"."<br>\n<a href='$site' target='blank'>$site</a>\n"."<br>\n$comment<br><br>\n</font>".$gbfile;
fclose($txt);
$txt=fopen("guestbook/guestbook.gb","w"); // Pfad zur Datei
fputs($txt,$gbfile);
}
echo "
<div class='text'><a href='guestbook/guestbook.php' target='_self'>Neuer eintrag</a><br><br> " . $gbfile . "</div>";
fclose($txt);
}
?>
************************************+
Hallo
Ich habe ein guestbook, das die Einträge in ein Textfile schreibt.
Das Anzeigen des Gästebuches funktioniert auch einwandfrei - nur wenn ich einen neuen Eintrag erstelle, wird dieser nicht geschrieben und das script springt zurück auf meine index-datei der HP.
Zur Veranschaulichung folgt der Quelltext... wäre nett wenn mir da jemand weiterhelfen könnte !!
Danke
Frank
*********************************
<?
$txt=fopen("guestbook/guestbook.gb","r"); // Pfad zur Datei
Lese noch mal genau hier nach (http://www.php4-forum.de/befehle/fopen.htm), was "r" beim Öffnen einer Datei bewirkt. Dann löst sich das Problem.
Ulrich
Hallo
$txt=fopen("guestbook/guestbook.gb","r"); // Pfad zur Datei
Lese noch mal genau hier nach (http://www.php4-forum.de/befehle/fopen.htm), was "r" beim Öffnen einer Datei bewirkt. Dann löst sich das Problem.
Nein, daran liegt es nicht !!!
Es bleibt das selbe Problem :(((
Frank
Hallo
$txt=fopen("guestbook/guestbook.gb","r"); // Pfad zur Datei
Lese noch mal genau hier nach (http://www.php4-forum.de/befehle/fopen.htm), was "r" beim Öffnen einer Datei bewirkt. Dann löst sich das Problem.
Nein, daran liegt es nicht !!!
Es bleibt das selbe Problem :(((
Ausserdem steht weiter unten nochmal:
$txt=fopen("guestbook.gb","w");
;-)
Frank
Hallo,
ein paar Tipps. Vielleicht helfen sie ja:
Hauptprogramm aus Funktionen aufbauen
In der Funktion prüfen() solltest Du den Datensatz so aufbeeiten, dass er mit append an die Textdatei angehängt werden kann. Dazu muss Du die NewLines ersetzen. str_replace() ist Dein Freund. Ich würde sie auch nicht rausschmeißen, sondern nur ersetzen z.B. gegen ein chr(127). Dann kann man es später wieder zurückersetzen.
Jeder Datensatz in Deiner Datei ist nämlich durch \n abgeschlossen.
Es gibt da noch ein Gästebuch auf http://www.bitworks.de/programme/guestbook.php.txt das Du Dir mal anschauen kannst. Es funktioniert. Ich habe aber auch noch nicht alle Fehler rausgebaut. Das kann man noch sauberer schreiben.
Grüße
Tom