前提・実現したいこと
PHPで会員登録画面を作成しております。
Notice: Undefined variable及び Undefined indexのエラーを無くしたいです。
発生している問題・エラーメッセージ
- ログイン画面に番号とパスワードを入力します。ここで、登録されていない場合は新規登録画面へ行き、登録を行う。
- ログインが成功すると、ホーム画面へと遷移する。ここで、データベースを利用します。番号をデータベースに保存し、最終的にログインがされた情報を一覧として表示させます。
二つともエラーが出ます。
PHP
1Notice: Undefined variable: user in /Applications/XAMPP/xamppfiles/htdocs/timecard1/newreg.php on line 27 2 3Notice: Undefined index: user_no in /Applications/XAMPP/xamppfiles/htdocs/timecard1/newreg.php on line 27
該当のソースコード
PHP
1<?php 2 3if(!empty($_POST['user_no'])){ 4$pass = password_hash($_POST['password'], PASSWORD_DEFAULT); 5 6$db_user = "kintai"; 7$db_pass = "password"; 8$db_host = "localhost"; 9$db_name = "mydb"; 10 11$dsn = "mysql:host=$db_host; dbname=$db_name; charset=utf8"; 12 13try { 14 $dbh = new PDO($dsn, $db_user, $db_pass); 15} catch (PDOException $Exception) { 16 $msg = $Exception->getMessage(); 17} 18 19 20//フォームに入力されたuer_noがすでに登録されていないかチェック 21$sql = "SELECT * FROM users WHERE user_no = :user_no"; 22$stmt = $dbh->prepare($sql); 23$stmt->bindValue(':user_no', $user_no); 24$stmt->execute(); 25$user = $stmt->fetch(); 26}; 27if ($user['user_no'] === $_POST['user_no']) { 28 $msg = '同じ従業員番号が存在します。'; 29 $link = '<a href="signin.php">戻る</a>'; 30 31} else { 32 //登録されていなければinsert 33 $sql = "INSERT INTO users(user_no, pass) VALUES (:user_no, :pass)"; 34 $stmt = $dbh->prepare($sql); 35 $stmt->bindValue(':user_no', $user_no); 36 $stmt->bindValue(':pass', $password); 37 $stmt->execute(); 38 $msg = '会員登録が完了しました'; 39 $link = '<a href="login.php">ログインページへ</a>'; 40} 41?>
補足情報(FW/ツールのバージョンなど)
signin.phpは新規登録画面です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。