cookie setzen?! will ned ...

  • moinsens,
    ich bin grad an meiner neuen page dran und möchte das diesmal en cookie für den login gesetzt wird das ma auch mal länger eingeloggt bleiben kann.
    aber es will nicht.

    Zitat


    Warning: Cannot modify header information - headers already sent by (output started at D:\Programming\HTML\crazyplanet\index.php:24) in D:\Programming\HTML\crazyplanet\sites\login.php on line 13

    hier der code von der login.php


    hab keine ahnung von cookies, helft mir :?

    Gruß crAzywuLf :D

  • du hast schon etwas ausgegeben, dann kannste keinen cookie mehr setzten, benutze ob_start() oder setze den keks vorher

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • hmpf...
    ich raffs nicht *heul*

  • ok, ich hab dasselbe problem und werde auch aus der manual net schlau...
    mein code ist im moment wie folgt:

    nunja, als fehler kommt raus:

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\prisonbreak\mainpage\lib\template.php:23) in C:\xampp\htdocs\prisonbreak\mainpage\lib\functions.php(63) : eval()'d code on line 22

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\prisonbreak\mainpage\lib\template.php:23) in C:\xampp\htdocs\prisonbreak\mainpage\lib\functions.php(63) : eval()'d code on line 23

    so, was is jetzt falsch?
    danke im voraus :)

  • Ok, mal wieder einer der kein Englisch kann.

    Cannot modify header information - headers already sent by

    übersetzt:

    Kann header nicht setzen, sie wurden schon gesendet... heist so viel du hast schon content gesetzt...

    ist auch nicht verwunderlich, da du zwar einen ausgabe cache setzt, diesen aber genau vor den cookies leerst und sendest.

    das mit dem cachen ist eh nur eine notdürftige lösung die bei fertigen scripten mit einem schei... programmierstyle nötig sind.

    spaare dir das
    ob_start(); , ob_end_flush();

    und schreibe die meldung einfach nach dem keks

    setcookie('wbb_userid', $login['userid'], time()+3600*24*365);
    setcookie('wbb_userpassword', md5($_POST['pw']), time()+3600*24*365);
    echo 'bist eingeloggt';


    schon sind die Probleme behoben... da der keks vor jeglicher Ausgabe gesendet wird.

  • 1. englisch kann ich fliessend :P mir bringt die deutsche übersetzung so viel wie die englische... ich raffe es halt einfach nicht...

    2. die datei wird included... es gibt auch schon ausgaben BEVOR der cookie gesetzt wird... muss ich nun also am anfang meiner indexdatei checken ob der user sich einloggen möchte?

    edit: so, jetzt wird die loging.php vor jeder ausgabe(oder gehören includes mit dazu?) included.... dennoch kommt derselbe fehler!

    index.php bis zum login.php include:

    PHP
    <?php
     session_start();
     error_reporting(E_ALL);
     
     //inc-datein einladen
     include "lib/config.php";
     include "lib/functions.php"; 
     include "lib/template.php";
     include "login.php";
  • @ dark, das hatte er ja, aber wenn die datein includet wird dann must das obj_start(); ja am anfang der idnex datei stehen und das ob_end nach dem setzen des keks...

    also nochmal ums es einfach zu halten.... es darf vor dem setzen des keks nicht auch ausgeben werden. weder vor dem <?PHP was stehen noch ein echo oder print.

  • Zitat von GreenRover

    @ dark, das hatte er ja, aber wenn die datein includet wird dann must das obj_start(); ja am anfang der idnex datei stehen und das ob_end nach dem setzen des keks...

    also nochmal ums es einfach zu halten.... es darf vor dem setzen des keks nicht auch ausgeben werden. weder vor dem <?PHP was stehen noch ein echo oder print.

    :smilie085:

    Meinte ich doch mit meinem Post.
    Er soll direkt nach dem <?php der Index Datei ob_start() und direkt vor dem ?> der Datei ob_end_flush() schreiben.
    Laut dem Code-Schnipsel hatte er das ja nicht.

    Wo ist jetzt das Problem das ganze in die Index Datei zu setzen?

    Ich sehe einfach das Problem nicht ...

  • für dich nicht, aber der fragen steller hat ja meine erste anwort auch nicht gerafft, wo ja genau das geschrieben habt.. wollte es nur nochmal genauer agen.

  • Kann mir irgend jemand einen Grund nennen, warum man ob_start in diesem Falle braucht? Ich bin der Meinung, dass man mit anständiger Programmierung darauf verzichten kann, denn es gibt keinen Grund, vorher etwas auszugeben.