当用户返回我的网站时,它会尝试从$_COOKIE
关联数组恢复其上一个会话。它没有按预期工作。我可以查看浏览器的cookie管理器,看看cookie是否存在,但它们似乎没有保存到$_SESSION
关联数组中。
这实际上是用户返回我的网站时的程序流程:
foreach ( $_COOKIE as $name => $val )
{
$_SESSION[$name] = $val;
}
session_start();
...
$some_var = $_SESSION[$var_name];
我是否有不正常的事情,或者我是否应该覆盖PHPSESSID
?任何关于我做错的见解都将不胜感激。感谢。
答案 0 :(得分:2)
您将会话和Cookie混为一谈。您不需要将内容放入$_COOKIE
数组中。只需使用session_start()
,然后将内容放入$_SESSION
。 PHP将自动为您管理会话/ cookie。
$_COOKIE
个变量存储在用户浏览器中,因此它们不安全且可由用户操作=>安全风险。
$_SESSION
变量仅存储在服务器上。存储在cookie中的唯一内容是session_id,因此$_SESSION
变量无法被操纵。
这有意义吗?
答案 1 :(得分:1)
将session_start()
放在其他任何地方之前;此函数初始化您将在$_SESSION
中访问的会话数据。
不完全确定你要完成的其余部分,但session_start()
首先是一个起点......