如果提交的表单没有用户名或密码,则重定向到索引页面

时间:2013-08-26 09:15:50

标签: php mysql

此代码有什么问题?

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> 

当用户点击提交按钮而不填写用户名和密码时,页面应重定向到索引页。

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

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

答案 2 :(得分: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";
}

}

试试吧