前提・実現したいこと
お問い合わせフォームを制作する初学者向けの本で学習中です。
お問い合わせフォームの骨組みを制作した後に、phpMyAdminでcontact_formというデータベースを作成しました。
その後、お問い合わせ完了画面のphpに、データベースに接続するためのコードを記述したのですが、ここで詰まりました。
環境はmacでMAMPを使用しております。
発生している問題・エラーメッセージ
順調に制作できておりましたが、お問い合わせ完了画面のPDO関係のコードを記述したら問題発生。 完了画面ページの1つ前の送信確認画面の「送信ボタン」をクリックすると、 「画面が切り替わらずタブ横のローディングがグルグル回転している状態から動かない」問題が発生しました。 この状態になると、MAMPをSTOP Serverしないと、ローディングが回転している状態が直りません。 (エラーコードは画面遷移しないため、表示されません。)
該当のソースコード
PHP
1//問い合わせ完了画面です。form3.phpとしています。 2<?php 3session_start(); 4 5if(isset( $_POST['token'], $_SESSION['token']) && ( $_POST['token'] === $_SESSION['token'] )){ 6 unset($_SESSION['token']); 7 8 $dsn = 'mysql:dbname=contact_form;host=localhost:8888;charset=utf8'; 9 $user = 'root'; 10 $password = ''; 11 12 $dbh = new PDO($dsn,$user,$password); 13 var_dump($dbh); 14 $dbh = null; 15 16}else{ 17 header('Loccation:http://localhost:8888/php/form1.php'); 18 exit(); 19} 20 21?> 22 23<!doctype html> 24<html> 25 <head> 26 <meta charset="utf8"> 27 <title>完了画面-お問い合わせ</title> 28 </head> 29<body> 30<p>お問い合わせありがとうございます</p> 31</body> 32</html>
php
1//入力確認画面です。form2.phpとしています。 2<?php 3session_start(); 4if(isset($_SESSION['name'])){ 5 $name = $_SESSION['name']; 6 $email =$_SESSION['email']; 7 $subject =$_SESSION['subject']; 8 $body =$_SESSION['body']; 9} 10 11$_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(48)); 12$token = htmlspecialchars($_SESSION['token'],ENT_QUOTES); 13 14?> 15 16<!doctype html> 17<html> 18 <head> 19 <meta charset="utf8"> 20 <title>確認画面-お問い合わせ</title> 21 </head> 22 23 <body> 24 <form action="form3.php" method="post"> 25 <input type="hidden" name="token" value="<?php echo $token ?>"> 26 <table> 27 <tr> 28 <th>お名前</th> 29 <td> 30 <?php echo $name; ?> 31 </td> 32 </tr> 33 <tr> 34 <th>メールアドレス</th> 35 <td> 36 <?php echo $email; ?> 37 </td> 38 </tr> 39 <tr> 40 <th>お問い合わせの種類</th> 41 <td> 42 <?php echo $subject; ?> 43 </td> 44 </tr> 45 <tr> 46 <th>お問い合わせ内容</th> 47 <td> 48 <?php echo nl2br($body); ?> 49 </td> 50 </tr> 51 <tr> 52 <td> 53 <input type="submit" name="submit" value="送信する"> 54 </td> 55 </tr> 56 </table> 57 </form> 58 <p><a href="form1.php?action=edit">入力画面に戻る</a></p> 59 </body> 60 61</html> 62
エラーメッセージがなく、手がかりがない状態に加え、MySQLという未学習の要素も絡んでるので、現状どうしたらいいか分からずお手上げ状態です。
こうなった時にまずチェックすること。などもご教示頂けましたら嬉しいです。よろしくお願いいたします。