#14 ログインチェック

 
ユーザーの存在チェック
 
function getUser($email, $password, $dbh) {
    $sql = "select * from users where email = :email and pasword = :password limit 1";
    $stmt = $dbh->prepare($sql);
    $stmt->execute(array(":email"=>$email, ":password"=>getSha1Password($password)));
    $user =$stmt->fetch();
    return $user ? $user : false;
}
 
  • パスワード保存時に「getSha1Password」で暗号化しているため、execute時も暗号化する。
  • メールアドレス / パスワードが存在しないか、組み合わせが違う場合は「false」を返す。
 
return後の処理
 
$me = getUser($email, $password, $dbh);
if (!$me) {
    $err['password'] = 'パスワードかメールアドレスが正しくありません';
}
  [ getUser 〜 if ] を1行にまとめて書く↓
 
if (!$me = getUser($email, $password, $dbh)) {
    $err['password'] = 'パスワードかメールアドレスが正しくありません';
}
 
 
getUser()関数の返り値について
getUser( ) 関数の返り値に三項演算子を使っているが、データが存在しない場合の $stmt->fetch() の結果は false になるため、「return $user;」とするだけでも問題ない。


PAGE TOP

< 前へ  目次に戻る  次へ >