所以我有以下代码来检查会话是否存在:
<?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并且我被重定向回登录页面。我已经找了两天的解决方案,但我没找到。请帮忙