我一直在网站上工作,遇到了一些困难。
基本上我想在用户闲置一段时间后显示一个弹出窗口;我不知道如何使用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();
答案 0 :(得分:0)
为了避免刷新问题,你必须转向ajax才能使用,因为PHP纯粹是服务器端。它可以像在php页面中进行测试一样简单,您可以使用Ajax进行刷新。查看jQuery.ajax()
函数,并将其与javascript结合使用
setTimeout ( expression, timeout );
setInterval ( expression, interval );
有关.ajax的信息,请参阅: http://api.jquery.com/jquery.ajax/
有关setInterval og setTimeout的信息,请参阅: http://javascript.info/tutorial/settimeout-setinterval
答案 1 :(得分:0)
我认为弹出窗口不能使用PHP或CSS显示..
我的建议是使用javascript或jquery ..
使用Javascript函数 setInterval 来检查idel时间
答案 2 :(得分:0)
如果从客户端考虑,这两个答案都是正确的。从服务器端方法,您需要使用推送机制。此链接(pushing data from server to client in php)将帮助您了解如何从服务器推送数据(如您想要显示弹出窗口)。 但是这个解决方案将比这两个更难。