会话变量的值正在取消设置,即“-blank-”没有取消设置它
Posted
技术标签:
【中文标题】会话变量的值正在取消设置,即“-blank-”没有取消设置它【英文标题】:values of sessions vaiables are getting unset i.e. "-blank-" without unsseting it 【发布时间】:2012-12-02 12:01:45 【问题描述】:include('conection.php');
$db=new Database();
session_start();
echo "<div style=' background-color:white; border:solid white'>".$_SESSION['uid']."</div>";
if(!(isset(**$_SESSION['uid']**)))
header('location:index.php');
if(isset($_REQUEST['admin']))
if(base64_decode($_REQUEST['admin'])!=='over779656')
header('location:index.php');
$r=explode(" ",base64_decode($_REQUEST['final']));
**$_SESSION['uid']**
这个变量的值在超过 2 小时或更长时间后被取消设置,为什么会这样,即使我没有取消设置任何变量,是否有任何服务器问题或任何浏览器问题
【问题讨论】:
是不是因为session过期了?会话超时? 修改你的ini文件并重启你的服务器,同时在header之后使用exit
如果您的 php.ini 位于实时服务器上,并且有许多项目使用相同的 ini 文件,或者您无权访问它。试试我的答案。
请阅读this important information,这可能会影响您在 SO 上找到答案的能力。
【参考方案1】:
在你的php.ini
中检查session.gc_maxlifetime
并增加那里的时间
【讨论】:
是1440,表示多少分钟 实际上该代码已上传到服务器上,其中 shpuld 检查服务器上的 php.ini 在 php 文件中使用 phpinfo() 并找出 php.ini 的位置 在服务器上做php -i | grep php.ini
会向你展示希望【参考方案2】:
不要在 php.ini 中更改它,而是尝试在运行时更改超时。
ini_set('session.gc_maxlifetime', 5*60*60); // 5 hours
编辑
注意:在session_start()
之前使用此代码
【讨论】:
不,这根本不起作用...任何其他替代选项【参考方案3】:如果您无权访问 php.ini 和/或不想重新启动服务器,您可以尝试以下操作。查看http://php.net/ini_get 的 session.gc_maxlifetime 设置,如下所示:
ini_get('session.gc_maxlifetime')
你可以用http://php.net/ini_set这样设置它
ini_set('session.gc_maxlifetime', 3600*24);
但请注意内存问题和长时间运行的脚本。也像另一个答案所说:在 session_start() 之前执行。
【讨论】:
以上是关于会话变量的值正在取消设置,即“-blank-”没有取消设置它的主要内容,如果未能解决你的问题,请参考以下文章