如何为更多IF状态显示消息?
我有一个注册登录和系统,巫婆帐户激活。 但是,当用户尝试登录并且他的帐户尚未激活时,它只会显示错误。
但我正在尝试显示一条消息,当没有任何内容填充并且有人想要登录时(我不希望在表单中使用,我想回显自定义消息)并且当用户键入错误密码或USERNAME,我也想回复自定义消息。
# 1st condition 1. If nothing is filled and user press login ( then show : please enter username and passw)
#2nd condition if username or password is wrong then show: ( wrong username or password )
#3rd condition if username is not activated go to /error/ <-- Already working
这是标准代码:
session_start();
include('configdb.php');
if(isset($_POST['submit']))
{
$username = trim($_POST['username']);
$password = trim($_POST['password']);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password' AND com_code IS NULL";
$result = mysqli_query($mysqli,$query)or die(mysqli_error());
$num_row = mysqli_num_rows($result);
$row=mysqli_fetch_array($result);
if( $num_row ==1 )
{
$_SESSION['user_name']=$row['username'];
$_SESSION['user_email']=$row['email'];
$_SESSION['user_password']=$row['password'];
header("Location: /user/");
exit;
}
else
{
header('Location: /error');
}
}
...所以这样做:如果用户被创建并且帐户未被激活,那么他会转到/ error /但是当帐户被激活时,他将转到/ user / ...
所以我想这样做:如果有人输入错误的用户名或密码,那么回复邮件:错误的用户名或密码
如果有人在现场填写任何内容,请回复该消息:请填写用户名和密码:
所以这就是我所尝试的,但我认为有些不对劲:https://eval.in/375816
但这仍然无法正常工作,如果输入错误的密码,我仍会转到/ error /。有人可以帮帮我吗? Thankss!
答案 0 :(得分:1)
如果第一个或第二个条件匹配,您的代码将不会停止执行。如果else
未返回true,则返回最终if( $num_row ==1 )
,仅当登录有效时才会返回。您不应该执行先前条件已匹配的脚本的其余部分。否则,它将以成功的登录重定向或使用header()
的错误重定向结束。
答案 1 :(得分:0)
if(empty($username) and empty($username)){
// condition 1 (if nothing is in both fields)
}
if(empty($username) or empty($username)){
// condition 1 (if nothing is in at least one of both fields)
}
[...]
if( $num_row ==1 )
{
[...]
} else {
// condition 2
}