我很困惑,为什么这是工作;为什么cookies和session的组合使用起作用?困惑
setcookie("user", $user_id, time()+604800);
session_start();
$_SESSION['user_id'] = "string";
即使setcookie()
没有提及$_SESSION['user_id']
,当我回声$_SESSION['user_id']
从代码另一页:
session_start();
echo $_SESSION['user_id'];
它打印string
。
我的印象是,setcookie()
必须引用$_SESSION
键才能从任何页面调用它?
也许我的基地很好,但我只是想确保我明白为什么在我实施它之前这是行得通的,因为我宁愿它不会因为错误的使用而发生故障。
任何帮助,意见,建议和解释将不胜感激!
我认为它是默认存储或其他东西?因为我实际上没有要求手动存储'$ _SESSION ['id]'。 –
PHP在您开始会话时会自动处理该事件。 HTTP通过设计是一种无状态协议,并且使会话起作用的唯一一个会话是包含会话ID的cookie。会话的_contents_由您控制,并存储在服务器端。 – Rijk
所以这是一个不同于由'setcookie()'创建的cookie,与我的OP一样。我也发现这个我认为可能是你在说什么 - http://uk3.php.net/manual/en/function.session-set-cookie-params.php –