Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Speicherfehler beim gästebuch. warum? Antworten
Speicherfehler beim gästebuch. warum?

xeo
Pixelschubser


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


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: 425


Du ersetzt in der Funktion || durch || was praktisch keinen Effekt hat ;)


---
cya MCM

[my page] [about me]

[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]

  Profil   Website   Editieren   Zitieren

xeo
Pixelschubser


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
 

Antworten
Nach oben