我有一个非常奇怪的问题,我从来没有过。
我创建了一个login.php,您可以通过表单登录。
当一切都很好(密码用户名)时,会话$_SESSION["login"]
将获得用户的名称。
我运行该脚本并且它没有工作(会话仍然是空的)。 为了检查会话是否有效,我添加了:
echo "session: ".$_SESSION["test"];
$_SESSION["test"] = "test";
echo "nosession: ".$_SESSION["test"];
它总是说:“会话:nosession:test” 因此,我知道会话似乎不起作用。 然后我创建了另一个页面:session.php 只是这样:
session_start();
echo "session: ".$_SESSION["ses"];
$_SESSION["ses"] = "test";
echo "nosession: ".$_SESSION["ses"];
当我打开并重新加载页面时,我能够阅读: “session:testnosession:test”
这意味着会话似乎有效(没有服务器问题) 打开session.php后,我打开了login.php并重新加载了页面。然后它说: “session:testnosession:test”
我也能登录。
这意味着如果我打开另一个创建完全不同会话的php脚本,我就能登录。
有谁知道这里发生了什么?
修改 即使我删除完整的PHP代码(login.php),只需添加
session_start();
echo "session: ".$_SESSION["test"];
$_SESSION["test"] = "test";
echo "nosession: ".$_SESSION["test"];
它还没有工作!!!
也许是因为元标记中的UTF-8?
修改
只需在新的.php上编写所有代码即可。它必须是文件中不可见的错误