【发布时间】:2013-03-29 17:58:36
【问题描述】:
我正在尝试以序列化的方式将数组保存到 cookie 中。所以我要做的是:
$serial_auth = serialize($_SESSION['auth']);
setcookie("auth_cookie", $serial_auth , 2592000 + time());
在下一页我尝试像这样使用这些数据:
if(isset($_COOKIE['auth_cookie']))
{
$_SESSION['auth'] = unserialize($_COOKIE['auth_cookie']); //but it returns an empty array.
}
现在奇怪的是整个事情都在我的本地主机上运行,但它在 000webhost 站点上不起作用。
还有一个注释:当我尝试回应这些时,我得到了这个:
$_SESSION['auth'] =
Array ( [status] => ok [userid] => 1 [username] => user11 [visiblename] => user11 )
SERIALIZED =
a:4:{s:6:"status";s:2:"ok";s:6:"userid";s:1:"1";s:8:"username";s:6:"user11";s:11:"visiblename";s:6:"user11";}
这可能是 PHP 配置问题,但我想了解是否有办法解决此问题,而无需更改任何 PHP 配置。感谢您的帮助。
【问题讨论】:
-
您是否检查过cookie 是否已设置? (考虑“网络问题”,例如子域或跨域的 cookie 不可用)
-
是的,isset() 返回 true,但是 cookie 是空的..
标签: php session serialization cookies