Sven Rautenberg: Gästebuch

Beitrag lesen

Hallo & schöne Ostern!

Ebenso.

Also mein Eintrags-Script (eintrag.php) sieht so aus:

...
<form method="post" action="eintrag.php">
<input type="hidden" name="aktion" value="eintragen">
Felder für Name, Text, usw...
</form>

dann der Teil zum Eintragen:

<?php
switch ($aktion) { case "eintragen":
                   Befehle zum Eintragen in die Gästebuch-Datei...
                   header("Location: gaestebuch.php");  // <- das ist Zeile 48
                   break; }
?>

Jetzt kommt aber immer die Fehlermeldung:

Warning: Cannot add header information - headers already sent by (output started at c:\server\eintrag.php:2) in c:\server\eintrag.php on line 48

Was stimmt da nicht?

Klarer Fall von "Falsche Reihenfolge".

Die Funktion "header" funktioniert nur dann, wenn vorher noch keinerlei HTML-Output an den Browser geschickt wurde. Das bedeutet, du mußt gleich in der ersten Zeile in den PHP-Modus wechseln (die ersten Zeichen der Datei müssen "<?php" sein - auf "php" kann unter Umständen ja verzichtet werden), kein Leerzeichen vorher, keine neue Zeile!

Das ist aber kein Beinbruch: Pack einfach den Eintragungsteil ganz nach vorne. Da du ohnehin keinerlei HTML-Output von _dieser_ Seite willst, muß das Formular ja garnicht erneut ausgegeben werden, wenn etwas eingetragen wurde.

- Sven Rautenberg