0
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 小时或更多时间后变得未设置,为什么会这样,即使我没有取消设置任何变量,是否有任何服务器问题或任何浏览器问题

4

3 回答 3

3

检查session.gc_maxlifetimephp.ini并增加那里的时间

于 2012-12-14T13:21:22.280 回答
2

不要在 php.ini 中更改它,而是尝试在运行时更改超时。

ini_set('session.gc_maxlifetime', 5*60*60); // 5 hours

编辑

注意:之前使用此代码session_start()

于 2012-12-14T13:27:35.753 回答
0

如果您无权访问 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() 之前执行。

于 2012-12-14T13:29:27.707 回答