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