start ajax query bij sluiten browser geeft 'error'
Ik gebruik onderstaande javascript/jquery op me index.php in <head>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<script type="text/javascript">
window.onbeforeunload = function(){ myUnloadEvent(); }
function myUnloadEvent() {
$.ajax({ url: "./includes/locked.php?unload=1"});
}
</script>
window.onbeforeunload = function(){ myUnloadEvent(); }
function myUnloadEvent() {
$.ajax({ url: "./includes/locked.php?unload=1"});
}
</script>
in locked.php staat het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
//enable sessions PHP
ini_set('session.save_path', '/tmp');
ini_set('session.auto_start', '1');
session_start();
if(!isset($_SESSION['username']) || !isset($_SESSION['admin'])){
header("Location: login.php");
die();
}
include_once 'functions.php';
include_once 'connectdb.php';
$loggedin = str_replace('@*****.nl','',$_SESSION["username"]);
if(isset($_REQUEST["unload"])){
$queryunlock = "UPDATE levering_projects SET locked = '0', lockedby = '' WHERE lockedby = '$loggedin' and locked = '1'";
mysql_query($queryunlock) or die('Error, update query failed: '.$queryunlock.' - ' . mysql_error());
echo "Lock verwijderd";
}
?>
//enable sessions PHP
ini_set('session.save_path', '/tmp');
ini_set('session.auto_start', '1');
session_start();
if(!isset($_SESSION['username']) || !isset($_SESSION['admin'])){
header("Location: login.php");
die();
}
include_once 'functions.php';
include_once 'connectdb.php';
$loggedin = str_replace('@*****.nl','',$_SESSION["username"]);
if(isset($_REQUEST["unload"])){
$queryunlock = "UPDATE levering_projects SET locked = '0', lockedby = '' WHERE lockedby = '$loggedin' and locked = '1'";
mysql_query($queryunlock) or die('Error, update query failed: '.$queryunlock.' - ' . mysql_error());
echo "Lock verwijderd";
}
?>
En wat zie je onder 'headers' in firebug?
Wouter J op 24/09/2012 10:24:40:
En wat zie je onder 'headers' in firebug?
Accept */*
Accept-Encoding gzip, deflate
Accept-Language nl,en-us;q=0.7,en;q=0.3
Connection keep-alive
Cookie __utma=61752703.1110796363.1343805088.1347890302.1348066605.11; __utmz=61752703.1343805088.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); PHPSESSID=fpik9itgr38h3l2eopvmglj8h3
Host levering.****.nl
Referer http://levering.****.nl/index.php
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1 FirePHP/0.7.1
X-Requested-With XMLHttpRequest
x-insight activate
Als ik jou was, zou ik dit niet proberen te maken.
Zou je het op een andere manier kunnen doen?
bv. om de zoveel minuten met ajax een teken van leven geven (automatisch uiteraard); wie langer dan die tijd niets stuurt wordt beschouwd als 'browser gesloten'?
Of zoiets?
Dat vermoeden had ik al... Het zou inderdaad ook kunnen met een timestamp vergelijking, misschien is dat dan de beste optie. Dan doe ik dat wel met een cron of een javascript die draait onder de ingelogde gebruikers...
Thanks