0

我正在尝试设置一个条件,如果未填写所有字段,则会回显错误。我写的代码似乎总是输出真。

我究竟做错了什么?

if (empty($oldpassword)||empty($newpassword)||empty($repatnewpassword))
4

2 回答 2

2

您正在检查其中之一,这意味着,如果其中一个字段为空,则结果为true。将其更改为and,因此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
}
于 2012-07-19T11:41:47.910 回答
0

如果 $oldpassword 为空而 $newpassword 不为空,您的代码将返回 true。将所有 ¦¦ 更改为 &&。

于 2012-07-19T11:45:21.403 回答