PHP会话数据在3分钟后消失

时间:2017-04-11 00:50:29

标签: php session session-variables

我遇到会话数据消失的问题。虽然我不会说它与代码无关,但条件似乎是那样。登录后,我可以在会话数据存储中看到存储在会话文件中的会话数据。 3分钟后,如果没有对浏览器执行任何操作,会话文件中的数据将消失。我使用的是CentOS 6.8和PHP 5.6.0。

session_start();    
if(($_REQUEST['login_btn'] || $_REQUEST['username'] || $_REQUEST['password']) && !$_SESSION['auth']) {
    if(!$_REQUEST['username'] && !$_REQUEST['username']) {
        header("Location: /?msg=bp");
        exit();
    }
    if($_SESSION['auth']!=1)
    {
        if(!$conn)
            $conn=mysql_conn();
        $sql="select pid,CONCAT(fname, ' ', lname) as pname,email1,password FROM people WHERE email1 = '".addslashes(str_replace(" ","",trim($_REQUEST['username'])))."'";
        $res=mysql_query($sql,$conn);
        if(mysql_num_rows($res)<1) {
            header("Location: /?msg=bp");
            exit();
        }
        else {
            $row=mysql_fetch_array($res);
            $user=$row['email1'];
            $pass=$row['password'];
            if($pass != $_REQUEST['password']){
                header("Location: /?msg=bp");
            }
            else {
                $_SESSION['pid'] = $row['pid'];
                $_SESSION['email'] = $user;
                $_SESSION['pname'] = $row['pname'];
                $_SESSION['auth'] = true;
            }
        }
    }
}

相关的php.ini设置:

session.save_handler = files
session.save_path = "/data/session"
session.auto_start = 0
session.cookie_lifetime = 0
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 0
session.cache_limiter = nocache

非常感谢任何帮助!

0 个答案:

没有答案