PHP Gästebuch programmieren :(

Mister_Tobi

Cadet 4th Year
Registriert
Sep. 2007
Beiträge
119
Hallo zusammen,

was jetzt kommt ist vielleicht unter euer aller Niveau^^ aber ich brauch eben mal hilfe. Und zwar muss ich für die Schule momentan ein Gästebuch programmieren und hab da so meine Probleme. Ich soll das was die Leute eintragen in einer Textdatei abspeichern, dann wieder aufrufen und auf der Seite anzeigen. Doch ich bekomme es nicht hin, die Einträge in einem array zu speichern, sodass ich sie auch einzeln wieder abrufen kann und ausgeben kann......
Momentan sieht mein script so aus:

<html>
<body>
<table>
<h3>Gästebuch</h3>
<form method="post" action="gaestebuch.php">

<tr>
<td>Ihr Name:</td><td> <input type="text" name="name"></td></tr><br>

<tr><td>eMail:</td><td> <input type="text" name="email"></td></tr> <br>

<tr><td>Ihr Eintrag:</td><td><input type="text" name="eintrag"><d> </tr> </table> <br><br>

<input type="submit" name="Button" value="Absenden"> <br><br>

<hr>

</form>
<?
$inhalt=$_POST['name'],$_POST['email'],$_POST['eintrag'];
if ($_POST['Button'] and $_POST ['name']!="" and $_POST ['email']!="" and $_POST ['eintrag']!=""){
file_put_contents("log.txt",$inhalt,FILE_APPEND);
}
$file=array(file_get_contents("log.txt",$inhalt));

foreach ($file as $zeile) {
echo $zeile;
}
?>
</body>
</html>

Kann mir jetzt jemand sagen wie ich das so ausgegeben bekomme, dass dann hinterher da steht, wenn jemand was eingetragen hat:

Name: Max Mustermann
E-mail: blabla@blabla.de
Eintrag: sdafdljahdfaldhfs


Ich hoffe ich habs verständlich formuliert und werde nicht ausgelacht ^^


MfG. Tobi
 
file()

array(file_get_contents()) gibt dir nur ein array mit einem element, wo in $file[0] die daten stehen. wenn du es auf diesen weg machen willst, musst du $file = explode( "\r\n", file_get_contents( 'log.txt' ) ) verwenden.
 
wieso in einem array speichern??? ich verstehe dein ansatz nicht ganz

du speicherst doch einfach die daten in eine datei mit zum beispiel Semikolon als delimiter und am ende setzt du ein newline..

dann einfach wieder die datei auslesen mit irgend ner stringfunktion(hab lange nichts mit php gemacht) mit hilfe des semikolons trennen bis zum newline ist das dann genau ein daten satzt denn kannst du ausgeben und denn nächsten auslesesen usw. bis EOF erreicht ist.

außerdem glaub ich kaum, dass du so einen string initialisieren kannst $inhalt=$_POST['name'],$_POST['email'],$_POST['eintrag'];

da fehlen die "
 
Die Zeile
$inhalt=$_POST['name'],$_POST['email'],$_POST['eintrag'];

ist von der Syntax her falsch. Hast du dein Script überhaupt schonmal aufgerufen? Da hätte direkt ein Fehler kommen müssen.

Korrekt wäre:

$inhalt= "$_POST[name], $_POST, $_POST[eintrag]";
oder
$inhalt=$_POST['name'].",".$_POST['email'].",".$_POST['eintrag'];

Wenn du das dann in der Datei gespeichert hast, schau dir mal die explode Funktion genauer an, wie es claW3581 schon gesagt hat.
 
ok, danke schonmal, was wäre denn der andere Weg?


PS:Hier $inhalt=$_POST['name'],$_POST['email'],$_POST['eintrag']; hab ich nur vergessen die Kommas wieder in Punkte umzuändern ich hatte was ausprobiert......indem ich $inhalt als array geschrieben hatte. Habs nur vergessen wieder umzuändern.


array(file_get_contents()) gibt dir nur ein array mit einem element, wo in $file[0] die daten stehen. wenn du es auf diesen weg machen willst, musst du $file = explode( "\r\n", file_get_contents( 'log.txt' ) ) verwenden.

genau das ist ja mein problem, dass ich das eben als einen string rausbekomme und nun will ich die einzeln ausgeben können, ich hab jetzt $file = explode( "\r\n", file_get_contents( 'log.txt' ) ) mal eingefügt, kann ich dass dann jetzt so wie ich wollte mit der foreach schleife irgendwie ausgeben????
 
Zuletzt bearbeitet:
Zurück
Oben