Benedikt Hofmann: Cookie setzen: unerklärliche Fehlermeldung

Hallo!

Na anfänglichen Schwierigkeiten mit Cookies habe ich eine gute Anleitung gefunden, mit der ich das Setzen von Cookies auch verstehe. Jetzt stehe ich vor folgendem Problem:

Beim Setzen eines Cookies mit einer PHP-Datei, in der nur die Zeilen

<?
$passwortcookiename = "user_id";
$passwort = md5("blabla");
setcookie($passwortcookiename,$passwort,time()+1800);
?>

enthalten sind klappt alles Problemlos.

Wenn ich diese zeilen allerdings unverändert in eine Datei einbinde, die eine lange if-Abfrage vor sich zieht kommt plötzlich folgender Fehler:

Warning: Cannot add header information - headers already sent by (output started at /home/beni/homepages/login.php:9) in /home/beni/homepages/login.php on line 97

Die if-Abfrage schaut folgendermaßen aus:

if($sql_active=="0") {
    echo "<div style="text-align:center"><br/>Ihr Account ist noch nicht aktiviert!<br/><br/></div>"; }
  elseif($password!=$sql_password) {
    echo "<div style="text-align:center"><br/>Das Passwort stimmt nicht!<br/><br/></div>"; }
  else {
    $passwortcookiename = "user_id";
    $passwort = md5("blabla");
    setcookie($passwortcookiename,$passwort,time()+1800); }

Wäre schön, wenn mir jemand eine Lösung des Problems schildern könnte.

Danke und Viele Grüße,

Beni

  1. Hallo Benedikt,

    Die if-Abfrage schaut folgendermaßen aus:

    if($sql_active=="0") {
        echo "<div style="text-align:center"><br/>Ihr Account ist noch nicht aktiviert!<br/><br/></div>"; }
      elseif($password!=$sql_password) {
        echo "<div style="text-align:center"><br/>Das Passwort stimmt nicht!<br/><br/></div>"; }
      else {
        $passwortcookiename = "user_id";
        $passwort = md5("blabla");
        setcookie($passwortcookiename,$passwort,time()+1800); }

    Bevor Du das Cookie setzt, hast Du zweimal eine "echo"-Anweisung. Wenn aber schon Text gesendet wurde (und wenn es auch nur eine Leerzeile ist), kann das Cookie nicht mehr gesetzt werden, da die Header schon abgeschickt wurden (sagt ja auch die Fehlermeldung). Du musst also zuerst das Cookie setzen lassen, bevor Du nen Text ausgeben lässt.

    Viele Grüße,

    Nicole

  2. Hallo,

    Wenn ich diese zeilen allerdings unverändert in eine Datei einbinde, die eine lange if-Abfrage vor sich zieht kommt plötzlich folgender Fehler:

    Warning: Cannot add header information - headers already sent by (output started at /home/beni/homepages/login.php:9) in /home/beni/homepages/login.php on line 97

    Häufig gemachter Fehler, der unter http://www.koehntopp.de/php/errors.html#fehler-session-cookie beschrieben ist.

    Viel Erfolg damit wünscht Dir
    -> Andreas

  3. Ahhhh.... ihr seid meine Rettung!

    Vielen Dank!

    Gruß, Beni