gpt4 book ai didi

javascript - Javascript 警报弹出窗口是否会扩展 PHP session ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:34 25 4
gpt4 key购买 nike

为了更优雅地处理过期的 PHP session ,我在我的 PHP 代码中插入了以下内容:

$sessionLifeTimeInSeconds = ini_get ("session.gc_maxlifetime");
echo '<script type="text/javascript">' . "\n" .
' setTimeout (function () {' . "\n" .
' alert ("Your login session will expire in 3 minutes.");' .
"\n" .
' }, ' . ($sessionLifeTimeInSeconds - 180) * 1000 . ');' . "\n" .
'</script>' . "\n\n";

哪个有效。但是,现在我注意到,在单击 javascript 警报上的“确定”按钮并且没有任何进一步的事件之后, session 在达到超时(本例中为默认 24 分钟)时不会过期。

警告弹出框是否应该延长 session ?如果是这样,是否可以避免这种情况?如果可以,如何避免?

如果相关的话,我在 Ubuntu Linux 上使用 Firefox 44.0。

最佳答案

弹出框不会延长 session ,因为 session 由服务器保留 24 分钟,并且只有在与服务器交互时才会延长。

尝试在您的 javascript 函数中通过 javascript 执行服务器调用以扩展 php session ,例如对根目录的 AJAX 调用:

$sessionLifeTimeInSeconds = ini_get ("session.gc_maxlifetime");
echo '<script type="text/javascript">' . "\n" .
' setTimeout (function () {' . "\n" .
' alert ("Your login session will expire in 3 minutes.");' .
' xhttp.open("GET", "/", true);' .
' xhttp.send()' .
"\n" .
' }, ' . ($sessionLifeTimeInSeconds - 180) * 1000 . ');' . "\n" .
'</script>' . "\n\n";

关于javascript - Javascript 警报弹出窗口是否会扩展 PHP session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35394773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com