извините, ребята ... вы правы!
Немного кода поможет всем нам :)
предположим, что мой скрипт - script.php
в html script.php я положил
$(window).bind('load',
function(){
$.post(PATHTOLOCK.php);
});
$(window).bind('unload',
function(){
$.post(PATHTOUNLOCK.php);
});
В файле PATHTOLOCK.php я делаю это:
$_SESSION['flag']=true;
И в файле PATHTOUNLOCK.php я делаю это:
$_SESSION['flag']=false;
В начале script.php я поставил
if($_SESSION['flag']==true){
echo "error";exit;
}
Если я открываю script.php в двух окнах / вкладках, все работает нормально. Если я обновлю страницу, она не будет работать, потому что я предполагаю, что последовательность событий следующая:
- нажмите на обновление
- Событие unload не вызывается, потому что страница не полностью оставлена
- скрипт script.php перезагружается
- проверка в начале script.php не удалась, потому что flag = true
- script.php идет по ошибке
- событие unload вызывается, потому что страница оставлена и flag = false
- нажмите на обновление
- теперь работает!
и так далее ... каждые два обновления это работает!