Carl: Cookies werden nicht gelöscht

Hi

ich hab da ein kleines Problem. Ich hab eine Seite mit einem Internen Bereich, den man benutzen kann, wenn 2 Cookies mit benutzername und passwort gesetzt sind. Nun möchte ich die Funktion einfügen, dass man sich abmelden kann. Ich wollte es mir dabei einfach machen, hab einen Link gemacht und der ruft folgenedes Script auf:

<?php
setcookie("userpass", "", time()-3600);
setcookie("username", "", time()-3600);
?>

Leider klappt das nicht so ganz, ich bekomme folgende Fehlermeldung zurück:

Warning: Cannot add header information - headers already sent by (output started at c:\foxserv\www\doomin-hp\index.php:2) in c:\foxserv\www\doomin-hp\logout.php on line 2

Warning: Cannot add header information - headers already sent by (output started at c:\foxserv\www\doomin-hp\index.php:2) in c:\foxserv\www\doomin-hp\logout.php on line 3

nur ich hab da nirgends ein header(), also was läuft da falsch?

Gruss
Carl

  1. Hi

    ich hab da ein kleines Problem. Ich hab eine Seite mit einem Internen Bereich, den man benutzen kann, wenn 2 Cookies mit benutzername und passwort gesetzt sind. Nun möchte ich die Funktion einfügen, dass man sich abmelden kann. Ich wollte es mir dabei einfach machen, hab einen Link gemacht und der ruft folgenedes Script auf:

    <?php
    setcookie("userpass", "", time()-3600);
    setcookie("username", "", time()-3600);
    ?>

    Davor darf _kein_ Zeichen stehen, auch kein Zeichenumbruch. Des weiteren nimm statt deiner Notation lieber

    setcookie("userpass","");
    setcookie("username","");

    Du darfst nicht auf Existenz des Cookies prüfen, sondern auf den Inhalt.

    Fabian

  2. Hallo Carl,

    die cookies werden vom Server im Header zum Browser gesendet. Die Funktion setcookie() tut also nichts anderes, als header("Cookie: ..."); (oder ähnlich) aufzurufen.

    Du umgehst das Problem mit der Ausgabesteuerung.
    Wie genau, kannst Du in der PHP-Manual nachlesen: http://www.php.net/manual/de/ref.outcontrol.php

    Gruß,

    • Johannes
    1. Hi Johannes

      das wars...teilweise. da ich das ganze noch in eine Seite include wurde dort noch output gesendet. vor den cookies. der fehler ist jetzt behoben und mit der funktion kann ich jetzt wieder zur hauptseite zurück.
      Danke

      Gruss
      Carl

  3. Warning: Cannot add header information - headers already sent by (output started at c:\foxserv\www\doomin-hp\index.php:2) in c:\foxserv\www\doomin-hp\logout.php on line 2

    Warning: Cannot add header information - headers already sent by (output started at c:\foxserv\www\doomin-hp\index.php:2) in c:\foxserv\www\doomin-hp\logout.php on line 3

    nur ich hab da nirgends ein header(), also was läuft da falsch?

    Gruss
    Carl

    Hallo Carl,

    die Meldungen besagen dass bereits ein (Standart-)Header gesendet werden musste, weil in der Zeile 2 der index.php irgendetwas ausgegeben wurde. Möglicherweise befindet sich vor dem <?php ein Zeilenumbruch oder ein Leerzeichen. Der Server sendet dann automatisch einen Header. (Hierauf wird aber auch in der Regel in jeder Anleitung hingewiesen)