【发布时间】:2015-05-07 10:31:09
【问题描述】:
我的会话变量未设置有问题。文件已创建,但它们是空白的。
我的会话文件设置在公共 www 上方的目录中。根。登录表单位于根目录中。管理页面位于子目录中。我设置了两个配置文件来反映每个部分的不同路径。 Session() start 在每个页面上都被调用。然而,一旦我登录并被重定向到管理区域,vardump 就会反映一个空的会话数组。
来自管理配置文件:
define("MYSQLADMIN", "../../etc/mysqli.inc.php");
define("MY_SESSION_NAME", "endangeredspecies");
ini_set("session.save_path","../../mySessionFolder");
ini_set('session.cookie_lifetime','0');
//ini_set('session.cookie_secure','1');
ini_set('session.cookie_httponly','1');
ini_set('session.use_only_cookies','1');
ini_set("session.entropy_file","/dev/urandom");
session_name(MY_SESSION_NAME);
session_start();
设置会话变量的代码位于登录页面的包含文件中(位于文档根目录中)(包含文件在其上方)。会话设置代码示例:
$_SESSION["member_id"] = $member["user_id"]; //unique
$_SESSION["email"] = $member["user_email"];
当重定向工作时,块正在执行。
我不确定自己做错了什么。
谢谢!
编辑:删除重定向后,错误消息似乎表明这是一个路径问题。我的虚拟主机上的人建议我使用绝对路径,这似乎有效。但如果它也有更好的做法,我可能会改变我调用 session_start() 的位置。感谢帮助
谢谢!
【问题讨论】:
-
写 session_start();在您的页面顶部