【发布时间】:2018-05-28 06:35:59
【问题描述】:
我的 php 会话变量在随机时间后自动设置空白值。 例如;如果我登录到我的网站,那么 $_SESSION["uid"] 将在我的 PHP 会话中进行设置。它重定向到仪表板。在我的仪表板页面中,根据此会话变量获取用户信息。之后我只是最小化了这个浏览器窗口(谷歌浏览器),我只是打开了另一个浏览器(Mozilla Firefox)并浏览了一些其他网站 20 或超过 20 分钟,然后我回到我最小化的仪表板页面(谷歌浏览器),如果我刷新页面,然后 $_SESSION["uid"] 将设置为空白。
我的代码是这样的
设置会话变量时
<?php
session_start();
function to_set_session_variable(){
$_SESSION["uid"]=10;
session_write_close();
}
?>
仪表板页面内的代码
<?php
session_start();
$uid=$_SESSION["uid"];
get_user_data($uid);
-----------------------------------
-----------------------------------
-----------------------------------
?>
【问题讨论】:
-
那是因为 PHP 需要清除不再使用的会话。它会定期执行此操作。如果要设置自定义超时而不是通过 php 将默认存储在文件中,则可以将会话值保存在 redis 等数据库中。