【发布时间】:2014-03-03 19:19:22
【问题描述】:
您好,我的某些代码有问题。连我的老师都帮不了我,我不知道还能去哪里。当我的 foreach 循环被激活并且密码和用户名与硬编码字符串相同时,它仍然重定向到 loginerror.php。当我删除标题(“位置:loginerror.php”)时,它运行正常。为什么我的代码的最后一行仍然被激活,当它应该加载一个新页面时?
<?php session_start(); ?>
<html>
<header></header>
<body>
<form action="login.php" Method="post">
Username: <input type="text" name="Username"> </br></br>
Password: <input type="password" name="Password"> </br></br>
<input type="submit" value="Login"></br></br>
</form>
<?php
$username=$_POST["Username"];
$password=$_POST["Password"];
if($username == NULL){print("Enter a Username please");}
else {
$users= array
(
"Bourne"=>"postcode",
"Unidan"=>"pincode",
"yoda"=>"sith"
);
foreach($users as $user=>$password_value)
{
if(($user==$username)&&($password_value==$password))
{
$_SESSION['login?']=1;
header("Location: calculation.php");
}}
$_SESSION['login?']=0;
header("Location: loginerror.php");
}
?>
</body>
</html>
【问题讨论】:
-
"Even my teacher cant help me"- 我强烈建议找一个更好的老师。 -
您的老师一无所知...您的 header() 调用将无法正常工作,因为您在到达 header() 代码之前已经输出了完整的 html 文档。
-
那些不会教的人。
-
@MarcB 除了是否打开了输出缓冲,这可能是因为他被重定向了。
-
感谢您解决了所有问题
标签: php