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