Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP $_SESSION timeout und Ajax mit $_Post request [Problem]

Einklappen

Neue Werbung 2019

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

  • PHP $_SESSION timeout und Ajax mit $_Post request [Problem]

    Hallo,

    ich habe über PHP $_SESSION etc... viele Code-Beispiele, Tutorials gesucht, gelesen und ausprobiert.
    Leider tritt ein Problem bei mir auf die ich nicht gelöst kriege.
    Möglicherweise habe ich ein Denkfehler oder habe es falsch umgesetzt.

    index.php = loggin Seite hier findet Erstmal ein session_start(); statt.
    login.php = mache ich eine Überprüfung von user_name und user_password und erstelle mir einen session mit einigen Werten.
    session.php = Überprüfung ob session gestzt ist oder nicht. (Die Datei wird in anderen Dateien eingebunden).
    Soweit ist es ja wie viele Beispielen aus dem Netz bekannt.
    Und dann kommen weitere Seiten mit php function und Buttons etc...

    Jetzt habe ich einige Seiten mit Informationen und Buttons mit Ajax Funktionen.
    Code:
    function user(var1,var2) {
    
        $.ajax({
            type: "POST",
            url: "user_info.php",
            data:'user=info&name='+var1+'&status='+var2,
    ...
        });
    }
    Mein Problem hier ist es wenn die Seite über einen längeren Zeitraum auf ist ohne eine Aktivität und PHP $_SESSION timeout auftritt, dann kann ich immer noch auf die Buttons klicken und über Ajax können bestimmte Funktionen aufgerufen werden.
    Die aber nicht Richtig sind da einige Funktionen Informationen aus $_SESSION benötigen.

    $_SESSION timeout macht sich bemerkbar, bei reload der Seite oder bei versuch auf eine andere Seite zu wechseln.
    Man wird dann auf die index.php Seite weitergeleitet.


    Welche Möglichkeiten gibt es um das am besten umzusetzen, das nach timeout bei klick der Button,
    k.a eine Meldung ausgegeben wird oder auf die index.php weiter gleitet wird etc... ???


    Vielen Dank.

    VG,
    c01001.




    Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

  • #2
    Bei einem Session Timeout gibst du im Response den Status-Code 401 (Unauthorized) zurück. Dieses kannst du im Error Handler deines Ajax Request abfangen und dann den Benutzer zum Login leiten.

    Wenn ich es richtig im Kopf habe müsste das so in etwa aussehen:

    Code:
     $.ajax({
    statusCode: {
        401: function(xhr) {
               alert('nicht angemeldet!'); 
    }   } });

    Kommentar

    Lädt...
    X