Aloha ;)
An dieser Stelle...
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 ); }
...speicherst du erst Werte in einem Array, und dann überschreibst du das Array mit einem String (nämlich der serialisierten Version des Array).
Die Variable $data
enthält nun einen String.
Hier...
foreach ($data as $name=>$email=>$message) { echo "<tr><td>$name</td><td>$email</td><td>$message</td></tr>"; } echo "</table>";
...greifst du dann auf die Variable $data
, die einen String enthält, mit foreach
(einer Methode für den Zugriff auf ein Array) zu.
PHP kann also die Daten gar nicht richtig bekommen, denn $data
ist ja ein String.
Abgesehen davon ist die Syntax von foreach fehlerhaft, du kannst bei phpinfo nachlesen, wie das korrekt geht.
Versuch zunächst mal, die Speicherung der Daten im Array noch einmal zu überprüfen, so, dass die Daten nachher tatsächlich in einem Array stehen. Danach solltest du, wenn du foreach
korrekt benutzt, vermutlich (nach allem was ich sehe) deine Daten tatsächlich in einer Tabelle haben.
Mir ist zusätzlich aufgefallen, dass dein HTML an einigen Stellen unglücklich ist. Zum Beispiel sollte <h3>
nur zur Auszeichnung von Überschriften verwendet werden, du benutzt es hier zur Formatierung. Ich empfehle dir, dazu nochmal in den HTML-Teil unseres Wikis zu schauen, du kannst zum Beispiel hier einsteigen.
Grüße,
RIDER