此代码有什么问题?
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>
当用户点击提交按钮而不填写用户名和密码时,页面应重定向到索引页。
答案 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";
}
}
试试吧