在过去的 3 个小时里,我一直被困在一个问题上,这让我对 PHP 会话感到很困惑。Iv 从 session_is_registered 转到 $_SESSION 并且它不想工作。
请参阅下面的代码(在我想通过登录保护的页面的最顶部的所有文件中):
<?php
session_start();
if(!isset($_SESSION['user']))
header("location: login.php");
?>
在另一个页面 access.php 上,我有一个带有两个输入框和提交按钮的表单来检查输入并与 db 交叉引用它。当输入不正确的值时,我收到消息“无效登录”,这是正确的。但是当我输入正确的详细信息时,我会回到 login.php 页面,要求登录。
我正在保存会话并检查详细信息,如下所示:
<?php
session_start();
include("dbfile.php");
$sql = mysql_query("SELECT id FROM myTable WHERE user=$username AND pass=$pass");
if(mysql_num_rows($sql)==1){
$_SESSION['user'] = "Test";
header("location: account.php");
}else{
header("location: login.php");
}
?>
不幸的是,我在一个已关闭 register_globals 的共享服务器上,但不确定这是否是问题所在。如果我在其他页面上回显会话的输出,我什么也得不到。就像它甚至没有注册/保存会话一样。
我在浏览器上启用了 cookie/js。事实上,我已经在 4 个浏览器上进行了测试,但结果相同。谁会是这个的救生员..