面临问题PHP unserialize()
函数如标题所示,它抛出错误。
unserialize() [function.unserialize]: Error at offset 0 of 1781 bytes
我也尝试过session_decode()
返回bool(false)
magic_quotes_gpc
is Off
.
好吧,我正在阅读序列化文件的内容。文件内容如下所示。
核心|a:3:{s:23:"_session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s:0: "";s:20:"http_x_forwarded_for";s:0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0
(Windows;U;Windows NT 5.1;en-US;
版本:1.9.2.13) 壁虎/20101203
Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:8:"消息";O:34:"Mage_Core_Model_Message_Collection":2 :{s:12:"^@*^@_messages";a:0:{}s:20:"^@*^@_lastAddedMessage";N;}}客户|a:3:{s:23:" _session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s:0:"";s:20:"http_x_forwarded_for";s :0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0
(Windows;U;Windows NT 5.1;en-US;
版本:1.9.2.13) 壁虎/20101203
Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:19:"wishlist_item_count";i:0;}目录|a: 3:{s:23:"_session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s:0:"";s :20:"http_x_forwarded_for";s:0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0
(Windows;U;Windows NT 5.1;en-US;
版本:1.9.2.13) 壁虎/20101203
Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:8:"消息";O:34:"Mage_Core_Model_Message_Collection":2 :{s:12:"^@*^@_messages";a:0:{}s:20:"^@*^@_lastAddedMessage";N;}}结账|a:3:{s:23:" _session_validator_data";a:4:{s:11:"remote_addr";s:15:"117.241.113.248";s:8:"http_via";s:0:"";s:20:"http_x_forwarded_for";s :0:"";s:15:"http_user_agent";s:90:"Mozilla/5.0
(Windows;U;Windows NT 5.1;en-US;
版本:1.9.2.13) 壁虎/20101203
Firefox/3.6.13";}s:13:"session_hosts";a:1:{s:12:"";b:1;}s:8:"消息";O:34:"Mage_Core_Model_Message_Collection":2 :{s:12:"^@*^@_messages";a:0:{}s:20:"^@*^@_lastAddedMessage";N;}}
我的 PHP 代码如下
$file='/var/www/html/products/var/session/sess_0ehb7ek0hmunqo3kq70t0t6mb0';
$contents=file_get_contents($file);
$data = unserialize($contents);
var_dump($data);
我已经尝试过stripslashes()
在反序列化数据之前。
不知道数据问题出在哪里。
我无法更改将数据存储到文件的机制,因为这是由 Magento 处理的,用于在文件级别管理会话。
如果您想解码会话数据,请使用session_decode
(参见manual https://www.php.net/manual/en/function.session-decode.php). unserialize
仅解码单个变量,而不解码会话数据。
你可以这样做:
$file = '/var/www/html/products/var/session/sess_ciktos8icvk11grtpkj3u610o3';
$contents = file_get_contents($file);
session_start();
session_decode($contents);
print_r($_SESSION);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)