[PHP/Ajax] Redirect nach abgelaufener Session

martin

Well-Known Member
Moin

ich habe ein Problem mit abgelaufenen Sessions. Auf meiner Seite "test.html" gibt es ein DIV "testinhalt". In dieses Div wird nach dem Klicken auf einen Button der Inhalt der Seite "inhalt.php" geladen. Soweit klappt auch alles wie es soll. Mein Problem tritt auf, sobald ein User längere Zeit die Seite verlässt, also seine Session abläuft. Wenn das der Fall ist, möchte ich, dass der User auf die Seite "login.php" weitergeleitet wird.
Folgendes habe ich probiert:

test.html (Auszug)
...
function load_content(id){

$.ajax({
type: "POST",
url: "./inhalt.php",
data: { id : id },
success: function(data){
document.getElementById("testinhalt").innerHTML = data;
}
});

}
...

inhalt.php (Auszug)
...
if (!isset($_SESSION['userid'])){
header("Location: login.php");
}
...

Bei meinem Versuch wird logischerweise auf die Seite login.php verwiesen und diese Seite dann im DIV angezeigt. Ich möchte die Seite aber nicht im DIV angezeigt bekommen, sondern die "gesamte Seite" also test.html auf index.php weiterleiten.
Leider komme ich nicht dahinter, wie man das am besten machen könnte.
Jemand ne Idee?
 
Einen Timer? Wozu?

Also in Javascript würde ich das Ganze dann irgendwie so machen:

...
if (!isset($_SESSION['userid'])){
die();
}
...
und dann im Javascript nachfragen, ob "data" einen Inhalt hat, wenn nein, dann weiterleiten auf die login.php

Das Ganze kommt mir aber sehr "schmutzig" programmiert vor. Gibt da vielleicht elegantere Lösungen als mit die(); einfach abzubrechen?
 
Ich meinte einen Timer, der in regelmäßigen Abständen überprüft, ob die Session noch existiert, quasi als Heartbeat.
Die Header der aufrufenden Seite kannst du ja nachträglich nicht mehr verändern.
 
Zuletzt bearbeitet:
Zurück
Oben