Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
刷新后无法访问PHP会话变量_Php_Session_Cookies_Login - Fatal编程技术网

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

刷新后无法访问PHP会话变量,php,session,cookies,login,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']); } }

我发现这个代码有一个逻辑问题:

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

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


提前谢谢

您可能忘了启动会话, 加


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

必须使用
Session\u start()
在每个文件的第一个位置,您要在其中访问
$\u会话
变量。否则它将无法工作,因为PHP不会初始化会话本身

你应该这样写:

<?php
session_start();

//your code ;)

?>

如果要在会话中存储对象,则在调用会话_start()之前,需要确保该类已定义(或在自动加载程序中可用),否则PHP将无法反序列化该对象


有关更多信息,请参阅。

您是否在任何地方使用
会话\u start
呢?我想您不会忘记这一行:/您的登录表单是什么样子的?
Benutzername Passwort
这是我的登录表单。您可以尝试删除第二行吗关闭第2行中第一个if语句的括号并再次测试?这不是真的:包含的文件不需要自己的会话_start()。对于每个请求,在开始时需要一个会话\u start()。我没有忘记这一行,它在文档的顶部。可能代码中的某个地方正在销毁会话,请调试它。已经查找了会话\u destroy(),但我从未使用过它。您能将
打印($\u session)
放在
会话\u start()的正下方吗并在最后验证代码中的所有内容是否都正常
<?php
session_start();

//your code ;)

?>