PHP登录页面不重定向

时间:2014-06-23 00:30:42

标签: php

有谁能告诉我为什么我的login.php页面不会重定向到我的member.php页面?当我输入登录信息时,它连接到我的数据库,只是停留在同一个login.php页面上,我输入的用户名和密码消失了。它甚至从未尝试重定向到member.php。我确实已经在我的服务器上加载了member.php,我可以通过在浏览器中输入来获取它。我一直在寻找类似帖子的答案,但似乎没有任何帮助。这是login.php代码。如果你能提供帮助,请提前表示非常感谢!

<!doctype html>
<html>
<head>
<title>Login</title>
</head>
<body>
<p><a href="register.php">Register</a> | <a href="login.php">Login</a></p>
<h3>Login Form</h3>
<form action="" method="POST">
Username: <input type="text" name="user"><br />
Password: <input type="password" name="pass"><br /> 
<input type="submit" value="Login" name="submit" />
</form>
<?php
if(isset($_POST["submit"])){

if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user=$_POST['user'];
$pass=$_POST['pass'];

$con=mysql_connect("localhost","******","*****") or die(mysql_error());
mysql_select_db('user_registration') or die("cannot select DB");

$query=mysql_query("SELECT * FROM login WHERE username='".$user."' AND     password='".$pass."'");
$numrows=mysql_num_rows($query);
if($numrows!=0)
{
while($row=mysql_fetch_assoc($query))
{
$dbusername=$row['username'];
$dbpassword=$row['password'];
}

if($user == $dbusername && $pass == $dbpassword)
{
session_start();
$_SESSION['sess_user']=$user;

/* Redirect browser */
header("Location: member.php");

}
} else {
echo "Invalid username or password!";
}

} else {
echo "All fields are required!";
}
}
?>

</body>
</html>

2 个答案:

答案 0 :(得分:2)

在将任何内容放入文件之前,应始终触发header()。把你的

  if(isset($_POST["submit"])){
 }  

条件一直到顶部。

除此之外,您应该在action属性中放置一个url以确保表单已提交。我不确定它是否有空。

答案 1 :(得分:1)

尝试将重定向代码移至页面顶部。在php输出任何HTML或甚至空格之前。

如果您的输出缓冲区中已有正文内容,则更改标题时已太晚 - 这是您的重定向代码尝试执行的操作。

您是否有错误报告?