我的代码存在逻辑问题:
<?php
if(isset($_POST['submit'])) {
if($_POST['username'] != "" && $_POST['password'] != "") {
$_SESSION["user"] = new User();
$_SESSION["user"]->login($_POST['username'], $_POST['password']);
}
}
?>
但刷新页面后,会话为空。 somone知道为什么会话可能是空的吗?登录功能正常工作(在每次重新加载页面时使用固定登录数据对其进行测试)。
提前致谢!
答案 0 :(得分:3)
可能你忘了开课, 添加
session_start();
在使用任何会话变量之前。
答案 1 :(得分:3)
如果要在会话中存储对象,则需要确保在调用 session_start()之前已定义(或在自动加载器中),否则PHP会赢得&#39;能够反序列化对象。
答案 2 :(得分:0)
您必须在每个要访问session_start();
变量的文件的最开头使用$_SESSION
。否则它不会起作用,因为PHP不会初始化会话本身。
你应该这样写:
<?php
session_start();
//your code ;)
?>
希望它有所帮助;)