Speicherfehler beim gästebuch. warum? |
xeo
Pixelschubser Threadstarter
Beiträge: 22 |
hi
mein gästebuch das mit textdateien läuft, speichert aber falsch ab.
es werden name,email,homepage und text eingegeben.
beim einschreiben in die textdatei macht er aber nach 2 variablen einen zeilenumbruch. die variablen bzw. eingaben werden durch || getrennt. es muss erst nach allen 4 eingaben der zeilenumbruch gemacht werden. er bricht aber schon nach 2 um. warum? ich bin noch php anfänger und finde den fehler nicht.
könnt ihr helfen?
hier der code:
?php
//
// Speichervorgang
//
$logfile = "gaestebuuch.txt"; // Datenbank, in "gaestebuuch.txt" werden die Einträge gespeichert
$date = date("d.m.y - H:i", time());
if(isset($HTTP_POST_VARS['Name']) && isset($HTTP_POST_VARS['Nachricht']) && isset($HTTP_POST_VARS['email']) && isset($HTTP_POST_VARS['homepage']))
{
$_POST['Name'] = str_replace('||', '||', stripslashes($_POST['Name'])); // die ||-Zeichen werden durch die HTML-Zeichen ausgetauscht und backslashes () werden entfernt
$_POST['Nachricht'] = str_replace('||', '||', stripslashes($_POST['Nachricht']));
$_POST['email'] = str_replace('||', '||', stripslashes($_POST['email']));
$_POST['homepage'] = str_replace('||', '||', stripslashes($_POST['homepage']));
$fp = fopen($logfile, "a+"); // die Logfile wird geöffnet zum beschreiben
flock($fp, 2); // die Logfile wird abgeriegelt
$shout = fwrite($fp, $_POST['Name'].'||'.$_POST['Nachricht'].'||'.$_POST['email'].'||'.$_POST['homepage']."||$datern"); // der Neue Eintrag wird ans Ende angehängt
flock($fp, 3); // die Logfile wird wieder entriegelt
fclose($fp); // Datei wird geschlossen
if($shout) { header("Location: ./book.php"); } // Weiterleitung
}
?>
danke
gruß
hansi
---
just graphics @ kucha
www.kuchagrafix.de.vu
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
pizzataxi
Quasselstrippe
Beiträge: 248 |
Ich weiß nich ob es das ist aber ich meine nen Fehler entdeckt zu haben:
bei der Fkt. str_replace() wird als erstes das Zeichen erwartet welches ersetzt werden soll und als zweites das, was anstelle des Alten eingefügt werden soll.
ALSO:
1: | str_replace('_', ' ', $text); |
bei Dir seh ich unter anderem:
1: | str_replace([b]'||'[/b], [b]'||'[/b], stripslashes($_POST['Nachricht'])); |
|
 Profil
E-Mail
Editieren
Zitieren
|
xeo
Pixelschubser Threadstarter
Beiträge: 22 |
hi
sry ich weiß leider gar nicht genau was du jetzt meinst. was soll ich jetzt genau ändern?
ich bin doch php anfänger und sehe die fehler nicht so.
erklärts du es mir noch bitte genauer?
gru´ß
hansi
---
just graphics @ kucha
www.kuchagrafix.de.vu
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
MCM
Quasselstrippe
Beiträge: 422 |
Du ersetzt in der Funktion || durch || was praktisch keinen Effekt hat ;)
---
cya MCM
[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]
|
 Profil
Editieren
Zitieren
|
xeo
Pixelschubser Threadstarter
Beiträge: 22 |
wie muss es denn dann heißen?
sagt mir jemand den code? bitte!
war vorher ne shoutbox. und ich habs halt ein bisschen umgebaut zu einem gästebuch. müsste aber auch gehen. bei der shoutbox waren nur 2 angaben (name,nachricht) und hier 4
hilfe
---
just graphics @ kucha
www.kuchagrafix.de.vu
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Andreas S
Otto-Normal-Poster
Beiträge: 81 |
So wärs richtig:
1: | $_POST['Nachricht'] = str_replace('||', '||', stripslashes($_POST['Nachricht'])); |
Allerdings liegt dein spezifisches Problem -soweit ich dass sehe- daran, dass die Linebreaks im Nachrichten Feld ebenfalls aus n bestehen und es deswegen zu den Problemen kommt.
Diese Nachricht wurde geändert von: Andreas S |
 Profil
Editieren
Zitieren
|