【问题标题】:values of sessions vaiables are getting unset i.e. "-blank-" without unsseting it会话变量的值正在取消设置,即“-blank-”没有取消设置它
【发布时间】: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 上找到答案的能力。

标签: php session session-variables unset


【解决方案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() 之前执行。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2013-02-17
    • 1970-01-01
    • 2010-11-04
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多