ログイン スクリプトでは、通常、パスワードはユーザーによって入力され、クリア テキスト変数に保存されます。入力したパスワードをデータベースに保存されている暗号化されたパスワードと照合するには、password_verify() を使用する必要があります。
if(password_verify($enteredPassword, $hashedPassword)) { // Password verification successful } else { // Password verification failed }
特定のケースでは、次のコードセグメントにpassword_verify()を組み込むことができます:
if(($row = $query->fetch()) && (password_verify($ctPassword,$row['password']))){ // Password verification successful $_SESSION['email'] = $row['email']; $_SESSION['first_name'] = $row['first_name'];
入力されたパスワードを忘れずにバインドしてください($ctPassword) をプリペアド ステートメントのパラメータに追加して、安全な実行を確保します。
PDO::FETCH_ASSOC を使用してユーザー データをより効率的に取得するには、次のようにします。次のようにコードを更新できます:
$results = $query->fetch(PDO::FETCH_ASSOC); if($results && password_verify($ctPassword, $results['password'])) { foreach($results as $key => $value) { $_SESSION[$key] = $value; } }
これにより、取得されたすべての値がセッションとして自動的に割り当てられます。変数を使用すると、[マイ アカウント] ページでユーザーの詳細に簡単にアクセスできるようになります。
以上がパスワード検証をログイン スクリプトのどこに配置する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。