前提
PHPとDBをつないでログイン機能を作りたいです。
ログイン機能は問題ないのですが、ログイン状態を記憶するために、ユーザーIDや名前をfetchで取り出して配列にいれたいのですが入りません。なぜでしょうか?
ソースコードの//ログイン処理の部分でfromから送られてきたメールアドレスとパスワードで条件検索し、それをfetchで$userに書き込もうとしています。
SQL文の部分はコマンドプロンプトでも確認し、望んだ行が出てきます。
userテーブルにはID、email、password、nameが登録されています。
実現したいこと
SQLを実行結果のIDを取り出しSESSIONに記憶させたい。
該当のソースコード
PHP
ソースコード
try { $db = new PDO('mysql:dbname=ag;host=127.0.0.1;charset=utf8','root',''); } catch (PDOException $e) { echo 'データベース接続エラー'; } session_start(); if (!empty($_POST)) { // ログイン処理 if ($_POST['email'] != '' && $_POST['password'] != '') { $login = $db->prepare('SELECT * FROM user WHERE email=? AND password=?'); $login->execute(array( $_POST['email'], $_POST['password'] )); $user = $login->fetch(); if ($user) { // ログイン成功でSESSIONに書き込む $_SESSION['id'] = $user['id']; $_SESSION['time'] = time(); header('Location: index.php'); exit(); } else { $error['login'] = 'failed'; } } else { $error['login'] = 'blank'; } }
回答3件
あなたの回答
tips
プレビュー