PHP运算符不能正常使用我的脚本
我有一个登录脚本,可以检查用户是admin还是testuser。我写这篇文章是为了检查当我将我的站点设置为维护模式时,除了admin和testuser之外,它是否允许任何人登录。问题是,就目前而言,我只能有一个用户使其工作。所以要么是admin,要么是testuser。我两者都想要。我知道并阅读了PHP和/或语句,但这与我正在尝试的不起作用。这是非常基本的PHP运算符不能正常使用我的脚本,php,Php,我有一个登录脚本,可以检查用户是admin还是testuser。我写这篇文章是为了检查当我将我的站点设置为维护模式时,除了admin和testuser之外,它是否允许任何人登录。问题是,就目前而言,我只能有一个用户使其工作。所以要么是admin,要么是testuser。我两者都想要。我知道并阅读了PHP和/或语句,但这与我正在尝试的不起作用。这是非常基本的 if($user === false){ $_SESSION['message'] = '<br /><
if($user === false){
$_SESSION['message'] = '<br /><div class="text-center alert alert-danger" role="alert">Your username is incorrect. Please try again</div>';
} elseif ($username <> admin or $username != testuser){
header('Location: /maint.php');
exit;
}
if($user==false){
$\u会话['message']='
您的用户名不正确。请重试';
}elseif($username admin或$username!=testuser){
标题('Location:/maint.php');
出口
}
这很有效
if($user === false){
$_SESSION['message'] = '<br /><div class="text-center alert alert-danger" role="alert">Your username is incorrect. Please try again</div>';
} elseif ($username <> admin){
header('Location: /maint.php');
exit;
}
if($user==false){
$\u会话['message']='
您的用户名不正确。请重试';
}elseif($username admin){
标题('Location:/maint.php');
出口
}
我甚至尝试添加管道,而不是或,但这确实奏效
if($user === false){
$_SESSION['message'] = '<br /><div class="text-center alert alert-danger" role="alert">Your username is incorrect. Please try again</div>';
} elseif ($username <> admin || $username != davidm){
header('Location: /maint.php');
exit;
}
if($user==false){
$\u会话['message']='
您的用户名不正确。请重试';
}elseif($username admin | |$username!=davidm){
标题('Location:/maint.php');
出口
}
如果两者都在脚本中,则两者都会失败,并且am重定向到maint.php
有人看到我的错误了吗
我所尝试的:
if($user === false){
$_SESSION['message'] = '<br /><div class="text-center alert alert-danger" role="alert">Your username is incorrect. Please try again</div>';
} elseif ($username != 'admin' || $username != 'testuser'){
header('Location: /maint.php');
exit;
}
if($user === false){
$_SESSION['message'] = '<br /><div class="text-center alert alert-
danger" role="alert">Your username is incorrect. Please try again</div>';
} elseif ($username != 'admin' or $username != 'testuser'){
header('Location: /maint.php');
exit;
}
```
if($user==false){
$\u会话['message']='
您的用户名不正确。请重试';
}elseif($username!=“admin”|$username!=“testuser”){
标题('Location:/maint.php');
出口
}
如果($user==false){
$\u会话['message']='
您的用户名不正确。请重试';
}elseif($username!='admin'或$username!='testuser'){
标题('Location:/maint.php');
出口
}
```
这应该行得通:关于“amin”和“testuser”,您没有任何问题。
在带有AND或or的if语句中,我总是在每个部分周围使用额外的()。它有利于阅读,有助于避免犯错误
if($user === false){
$_SESSION['message'] = '<br /><div class="text-center alert alert-danger"
role="alert">Your username is incorrect. Please try again</div>';
} elseif ( ($username != "admin") or ($username != "testuser") ){
header('Location: /maint.php');
exit;
}
if($user==false){
$\u会话['message']='
您的用户名不正确。请重试';
}elseif($username!=“admin”)或($username!=“testuser”)){
标题('Location:/maint.php');
出口
}
这不是操作员的问题,错误在于逻辑
if ($username != 'admin' || $username != 'testuser')
header('Location: /maint.php');
表示如果用户名不是admin
,或者用户名不是testuser
,则重定向。这听起来不错,只是它总是重定向,因为如果用户名是admin
,那么它就不是testuser
,反之亦然。你实际上想要:
if ($username != 'admin' && $username != 'testuser')
将管理员和测试用户的单引号或双引号(如“admin”)条件必须写为
elseif($username!='admin'|$username!='testuser')
。已经测试过了。仍然将我重定向到main.phpAre您确定$username已填充吗?是的。我甚至100%的在主页上重复测试。现在我觉得自己像个白痴。我错过了。非常感谢。