Regina Schaukrug - die echte: Kommentar wird nicht geschrieben

Beitrag lesen

Die Ausgabe des Datums erfolgt durch:

echo "<b>" . "at:" . "</b>" . " " . $date = date('m/d/Y h:i:s a', time()) . "<br><br>";

Das bedeutet, dass immer das Datum und die Uhrzeit des ABRUFES angezeigt wird. In der Datei test.txt steht gar kein Datum:

a:3:{s:4:"name";s:3:"Ich";s:5:"email";s:13:"ich@localhost";s:7:"message";s:5:"Hallo";}

Also kann das Datum des Eintrages nicht ermittelt und angezeigt werden. Das bedeutet: Du musst hier was ändern:

if(isset($name) && isset($email) && isset($message)){

	$data = array("name" => $name, "email" => $email, "message" => $message, "datetime" => date('m/d/Y h:i:s a', time()));
	$data = serialize( $data );
	file_put_contents( $file, $data . "\n", FILE_APPEND|LOCK_EX );
   
}

und natürlich:

echo "<b>" . "at:" . "</b>" . " " . $data["datetime"] . "<br><br>";

Außerdem hast Du in der Datei test.txt ganz offensichtlich 4 leere Zeilen, die Du nicht überspringst.

foreach ($messages as $line) {
		$data = unserialize($line);
    # …
}

Das muss geändert werden:

foreach ( $messages as $line ) {
		if ( $line and $data = unserialize( $line ) ) {
          # …
    }
}

Das Löschen eines Inhalts einer Datei geht sehr bequem so:

~> truncate -s 0 test.txt

Das Wichtigste:

Du kannst das NICHT veröffentlichen! Der gesamte Code (PHP und HTML) ist aus irgendwelchen Quellen kopiert. Und dabei hast Du Sachen kopiert, von denen Du nicht verstanden hast, was diese tun. Und es sieht gefährlich aus. Eine böswillige Person kann Dir und anderen schaden, in dem diese z.B.

<script>alert('Iam a bad devil!');</script>

als Nachricht oder Name einträgt. (Das ist nur ein Beispiel, eine reale Handlung könnte sehr viel schädlicher sein. )

	   echo "<br>";
	   echo "<b>" . "From:" . "</b>" . " " . $data["name"] . " ";
		echo "<b>" . "at:" . "</b>" . " " . $date = date('m/d/Y h:i:s a', time()) . "<br><br>";
		echo $data["message"] . "<br><hr>";

das muss mindestens zu

	   echo "<br>"
	       . "<b>From:</b> " . htmlspecialchars( $data["name"]     )  
         . " <b>at:</b> "  . htmlspecialchars( $data["datetime"] ) 
         . "<br><br>"      . htmlspecialchars( $data["message"]  ) 
         . "<br><hr>";

werden und selbst dann ist das erzeugte HTML noch sehr schlecht.

Der Grund wird sein, dass Du Beispiele verwendest hast, welche teilweise ungefähr 20 Jahre alt sind. Genau sieht die Seite auch aus:

Das macht man heute nicht mehr. Man soll den Elementen ansehen, was diese bewirken.