4

ユーザー$_SESSION変数が入力されているかどうか、およびログインが正しいかどうかを確認しています。これは私のコードです:

if(!empty($_SESSION['user'])&&!empty($_SESSION['pwd'])&&!verifyLogin($_SESSION['user'],$_SESSION['pwd'])){

$_SESSION['user']ユーザー名、$_SESSION['pwd']パスワード、verifyLogin()ユーザーのログインを検証するための機能です。

$_SESSION['user/pwd']空でも if ステートメントが true を返すのはなぜですか? 私はfalseを返すべきではありませんか?

私がこれをしても:

if(!empty($_SESSION['user'])&&!empty($_SESSION['pwd'])&&verifyLogin($_SESSION['user'],$_SESSION['pwd'])==false){

それでも同じ結果が得られます。

私は何を間違っていますか?

4

1 に答える 1

5

チェックをissetoverを使用するように変更しますemptyempty空の場合は true を返しますが、設定されていない場合も返します。違いについては、この投稿をご覧ください。

if (isset(_usr_) && !empty(_usr_) // exists and isn't empty
 && isset(_pwd_) && !empty(_pwd_)
 && verifyLogin(_usr_, _pwd_)){
}

のマニュアルからempty()

varが存在し、空でもゼロでもない値を持つ場合、FALSE を返します。それ以外の場合は TRUE を返します。

つまり、設定されていない場合は戻りTRUEます。

于 2012-12-28T22:06:07.157 に答える