前提
PHPでログインページを作っています。
MySQLからデータを取得する処理を実装中に問題に遭遇しました。
実現したいこと
- ユーザーがフォームへメールアドレス、パスワードを入力する
- xhrでPHPに送信
- PHP側で受け取ったメールアドレスをWHERE条件としてMySQLより取得
- メールアドレスがデータベースに存在すればパスワードを照合、存在しない・パスワード不一致は同一のエラーを返す
発生している問題・エラーメッセージ
ステータスコード500が返され、PHPでのエラーメッセージ表示設定
PHP
1<?php 2ini_set("display_errors", 1); 3error_reporting(E_ALL);
を行っても表示されないため、トラブルシューティングが出来ず困っています。
新規登録処理用の別の.phpに含まれているINSERT文では正常に処理されます。
該当のソースコード
PHP
1function login_check(){ 2 $pdo = new PDO( 3 'mysql:host=localhost;dbname=database;', 4 'user', 5 'password' 6 ); 7 $mail = $_POST['mail']; 8 $password = $_POST['passwd']; 9 10 try { 11 $stmt = $pdo->prepare('SELECT * FROM account WHERE mail = :mail'); 12 $stmt->bindValue(':mail', $mail, PDO::PARAM_STR); 13 $response = $stmt->execute(); 14 if($response){ 15 $data = $stmt->fetch(); 16 $saved_passwd =$data['password']; 17 if(password_verify($password, $saved_passwd)){ 18 $return = 'match'; 19 }; 20 }else{ 21 $return = 'wrong'; 22 } 23 24 }catch(PDOException $e){ 25 echo $e->getMessage(); 26 $return = 'error' 27 } finally { 28 $pdo = null; 29 } 30 31 return $return; 32}
MySQLへの接続は関数内で行い、戻り値をswitchで分岐させクライアントへレスポンスする、といった構造にしています。
補足情報(FW/ツールのバージョンなど)
phpバージョン:7.0、サーバー:XREA

回答2件
あなたの回答
tips
プレビュー