PHP - 页面刷新后出现错误500

时间:2012-11-04 19:06:27

标签: php session serialization

我有一个PHP应用程序,我在从SESSION获取User对象时遇到了问题。

保存对象时,我有以下代码(其他一些文件)。

$_SESSION['user'] = serialize($user);

当我尝试加载名为timeline.php的文件时,问题就开始了。我第一次加载页面(在我登录并设置了SESSION ['user]后)页面工作正常。当我刷新页面时,我收到错误500.

错误日志显示:

在第10行的timeline.php中调用非对象的成员函数get()。

第2-10行的代码是:

include_once('isUserLoggedIn.php');
require_once('classes/User.php');

session_start();

$user = unserialize($_SESSION['user']);

require_once('classes/Database.php');
$tweets = Database::getTimeline($user->get('user_id'));

任何人都可以提供任何理由吗?

更新(1)

在timeline.php中,我将var_dump($ user)添加到第8行。第一次加载页面时,它给出了正确的值。

第二次加载页面时,它给了我bool(false)。

更新(2)

问题似乎与主机有关(也许是php.ini文件中的设置)。我使用的公司是Fatcow。当我使用别人主持人(1和1)时,问题没有发生。

1 个答案:

答案 0 :(得分:0)

当反序列化对象时可能会发生许多奇怪的事情,请参阅PHP手册页以获取更多信息。

http://php.net/manual/en/function.unserialize.php

此评论似乎相关: http://www.php.net/manual/en/function.unserialize.php#77826