Problem mit Cookie auslesen

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

  • Problem mit Cookie auslesen

    Nabend

    Also ich brüte schon den ganzen Tag, kann das Problem aber nicht lösen :/ Die Website an der dich momentan bastel, hat einen Memberbereich, in dem der User eine Auto-Login Funktion aktivieren kann. Der User setzt also sein Häckchen bei "Auto-Login" und das Script setzt nach dem absenden des Formulars ein Cookie...

    PHP-Code:
    setcookie('einkeks'$_SESSION['usrid'].'|'.$_SESSION['usrmd5'], time()+(60*60*24*30*4*12), '/''testserver.de'0); 
    Das klappt auch alles einwandfrei.
    Wenn der User seinen Browser schließt und wieder die Startseite aufruft, soll er automatisch eingeloggt werden und genau das haut nicht hin. Die Seite ist imo so aufgebaut, das ich eine index.php Datei habe, in der die verschiedenen Bereiche eingebunden werden. Hier die index.php

    PHP-Code:
    <?php
    session_name
    ('einesession');
    session_start();
    require_once(
    'shared/global.php');
    $_SESSION['authusr'] = false;

    // Cookie checken
    if (isset($_COOKIE['einkeks']) && !$_SESSION['authusr']) 
    {
        
    // mysql verbindung herstellen
        
    $data explode('|'$_COOKIE['einkeks']);
           if (!
    db_is_user_cookie($data[0], $data[1])) trigger_error('Ungültige Benutzer ID.'E_USER_ERROR);
           else
           {
               
    $_SESSION['usrid'] = $data[0];
               
    $_SESSION['authusr'] = true;
           }
           
    // mysql verbindung schliessen
           
           // db_is_user_cookie() prüft anhand der ID und dem MD5 pwd ob der user existiert 
           // und gibt true oder false zurück
    }

    // Session prüfen
    if ($_GET['einesession'] != session_id() || !session_id()) 
        
    header('Location: index.php?' session_name() . '=' session_id() . '&area=news');
    ?>

    // jede Menge HTML - Dann kommt irgendwann...

    <?php include_once($_GET['area'] . '.php'?>

    // und wieder HTML
    Den User Login Bereich include ich auch so und dort wird zb. auch gleich geprüft ob $_SESSION['authusr'] true ist usw. Wenn ich jetzt einfach mal in meiner index.php
    PHP-Code:
    print_r($_COOKIE['einkeks']); 
    mache, bekomm ich beim ersten Aufrufen überhaupt gar keine Ausgabe Klick ich mich danach aber in einen anderen Bereich, zb. index.php?einesession=872378327823&area=register gibt
    PHP-Code:
    print_r($_COOKIE['einkeks']); 
    die korrekten Werte aus.

    Leider check ich überhaupt nicht warum das so ist Der Cookie sollte doch schliesslich schon beim ersten Aufrufen der Seite zur Verfügung stehen oder nicht??

  • #2
    Ok! Habe eben mal dieses simple PHP Script angelegt:

    PHP-Code:
    <?php
    if (isset($_COOKIE['einkeks'])) print_r($_COOKIE['einkeks']);
    ?>
    Und es wird nichts ausgeben. Arbeite imo mit Apache + Windows mit IE, Firefox und Opera, aber in allen drei Browsern, das selbe Ergebnis. Der Cookie ist aber da und der Inhalt schaut so aus:

    einkeks
    345%7C81dc9bdb52d04dc20036dbd8313ed055
    testserver.de/
    1536
    234852224
    29917131
    2066340208
    29627452
    *

    Kommentar


    • #3
      heyho !

      guck mal hier -> http://de2.php.net/manual/en/function.setcookie.php

      Blessings ...
      [font=dauphin]Die Seite für Spychos[/font]

      Kommentar


      • #4
        Mmm ja, kenn ich bereits

        Hab ich etwa was überlesen? Sorry steh da gerade total auf dem Schlauch...

        edit: Achso, du meinst bestimmt print_r($_COOKIE); ?
        Ok hab da folgendes probiert...

        if (isset($_COOKIE['einkeks'])) print_r($_COOKIE);
        gibt gar nichts aus!

        und einfach mal: print_r($_COOKIE); gibt nur Array() aus



        Wie gesagt, das Cookie ist vorhanden.
        Zuletzt geändert von StaySharp; 28.03.2004, 13:50.

        Kommentar


        • #5
          narf! Habe den Fehler gefunden

          Ok für alle die es interessiert, Lösung steht auch auf php.net.
          example.com and www.example.com are to different values for your browser!
          Mein Problem war, das ich die Seite über localhost aufgerufen habe. setcookie() übergebe ich aber die IP meines testrechners!

          Naja.. Danke für den Denkanstoss

          Kommentar

          Lädt...
          X