我目前一直在我的网站上工作,遇到了一些困难。
基本上我想在用户闲置一段时间后显示一个弹出窗口;我不知道如何使用似乎很流行的解决方案 AJAX。
我的网站主要是 PHP 和 CSS。
这是我目前正在使用的,但它不如我希望的那样有效,因为弹出窗口仅在屏幕刷新后显示。
if (isset($_SESSION['username']) && isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity'] > 5)) {
connect();
if(!connect()) {
die('Could not connect: ' . mysql_error());
header( "refresh:3; url=/index.php" );
}
mysql_select_db('www');
$user = $_SESSION['username'];
mysql_query("UPDATE users SET online='0'
WHERE username='$user'");
echo '<script type="text/javascript">';
echo 'alert("You were logged off due to inactivity");';
echo '</script>';
session_unset();
session_destroy();
}
$_SESSION['last_activity'] = time();
最佳答案
要避免刷新问题,您必须求助于 ajax,因为 PHP 是纯服务器端的。它可以像在 php 页面中进行测试一样简单,您可以使用 Ajax 刷新该页面。查看 jQuery.ajax()
函数,并将其与 javascript 结合使用
setTimeout ( expression, timeout );
setInterval ( expression, interval );
有关 .ajax 的信息,请参阅: http://api.jquery.com/jquery.ajax/
有关 setInterval 和 setTimeout 的信息,请参阅: http://javascript.info/tutorial/settimeout-setinterval
关于javascript - 如何在 session 超时时显示弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824276/