SESSION)无法在远程服务器上工作

我有一个登录页面,用户输入他的用户名和密码。 如果成功,我将他重定向到我开始会话的index.php:

session_start();

从index.php他可以导航到一个不同的页面(“p1.php”)和“p1.php”之上我有这个检查:

<?php
if(!isset($_SESSION)) 
{ 
    exit;
} 
?>

这适用于我的本地服务器,但是当我在远程服务器上部署时, !isset($_SESSION)总是返回true。

这里会发生什么?

编辑:我在我的托管服务提供商方找到了一个请求,在php.ini中添加:

session_save_path("your home directory path"/phpsessions);

并在我的路径中创建一个phpsessions文件夹。

我做了但没有帮助。

我也试图做到这一点:

在index.php中:

session_start();
if(isset($_REQUEST['lecturer_id']))
{
    echo "lecturer_id set";
    $_SESSION['lecturer_id'] = $_REQUEST['lecturer_id']; // store session data
}

并在p1.php:session_start(); if(!isset($ _ SESSION ['lecturer_id'])){exit; }

页面总是退出,即没有定义会话变量


你只需要确保你有session_start(); 在您的p1.php页面的最顶部以及使用会话数据的任何页面。


服务器很可能是静默地创建一个本地服务器未配置的PHP会话。

尝试检查特定的$_SESSION例如$_SESSION['x']而不是仅仅$_SESSION

编辑:而不是检查isset($_SESSION)你应该检查你设置的任何会话变量: isset($_SESSION['SESSION_VARIABLE_YOU_SET'])

isset($_SESSION)session_start()被调用后返回true,这就是为什么你需要检查你设置的特定的$_SESSION变量


远程服务器可能配置为会话自动启动。 如果你可以配置这个php实例,你可以在php.ini文件(session_autostart指令)中检查它。

更新:对不起,我不明白你的问题。 真的,如果会话自动启动设置为“开启”会话始终存在。 您不能使用isset($ _ SESSION)来确定用户是否已登录。

链接地址: http://www.djcxy.com/p/60235.html

上一篇: SESSION) Not Working on Remote Server

下一篇: Session not restored