すべてのフィールドが入力されていない場合にエラーがエコーされる条件を設定しようとしています。私が書いたコードは常に true を出力するようです。
私は何を間違っていますか?
if (empty($oldpassword)||empty($newpassword)||empty($repatnewpassword))
すべてのフィールドが入力されていない場合にエラーがエコーされる条件を設定しようとしています。私が書いたコードは常に true を出力するようです。
私は何を間違っていますか?
if (empty($oldpassword)||empty($newpassword)||empty($repatnewpassword))
それらの 1 つをチェックしています。つまり、フィールドの 1 つが空の場合、結果は になりtrue
ます。and に変更すると、すべてのフィールドが空のtrue
場合にのみ取得されます。
if ( empty($oldpassword) && empty($newpassword) && empty($repatnewpassword) )
すべてのフィールドが入力されていることを確認する必要があり、1 つのフィールドが入力されていないことを確認する必要がある場合は、もう少し長いコードを実行します。
# 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
}
$oldpassword が空で、$newpassword が空でない場合、コードは true を返します。¦¦ をすべて && に変更します。