POSTメソッドで送信したデータをうまく受け取ることができません。
signup.phpのフォームで受け取ったデータをsignup_process.phpで処理しています。
ちなみに、試しにPOSTをGETメソッドに変えてみたときはうまくいきました。
どこに問題がありそうでしょうか?
//<body>の一部を抜き出しています //signup.php <div class="registrationForm"> <h3>以下のフォームを埋めてください</h3> <form action="signup_process.php" method="POST"> <input type="email" name="email" placeholder="メールアドレス"><br> <?php if(!empty($emailError)) echo $emailError ."<br>" ?> <input type="text" name='userID' placeholder="ユーザID(任意の文字列)"><br> <?php if(!empty($userIDError)) echo $userIDError ."<br>" ?> <input type="password" name="password" placeholder="パスワード"><br> <input type="password" name="passwordCheck" placeholder="パスワードを再度入力してください(確認用)"> <br> <?php if(!empty($passwordError)) echo $passwordError ."<br>" ?> <input class="submit" type="submit" value="登録する"> <?php print_r($_SESSION['temp']) ?> </form> </div>
ひとまずPOSTで正しく値が受け取れているかどうか確認するため、$_POST['userID']をechoしています。
signup_process.php <?php session_start(); $_SESSION['error'] = []; //エラーメッセージを入れる配列 $_SESSION['login'] = false; $db = []; $db['dsn'] = 'mysql:dbname=intousers;host=localhost'; $db['user'] = 'kmtym1998'; $db['password'] = '6427'; //メアドが入力されてるか //ユーザIDが入力されているか if(empty($_POST['userID'])){ $_SESSION['error']['userID'] = 'ユーザIDを入力してください'; //header("Location: signup.php"); }else{ $_SESSION['error']['userID'] = ''; } echo $_POST['userID']; //ユーザIDが一意か try{ $pdo = new PDO($db['dsn'], $db['user'], $db['password'], [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]); $selectOrder = "SELECT * FROM iNTOAccount WHERE userid = :userID"; $stmt = $pdo->prepare($selectOrder); $stmt->bindParam('userID', $temp, PDO::PARAM_STR); $temp = $_POST['userID']; $stmt->execute(); $result = fetchAll(); }catch(PDOException $error){ $_SESSION['error']['other'] = "データベース接続エラー"; header("Location: index.php"); die(); } $_SESSION['temp'] = $result; $_SESSION['error'] = []; ?>
エラーメッセージは以下の通りです。
Notice: Undefined index: userID in C:\xampp\htdocs\php_test\iNTO\signup_process.php on line 22 Notice: Undefined index: userID in C:\xampp\htdocs\php_test\iNTO\signup_process.php on line 30 Fatal error: Uncaught Error: Call to undefined function fetchAll() in C:\xampp\htdocs\php_test\iNTO\signup_process.php:32 Stack trace: #0 {main} thrown in C:\xampp\htdocs\php_test\iNTO\signup_process.php on line 32
自分で考えてみて限界になったので質問させていただきました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/16 08:01
2019/09/17 00:38