次のスクリプトがあります。
function canLogin($mail, $password) {
if( isset($mail, $password) ) {
$login = dbFind('users', array("mail" => (string)"$mail", "pass" => (string)"$password"), true);
var_dump($login);
if($login)
{ return (string)$login['_id']; }
else { return false; }
} else { return false; }
}
関数 dbFind は次のとおりです。
function dbFind($collIn, $obj, $one = false) {
global $db;
$collection = $db->$collIn;
if($one == true)
return $collection->findOne($obj);
else return $collection->find($obj);
}
コードの最初のスニペットからわかるように、var_dump を使用して $login 変数の内容を確認し、その後、変数が設定されているかどうかを確認しています。
正しいログインがある場合、var_dump はデータベースから正しいオブジェクトを返します。それ以外の場合は NULL を返します。問題は、var_dump の直後の if ステートメントで常に false が返されることです。
私は何が欠けていますか?前もって感謝します。