0

这段代码有什么问题?

if(isset($_REQUEST["ok"])) {
    $id= mysql_real_escape_string($_REQUEST["usr"]);
    $pwd=mysql_real_escape_string($_REQUEST["pass"]);
    $row=mysql_query("select * from tbl_login where usr_id='$id' and password='$pwd'");
    $data=mysql_fetch_array($row);
    if($pwd==$data["password"]) {
        $usr=mysql_query("select * from tbl_usr where u_id='".$data['u_id']."'");
        $nm=mysql_fetch_array($usr);
        $_SESSION["usr"]=$nm["u_fname"];
        $_SESSION["id"]=$nm["u_id"];
        header("location:index.php");
    } else {
        $msg="Email Or Password not valid";
    }
}

HTML代码是

<form  method="post" enctype="multipart/form-data" >
Email-Id<input type="text" name="usr" />
<br/>
    Password<input type="password" name="pass"/>
    <input type="submit" value="Login" name="ok" />
</form> 

当用户在未填写用户名和密码的情况下单击提交按钮时,页面应重定向到索引页面。

4

3 回答 3

1

在这份声明中

if($pwd==$data["password"]) {
    $usr=mysql_query("select * from tbl_usr where u_id='".$data['u_id']."'");
    $nm=mysql_fetch_array($usr);
    $_SESSION["usr"]=$nm["u_fname"];
    $_SESSION["id"]=$nm["u_id"];
    header("location:index.php");
}

由于两者$pwd$data["password"]为空,它将进入 if 语句并将页面重定向到 index.php。

于 2013-08-26T09:24:28.273 回答
0
if(isset($_REQUEST["ok"])) {
$id= mysql_real_escape_string($_REQUEST["usr"]);
$pwd=mysql_real_escape_string($_REQUEST["pass"]);
$row=mysql_query("select * from tbl_login where usr_id='$id' and password='$pwd' limit 1"); // I hope you use UNIQUE or PRIMARY INDEX on usr_id 
if(mysql_num_rows($row)) {
    $data=mysql_fetch_assoc($row);
    $usr=mysql_query("select * from tbl_usr where u_id='".$data['u_id']."' LIMIT 1");
    $nm=mysql_fetch_assoc($usr);
    $_SESSION["usr"]=$nm["u_fname"];
    $_SESSION["id"]=$nm["u_id"];
    header("location:index.php");
} else {
    $msg="Email Or Password not valid";
}

}

试试看

于 2013-08-26T09:28:45.337 回答
0

您是否希望它重定向到索引页面或显示您在代码中指定的错误消息?如果您想显示错误消息,那么我想您应该回显错误消息。

于 2013-08-26T09:26:31.627 回答