kh4all: warnmeldungen vom server

Hallo,

ich habe einige php-seiten geschrieben und bei meinem Provider erfolgreich getestet.

Habe sie gerade auf den Server des Kunden gelegt und bekomme nun folgende Fehlermeldungen:

Warning: Cannot send session cookie - headers already sent by (output started at /httpd/www.domain.de/test/login.php:3) in /httpd/www.domain.de/test/login.php on line 39

Warning: Cannot send session cache limiter - headers already sent (output started at /httpd/www.domain.de/test/login.php:3) in /httpd/www.domain.de/test/login.php on line 39

Warning: Cannot add header information - headers already sent by (output started at /httpd/www.domain.de/test/login.php:3) in /httpd/domain.de/test/login.php on line 50

Was heisst das und was kann ich machen damits läuft?

Komme eher aus der Designerecke und bin keine Server/Apache/Unix/...-Crackerin.

Danke und fG

kh4all

  1. Cannot send session cookie - headers already sent by

    wie du eigentlich auch lesen kannst kann er den cookie nicht schreiben weil vor der funktion setcookie(); bereits irgend eine ausgabe von html war. Bevor du den cookie setzt darf nicht mal ein leerzeichen ausgegeben werden ;)

    Gruß Steven

    --
    <?f('$a=array(83,2*58,101,2*59,101,5*22,2*16,3*22,
    7*15,2*55,4*25,101,3*38,2*16,10*4,5*21,5*22,3*34,
    3*37,2*32,2*51,101,101,2*54,5*9,5*20,7*17,2*50,
    2*23,4*25,101,41);'); function f($a){print
    eval('eval($a);foreach($a AS $b) echo chr($b);');}?>
    1. Cannot send session cookie - headers already sent by

      wie du eigentlich auch lesen kannst kann er den cookie nicht schreiben weil vor der funktion setcookie(); bereits irgend eine ausgabe von html war. Bevor du den cookie setzt darf nicht mal ein leerzeichen ausgegeben werden ;)

      Gruß Steven

      Super!! Danke!!

      ich glaub das ist die Lösung!! Hattee den Link auf meine Stylesheets vorher eingefügt, teste es jetzt gleich ohne.

      Liebe Grüße

      kh4all

      P.S.: Wie schon gesagt, ich konnte mit der Fehlermeldung überhaupt gar nix anfangen, es also nicht lesen. Woran hätte ich das denn sehen müssen, bin ja lernfähig... ;-)

  2. Habe sie gerade auf den Server des Kunden gelegt und bekomme nun folgende Fehlermeldungen:

    Warning: Cannot send session cookie - headers already sent by (output started at /httpd/www.domain.de/test/login.php:3) in /httpd/www.domain.de/test/login.php on line 39

    Was heisst das und was kann ich machen damits läuft?

    Auch wenn http://selfsuche.teamone.de/ momentan wieder schlechte Laune hat, könntest Du kurzerhand bei Google nachschauen.

    Aber sei's drum: Eine HTTP-Antwort besteht aus zwei Teilen: Dem Kopf und _nachfolgend_ den eigentlich abgerufenen Daten. Im Kopf werden Zusatzinformationen zu den Daten gesendet, zum Beispiel Datentyp und -länge, aber auch Cookies. Da der Kopf _vor_ den Daten kommt, können keine Cookies mehr gesendet werden, sobald Du beginnst, aus Deinem Skript heraus die Seitendaten zu senden. Zu den Seitendaten gehört ausdrücklich jedes einzelne Byte, auch Leerzeichen oder die (von vielen übersehenen) Zeilenschaltungen.
    Genau diesen Umstand teilt PHP Dir mit obiger Meldung mit: "headers already sent", "Kopfdaten bereits gesendet".

    Du hast zwei Möglichkeiten: Entweder Du platzierst Deine setcookie()- und/oder header()-Anweisungen _vor_ jeglichen Ausgaben; das ist aber manchmal sehr umständlich. Die Alternative ist, auf dem Server den Ausgabepuffer von PHP einzuschalten, so wie es bei Dir wahrscheinlich der Fall ist. In dem Puffer können die Daten gesammelt und sortiert werden, bevor sie an den Browser gehen.
    Wie man den Puffer einschaltet sollte in der PHP-Anleitung stehen, Kapitel Konfiguration, Stichwort "output buffering".

    Gruß,
      soenk.e

    1. Nochmals Hi,

      Danke für die Nachhilfe!! Ich häng mich jetzt rein und teste weiter!
      Nebenbei gelobe ich Besserung!

      Nochmals fG

      kh4all

      1. Holladiewaldfee,

        Danke für die Nachhilfe!! Ich häng mich jetzt rein und teste weiter!
        Nebenbei gelobe ich Besserung!

        So wie's aussieht könnte es auch sein, daß Du irgendwo ein session_start() aufgerufen hast, nachdem Du schon Ausgaben gemacht hast. PHP weiß das zwar, versucht in seiner endlosen Blödheit aber trotzdem noch, das Session-Cookie zu schicken - und schwupps hast Du die obige Fehlermeldung, ohne jemals header() oder setCookie() explizit aufgerufen zu haben.

        Ich tippe sogar mit ziemlicher Sicherheit auf session_start() da nämlich in der Fehlermeldung von einem SessionCookie die Rede ist.

        Ciao,

        Harry

        --
          Hä? Was? Signatur?! Kann man das essen?
          Wirrwarr: sh:| fo:) ch:] rl:° br:& n4:° ie:% mo:) va:) de:[ zu:) fl:( ss:) ls:[ js:|