为什么我的login.php不重定向我


Why wont my login.php redirect me?

我有一个登录,注册页面。注册页面工作正常,但我有一个问题,我的登录页面。当我成功登录时,它应该将我重定向到一个名为member.php的页面,但只是停留在同一页面上,没有去任何地方。以下是我的login.php页面的代码,我认为问题可能会发生:

<?php
if(isset($_POST["submit"])){
if(!empty($_POST['user']) && !empty($_POST['pass'])) {
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    $con=mysql_connect('127.0.0.1:8889','root','root') 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;
    header("Location: member.php");
    }
    } else {
    echo "Invalid username or password!";
    }
} else {
    echo "All fields are required!";
}
}
?>
<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>

我稍微修改了一下你的代码。你做了一些不必要的检查。首先根据登录信息获取mysql结果,然后再进行比较。你不需要那样做。

这段代码应该可以工作。如果没有,我很确定你是用错误的凭证登录的,或者你的数据库结构有问题。

<?php
if (isset($_POST['submit'])) {
    if (!empty($_POST['user']) && !empty($_POST['pass'])) {
        $con = mysql_connect('127.0.0.1:8889','root','root') or die(mysql_error());
        mysql_select_db('user_registration') or die('Could not select database');
        $login = 'SELECT * FROM login WHERE username = ''' . $user . ''' AND password = ''' . $pass . ''' LIMIT 1';
        $loginq = mysql_fetch_assoc(mysql_query($login));
        if (isset($loginq['username'])) {
            session_start();
            $_SESSION['sess_user'] = $loginq['username'];
            header('Location: member.php');
        }
        else {
            echo 'Invalid username or password!';
        }
    }
    else {
        echo 'All fields are required!';
    }
}
?>

尝试在HTML表单中添加您要发送的页面,如下所示:

<form action="login.php" method="post">

另外,查看PDO,因为它容易受到SQL注入的攻击。