刷新

时间:2017-10-26 16:40:50

标签: php session-cookies

所以我有以下代码来检查会话是否存在:

<?php 
session_start();
if(isset($_SESSION['user_id'])){
    echo json_encode(true);
}else{
    echo json_encode(false);
}
?>

会话是从一个不同的php文件中的登录函数设置的,该文件运行查询以获取用户的id,并将其保存到会话中,如下所示:

session_start();
header('Access-Control-Allow-Origin: *');

/.....

try{
            $query = "SELECT user_id FROM USER WHERE (user_email=:email) AND (user_password=:password)";

            $stmt = $this->conn->prepare($query);

            $email = htmlspecialchars(strip_tags($this->email));
            $password = htmlspecialchars(strip_tags($this->password));

            $stmt->bindParam(':email', $email);
            $stmt->bindParam(':password', $password);

            if($stmt->execute()){
                $results = $stmt->fetchColumn();  
                $_SESSION['user_id'] = $results;
                if ( !is_writable(session_save_path()) ) {
                   echo 'Session save path "'.session_save_path().'" is not writable!'; 
                }
                if(isset($_SESSION['user_id'])){
                    return true;
                }else{
                    return false;
                }
            }else{
                echo "For login";
                return $stmt->errorInfo();  
            }
        }catch(Exception $e){
            die('ERROR: ' .$e->getMessage());   
        }

当我第一次登录时,它返回true,我被重定向到主页面。但是当我刷新主页面时,checkSession.php返回false并且我被重定向回登录页面。我已经找了两天的解决方案,但我没找到。请帮忙

0 个答案:

没有答案