[PHP5] Cookie-Session

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

  • [PHP5] Cookie-Session

    Hallo,

    habe folgendes Problem: habe ein Tippspiel mit PHP/mySQL programmiert, bei dem die Userdaten nach Anmeldung in einer Cookie-Session gespeichert sind - nach 1800 sec. läuft die Session automatisch aus. Geht man auf eine andere Seite (bspw. Ranking), wird der in dem Cookie hinterlegte Username ausgelesen. Ist dieser vorhanden (wird bei Anmeldung dort gespeichert), ist der User eingeloggt - ist er nicht vorhanden, ist er ausgeloggt. Eigentlich primitiv, aber sehr effizient. eigentlich.

    Jetzt läuft das Tippspiel bei 30 Usern einwandfrei, ob IE oder Mozilla. Nur bei meinen Eltern (sowohl zu Hause als auch auf der Arbeit) kommt immer der gleiche Fehler. Man loggt sich ein, geht auf andere Seiten, kaum verweilt man auf einer mehr als 4 sec., wird man automatisch ausgeloggt. Warum????? Kennt jemand diesen Fehler? Einstellungen im Browser sind ok, selbst wenn man alle Cookies akzeptiert und die Sicherheitseinstellungen auf sehr niedrig setzt, passiert das gleiche. Kann das evtl. an einer Firewall liegen, die noch dahinter geschaltet ist?

    Grüße,

    denbr79

  • #2
    var_dump($_SESSION, $_COOKIE) sollte helfen.

    Kommentar


    • #3
      Also, funkioniert auch nicht so richtig... habe folgendes programmiert:

      Bei der Anmeldung wird die Session gesetzt:

      session_set_cookie_params($timeout);
      session_start();
      $_SESSION["UserID"] = $UserID;

      Auf jeder seite ist eine config.inc.php eingebunden, in der der folgende Session-relevante Text steht:

      $timeout = 900;
      session_set_cookie_params($timeout);
      session_start();
      $Benutzer = $_SESSION["UserID"];


      Dann wird auf jeder Seite im Anschluss überprüft, ob die Variable $Benutzer gesetzt ist. Falls nicht, wird zur Anmeldeseite verwiesen:

      if (!isset($Benutzer))
      {

      //Redirect zur Anmeldeseite
      header("Location: index.php");
      exit;
      }


      Was ist daran falsch?????

      Kommentar


      • #4
        Ach so, was vielleicht noch erwähnenswert ist: bei Mozilla Firefox funktionert es immer!!!!!!!

        Kommentar


        • #5
          Location-Header hätte gern einen absoluten URI und ich die Ausgabe von print_r($_SESSION, $_COOKIE) gesehen.

          Kommentar


          • #6
            Da kommt dann bspw. so was raus: (bei var_dump($_SESSION, $_COOKIE)

            array(1) { ["UserID"]=> &string(1) "1" } array(1) { ["PHPSESSID"]=> string(32) "7c4cd1ae914a337779af32dc5f2978e5" }

            Kommentar


            • #7
              Sollte die UserID hier auch 1 sein oder ist das ein Fehler?

              Wieso prüfst du eigentlich nicht direkt mit if(!isset($_SESSION['UserID']))?

              Kommentar


              • #8
                1 ist richtig, zweite Hinweis ist berechtigt - keine Ahnung, kurzer Gehirnaussetzer.. Ändert aber auch nichts am Problem.. wie gesagt, komsisch ist, dass es überall funktioniert, beim Mozilla bei allen, beim IE nur bei meinen eltern nicht (gleiche Version, 6.0)

                Kommentar


                • #9
                  Und was gibt das print_r() deinen Eltern aus, wenn der Fehler auftritt? Da dürfte doch dann die UserID nicht gesetzt sein, also in der Ausgabe gar nicht auftauchen.
                  Das kann dann eigentlich nur daran liegen, dass sie SID von deinen Eltern nicht übermittelt wird, also der Cookie auf der Strecke bleibt.

                  Kommentar


                  • #10
                    Jup, richtig. Aber der Grund dafür entzieht sich meinem Wissensstand. Wie gesagt, testweise habe ich die Einstellungen im Browser auf niedrigste Stufe eingestellt... Alles ist zugelassen, es funktioniert dennoch nicht..

                    Kommentar

                    Lädt...
                    X