PHP会话不预防来自Cookies恢复

问题描述 投票:0回答:2

当用户返回到我的网站,它试图从$_COOKIE关联数组恢复他们的最后一次会议。它不按预期工作。我可以看看我的浏览器的cookie管理器,看看该饼干是有,但他们似乎没有被得到保存到$_SESSION关联数组。

这本质上是当用户返回到我的网站程序流程:

foreach ( $_COOKIE as $name => $val )
{
  $_SESSION[$name] = $val;
}

session_start();

...

$some_var = $_SESSION[$var_name];

我有东西坏了,或者我应该不会被覆盖PHPSESSID?任何见解,以我在做什么错误,将不胜感激。谢谢。

php session cookies session-cookies
2个回答
2
投票

你得到混淆会议和饼干。你并不需要把东西放到$_COOKIE阵列。只需使用session_start(),然后把东西放进$_SESSION。 PHP会自动再管理会话/饼。

$_COOKIE变量存储在用户的浏览器,所以它们不是安全的,可以由用户=>安全风险进行操作。

$_SESSION变量只存储在服务器上。存储在cookie中的唯一的事情是一个SESSION_ID,所以$_SESSION变量不能被操纵。

那有意义吗?


1
投票

任何事情之前把session_start();这个函数初始化,您将$_SESSION被访问会话数据。

不完全知道你想要什么,以实现与它所有的休息,但session_start()首先是一个起点......

© www.soinside.com 2019 - 2024. All rights reserved.