Als Login $_Session niet bestaat/expired is header location niet in div?
Nu is het zo dat als mijn sessie is verlopen, vanwege inactiviteit en iemand klikt een link aan wat een stukje AJAX aanroept en de resultaten in een DIV zet, dan verschijnt in deze DIV het login formulier, echter wil ik dat als de sessie is verlopen dat de gehele pagina redirect...
Hoe dit te doen?
Da's handiger dan dat in de functie te doen die de pagina laad, omdat hij op deze manier kan redirecten wanneer die tijd lang geleden is.
Voor de duidelijkheid, bij het laden van een pagina moet je die timer weer resetten via de sessie he ;-)
voorbeeldje?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
session_start();
if(!isset($_SESSION['username'])) {
echo "session timeout";
exit();
}
?>
session_start();
if(!isset($_SESSION['username'])) {
echo "session timeout";
exit();
}
?>
javascript:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function Posthttp(target, url, data) {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
document.getElementById(target).innerHTML="loading...";
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if(xmlhttp.responseText == 'session timeout')
window.location = 'login.php';
else
document.getElementById(target).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open('POST',url,false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(data);
}
?>
function Posthttp(target, url, data) {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
document.getElementById(target).innerHTML="loading...";
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if(xmlhttp.responseText == 'session timeout')
window.location = 'login.php';
else
document.getElementById(target).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open('POST',url,false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(data);
}
?>
groeten Frank
Gewijzigd op 04/10/2012 01:08:07 door Frank Nietbelangrijk