YShout 5:函数Unserialize Error

时间:2013-07-15 10:41:28

标签: php serialization

买了YShout并且已经在我的网络服务器上运行了一段时间了。支持不会长时间回复任何电子邮件。我一直在反序列化阻止聊天框的错误。

错误:似乎存在问题:unserialize()偏移65537处的错误为86434字节。文件:filestorage.class.php第36行。

这是包含第36行的函数。

function load() {
    if (($contents = $this->read($this->path)) == null)
    return $this->resetArray();
    return unserialize($contents);///////////line 36
}

这里似乎是生成错误消息的日志文件中的行,65537似乎位于字符串中“uia:2:”中的“a”处。

i:251;a:6:{s:8:"nickname";s:7:"TestUser";s:7:"message";s:30:"when he's online ask him";s:9:"timestamp";d:1373857811.6403610706329345703125;s:5:"admin";b:0;s:3:"uia:2:{s:4:"info";a:1:{s:15:"latestTimestamp";i:-1;}s:5:"posts";a:0:{}}ip";s:12:"76.174.54.75";}}

不确定YShout是如何工作的,但我现在每天都会多次收到此错误。我必须删除日志文件,然后YShout从头开始创建一个新的日志,一切都很好。但是在我删除导致问题的日志之前,没有人可以使用聊天窗口。

理想的解决方案是解决这个问题,并弄清楚最新情况。辅助解决方案是重命名导致错误的日志文件。这将导致YShout创建一个要使用的新日志文件,我们将记录包含错误消息的日志。

1 个答案:

答案 0 :(得分:0)

当我弄乱日志文件时,出现了相同的错误消息。如果您在邮件中添加或删除字符,则最终会出现此错误。但改变字符不会造成任何麻烦。这意味着YShout将消息长度存储在日志文件中。

看看这一行:

s:30:"when he's online ask him";

's'表示正在使用30个字符,但您的消息只有24个字符。尝试将其更改为24,问题应该解决。

相关问题