我遇到问题,我的会话变量未被设置/保存。会话变量未设置在标头重定向
这里是我的代码:
index.php文件有:
<? //this is first line of page
session_start();
?>
<form action="admin_process_login.php" method="post">
<p>EMAIL</p><input name="email" type="text">
<p>PASSWORD</p><input name="password" type="password" />
<input type="submit" value="Enter">
</form>
admin_process_login.php
<? //this is first line of page
session_start();
$useremail = $_POST['email'];
$postpassword = $_POST['password'];
include('admin_config.php');
if ($postpassword != "" && $useremail != "") {
//Connect to database
mysql_connect("localhost", $dbusr, $dbpass) or die(mysql_error());
mysql_select_db("studioel_dental") or die(mysql_error());
//Look for a matching email/password
$query = "SELECT *
FROM users
WHERE users.email = '$useremail'
AND users.password = '$postpassword'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
if(mysql_num_rows($result)==0){
header("Location: http://www.dentalbenefitprogram.com/admin.php?error=nomatch");
} else {
//set session variables and load supplies page
$uid = $row['id'];
$unamex = $row['name'];
$uemailx = $row['email'];
$utypex = $row['type'];
$_SESSION['userid']=$uid;
$_SESSION['uname']=$unamex;
$_SESSION['uemail']=$uemailx;
$_SESSION['utype']=$utypex;
header("Location: http://www.dentalbenefitprogram.com/admin_groups.php");
exit;
};
} else {
//email or password fields were blank. Return to login page
header("Location: http://www.dentalbenefitprogram.com/admin.php?error=blank");
};
?>
你可能已经猜到:会话变量没有被设置.. 。
任何帮助都很赞赏!
这正常工作,请创建一个测试脚本添加
ob_end_flush();
只初始化会话,设置会话变量并执行重定向。测试它是否工作(如果不起作用),如果它不起作用,请在此处替换您的代码,因为它包含的内容远多于您所问的内容。如果有效,请更改您的问题。 – hakre糟糕。我是个白痴。 让我撤回我的问题。谢谢你帮忙找到它,Hakre。 我从数据库中得到结果后忘了做一个while循环。 对不起(感觉羞怯)。 –