質問内容
check.phpにて、index.phpより受け取ったデータを確認し、データベースへ投稿しようとしています。
php
1<?php 2session_start(); 3 4if (!empty($_POST)) { 5 if ($_POST['name']=='') { 6 $error['name']='blank'; 7 } 8 if ($_POST['email']=='') { 9 $error['email']='blank'; 10 } 11 if ($_POST['password']=='') { 12 $error['password']='blank'; 13 } 14 15 if (empty($error)) { 16 $_SESSION['join']=$_POST; 17 header('Location: check.php'); 18 exit(); 19 } 20} 21 22if ($_REQUEST['action']=='rewrite') { 23 $_POST=$_SESSION['join']; 24 $error['rewrite'] = true; 25} 26?> 27 28<p>次のフォームを入力してください</p> 29<form action="index.php" method="post" enctype="multipart/form-data"> 30 <dl> 31 <dt>名前<span class="required">必須</span></dt> 32 <dd><input type="text" name="name" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['name'], ENT_QUOTES); ?>"/> 33 <?php if ($error['name']=='blank'): ?> 34 <p>名前を入力してください</p> 35 <?php endif; ?> 36 </dd> 37 38 <dt>メールアドレス<span class="required">必須</span></dt> 39 <dd><input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email'], ENT_QUOTES); ?>"> 40 <?php if ($error['email']=='blank'): ?> 41 <p>メールアドレスを入力してください</p> 42 <?php endif; ?> 43 </dd> 44 45 <dt>パスワード<span class="required">必須</span></dt> 46 <dd><input type="text" name="password" size="10" maxlength="20" value="<?php echo htmlspecialchars($_POST['password'], ENT_QUOTES); ?>"> 47 <?php if ($error['password']=='blank'): ?> 48 <p>パスワードを入力してください</p> 49 <?php endif; ?> 50 </dd> 51 </dl> 52 <input type="submit" value="入力内容を確認する"> 53</form>
↑index.php
php
1<?php 2session_start(); 3require('../dbconnect.php'); 4 5if (!isset($_SESSION['join'])) { 6 header('Location :index.php'); 7 exit(); 8} 9 10if (!empty($_POST)) { 11 $statement = $db->prepare('INSERT INTO members SET name=?, email=?, password=?, created=NOW()'); 12 echo $ret = $statement->execute(array( 13 $_SESSION['join']['name'], 14 $_SESSION['join']['email'], 15 $_SESSION['join']['password'] 16 )); 17 unset($_SESSION['join']); 18 19 header('Location: thanks.php'); 20 exit(); 21} 22?> 23 24<form action="" method="post"> 25 <input type="hidden" name="action" value="submit"/> 26 <dl> 27 <dt>名前</dt> 28 <dd> 29 <?php echo htmlspecialchars($_SESSION['join']['name'],ENT_QUOTES);?> 30 </dd> 31 <dt>メールアドレス</dt> 32 <dd> 33 <?php echo htmlspecialchars($_SESSION['join']['email'],ENT_QUOTES); ?> 34 </dd> 35 <dt>パスワード</dt> 36 <dd> 37 <?php echo htmlspecialchars($_SESSION['join']['password'],ENT_QUOTES); ?> 38 </dd> 39 </dl> 40 <div> 41 <a href="index.php?action=rewrite">書き直す</a>|<input type="submit" value="登録する"> 42 </div>
↑check.php
dbconnect.phpでデータベースへの接続を確認しました。
php
1<?php 2try { 3 $db =new PDO('mysql:dbname =mydb;host=localhost','root','root'); 4} catch (PDOException $e) { 5 echo 'DB接続エラー'.$e->getMessage(); 6} 7?>
check.phpの画面で登録ボタンを押しても、データベースへの接続エラーは出ませんでしたが、データ内容を登録できませんでした。
解決策があればご教示お願いいたします。
開発環境
使っているPC : Mac
開発言語 :PHP7
MAMP
もし何か質問に不備があれば、修正いたしますのでよろしくお願いします。