刷新后无法访问PHP会话变量

时间:2014-11-17 21:12:33

标签: php session cookies login

我的代码存在逻辑问题:

<?php
if(isset($_POST['submit'])) {
    if($_POST['username'] != "" && $_POST['password'] != "") {
        $_SESSION["user"] = new User();
        $_SESSION["user"]->login($_POST['username'], $_POST['password']);
    }
}
?>

但刷新页面后,会话为空。 somone知道为什么会话可能是空的吗?登录功能正常工作(在每次重新加载页面时使用固定登录数据对其进行测试)。

提前致谢!

3 个答案:

答案 0 :(得分:3)

可能你忘了开课, 添加

session_start();

在使用任何会话变量之前。

答案 1 :(得分:3)

如果要在会话中存储对象,则需要确保在调用 session_start()之前已定义(或在自动加载器中),否则PHP会赢得&#39;能够反序列化对象。

有关详细信息,请参阅http://php.net/manual/en/oop4.serialization.php

答案 2 :(得分:0)

您必须在每个要访问session_start();变量的文件的最开头使用$_SESSION。否则它不会起作用,因为PHP不会初始化会话本身。

你应该这样写:

<?php
session_start();

//your code ;)

?>

希望它有所帮助;)