javascript - 如何在 session 超时时显示弹出窗口

标签 javascript php ajax jquery session

我目前一直在我的网站上工作,遇到了一些困难。

基本上我想在用户闲置一段时间后显示一个弹出窗口;我不知道如何使用似乎很流行的解决方案 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/

相关文章:

java - 在 URL 中包含变量,返回错误页面

javascript - jQuery .change() 仅在第一次更改时触发

php - 文本框内的 undefined variable

jquery - 在文件系统上运行的 HTML/Javascript 应用程序、安全问题

javascript - 使用 Ajax 加载页面并将数据发送到页面

javascript - 添加第二个类不起作用

javascript - 在结束标记前添加节点?

javascript - 如何在 Javascript 中使用 REGEX 分割该字符串

php - 如何从表中打印数据?

php - 对多维数组进行排序?