Alex: Seitenrefresh nach Absenden eines Formulars

Beitrag lesen

Die header() Funktion __muss__ vor allen Ausgaben (echo, print, print_r, Fehlermeldungen, ..) stehen.
Sobald du per print/echo/was auch immer etwas an den Browser gibst werden automatisch die ensprechenden Header mitgegeben und diese lassen sich dann nicht mehr ändern.

Ich glaub, ich steh momentan irgendwie auf dem Schlauch ...

Also, ich hab die Funktion jetzt ganz nach oben gesetzt:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<?php
 header("Location: http://www.blabla.de/seite.php");

Trotzdem erhalte ich dieselbe Fehlermeldung immer noch:

Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxxx/xxxx/seite.php:3) in /xxx/xxxx/xxxx/seite.php on line 4

Geändert hat sich nur das "line 4". In Zeile 4 steht aber:

header("Location: http://www.blabla.de/seite.php");

Jetzt versteh ich langsam gar nichts mehr ...

Um mein Problem noch mal genauer darzulegen:

Zuerst wird in der Datenbank ausgelesen, welcher Wert unter "status" steht. Dann wird je nach Wert eine Statusanzeige ausgegeben. Das sieht z.B. so aus:

Sie sind derzeit:
<?php
if($ergebnis[status]=="0")
{
echo "nicht verfügbar.";
}

Anhand dieses Wertes wird dann auch ein Button angezeigt, mittels dessen der Benutzer den Status ändern kann.

Der Code für einen Button sieht z.B. so aus:

<?php
 if($ergebnis[status]=="0")
 {
 ?>
 <form action="<?php echo $PHP_SELF; ?>" method="post">
 <input type="hidden" name="flag" value="1">
 <input type="submit" value="Status &auml;ndern auf: jetzt verfügbar">
 <?php
 if($_POST[flag]==1)
 {
 $sql="UPDATE $tabellenname set status=1";
 $link = mysql_connect("localhost", "Benutzername", "Paßwort");
 mysql_select_db("Datenbank", $link);
 $result = mysql_query($sql, $link);
 }
 }
 ?>

Die Seite soll demnach neu geladen, werden sobald der Benutzer auf den Butten geklickt hat. Dadurch werden die Befehle in der zweiten If-Anweisung ausgeführt (der Wert unter "status" in der Datenbank geändert).

Wo kann ich jetzt wie dem Browser sagen, daß er nach Drücken des Buttons die Seite neu laden bzw. die Datenbank neu auslesen soll? Entschuldigt meine Verständnisschwierigkeiten ... Momentan kapier ich aber echt gar nichts mehr.