我正在设置一个条件,如果没有填写所有字段,则会回显错误。我写的代码似乎总是输出为真。
我做错了什么?
if (empty($oldpassword)||empty($newpassword)||empty($repatnewpassword))
答案 0 :(得分:2)
您正在检查其中一个,这意味着,如果其中一个字段为空,则会生成true
。将其更改为和,只有当所有字段为空时才会获得true
:
if ( empty($oldpassword) && empty($newpassword) && empty($repatnewpassword) )
如果您需要确保所有字段都已填写,并且您需要知道未填写的字段,请执行更长的代码:
# check first if old password is filled
if ( $oldpassword ) {
# now, if that works, check if new passwords are filled ( and match too )
if ( $newpassword && ( $newpassword == $repatnewpassword) ) {
// do whatever password checks here, now you know that oldpassword is
// filled and newpassord is filled and matches repatnewpassword
} else {
// new password is not filled or passwords don't match
}
} else {
// old password is not filled out
}
答案 1 :(得分:0)
如果$ oldpassword为空,而您的$ autpassword不为空,则代码将返回true。将所有||更改为&&。