PHP session : SESSION Variables Automatically Reset after Unserialize()

标签 php mysql oop session serialization

我正在测试来自 build internet 的代码,这是一个 OOP 教程。我收到一条错误消息:

unserialize() expects parameter 1 to be string, object given in includes/global.inc.php on line 20

这是serialize()的代码:

$_SESSION['user'] = serialize(new User(mysql_fetch_assoc($result)));

下面是unserialize()的代码:

$_SESSION['user'] = serialize(new User(mysql_fetch_assoc($result)));

我用Expert Debugger看看是怎么回事,我发现用户登录后,页面重定向到index,session变量还是正确的,但是在index页面运行unserialize()后,所有session变量都被重置为某个值数字,这里是 unserialize() 行的代码:

if(isset($_SESSION["logged_in"])) : $user = unserialize($_SESSION['user']);

我不知道是什么原因造成的。您可以在此处下载程序的全部代码: http://s3.amazonaws.com/buildinternet/live-tutorials/first-php-app/first-php-application.zip

最佳答案

我相信当您调用 session_start()

时,数据可能会被 PHP 自动反序列化

它也会在执行结束时自动序列化,这意味着您不必自己做。

关于PHP session : SESSION Variables Automatically Reset after Unserialize(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315849/

相关文章:

php - PHP 遇到一点问题

java - 抽象类的代理,不改变用法

ruby-on-rails - 对这种方法中 self 的含义感到困惑

php - Yii2。动态添加属性和规则到模型

mysql - 如果前一列为空,则只更新一列(下一列)

php - 更改供应商目录不再使用 Symfony 3.4 找到文件

mysql - 作为 cronjob 运行时,脚本似乎需要更多时间

c - 指向函数的指针如何在 C 中发挥作用?

php - Mysql 检索信息时出现问题

php - 将 MYSQL 脚本转换为 PDO