Probleme mit Cookies und Sessions!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Cookies und Sessions!

    hallo,

    habe ein problem mit sessions und cookies.

    ich verwende sessions und cookies für eine login-seite.

    wenn man username und passwort erfolgreich eingibt wird wird eine session gesetzt:
    ...
    $_SESSION['uid'] = $result['uid'];
    $_SESSION['username'] = htmlspecialchars($result['username']);
    ...

    zusätzlich zur session wird auch ein Cookie (zwei wochen gültig) gesetzt damit der user beim nochmaligen besuch der seite automatisch eingeloggt ist:
    ...
    $cookie = serialize(array($_SESSION['username'],$token));
    setcookie('remember',$cookie, time()+12099600);
    ...


    Das Cookie wird auf der Login-Seite erfolgreich gesetzt:
    login.php
    ...
    var_dump($_COOKIE['remember']);
    ...
    // Ausgabe: string(71) "a:2i:0;s:6:\"tester\";i:1;s:32:\"d765d776e81aeb24396a9b3862d23f86\";}"
    // auch die Session-Variablen sind richtig befüllt


    nach dem Login (login.php) erfolgt eine automatische weiterleitung auf eine willkommens-seite:
    login.php
    ...
    print '<META HTTP-EQUIV="refresh" CONTENT="0; URL=willkommen.php">';
    ...

    UND JETZT das PROBLEM:
    wieso ist auf einmal mein Cookie verschwunden?
    willkommen.php
    ...
    var_dump($_COOKIE['remember']);
    // Ausgabe: NULL !!!!
    session_start();
    var_dump($_SESSION);
    // ist richtig BEFÜLLT!!!
    ...

    Was mache ich den hier falsch ? Wieso ist das Cookie nicht gesetzt oder leer ?

    Bitte um eure Mithilfe!

    Danke
    hannes

  • #2
    http://www.php4-forum.de/forum_29439..._Sessions_.htm
    Slava
    bituniverse.com

    Kommentar


    • #3
      du setzt und prüfst das cookie auf der selben seite. Das geht nicht.

      von setcookie:
      Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, für die das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf der nächsten geladenen Seite, ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels des Parameters expire gesetzt. Eine gute Möglichkeit, die Existenz von Cookies zu prüfen, ist ein print_r($_COOKIE); Aufruf.
      schei* Crosspostings...

      Kommentar

      Lädt...
      X