質問内容
check.phpにて、index.phpより受け取ったデータを確認し、データベースへ投稿しようとしています。
php
<?php session_start(); if (!empty($_POST)) { if ($_POST['name']=='') { $error['name']='blank'; } if ($_POST['email']=='') { $error['email']='blank'; } if ($_POST['password']=='') { $error['password']='blank'; } if (empty($error)) { $_SESSION['join']=$_POST; header('Location: check.php'); exit(); } } if ($_REQUEST['action']=='rewrite') { $_POST=$_SESSION['join']; $error['rewrite'] = true; } ?> <p>次のフォームを入力してください</p> <form action="index.php" method="post" enctype="multipart/form-data"> <dl> <dt>名前<span class="required">必須</span></dt> <dd><input type="text" name="name" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['name'], ENT_QUOTES); ?>"/> <?php if ($error['name']=='blank'): ?> <p>名前を入力してください</p> <?php endif; ?> </dd> <dt>メールアドレス<span class="required">必須</span></dt> <dd><input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email'], ENT_QUOTES); ?>"> <?php if ($error['email']=='blank'): ?> <p>メールアドレスを入力してください</p> <?php endif; ?> </dd> <dt>パスワード<span class="required">必須</span></dt> <dd><input type="text" name="password" size="10" maxlength="20" value="<?php echo htmlspecialchars($_POST['password'], ENT_QUOTES); ?>"> <?php if ($error['password']=='blank'): ?> <p>パスワードを入力してください</p> <?php endif; ?> </dd> </dl> <input type="submit" value="入力内容を確認する"> </form>
↑index.php
php
<?php session_start(); require('../dbconnect.php'); if (!isset($_SESSION['join'])) { header('Location :index.php'); exit(); } if (!empty($_POST)) { $statement = $db->prepare('INSERT INTO members SET name=?, email=?, password=?, created=NOW()'); echo $ret = $statement->execute(array( $_SESSION['join']['name'], $_SESSION['join']['email'], $_SESSION['join']['password'] )); unset($_SESSION['join']); header('Location: thanks.php'); exit(); } ?> <form action="" method="post"> <input type="hidden" name="action" value="submit"/> <dl> <dt>名前</dt> <dd> <?php echo htmlspecialchars($_SESSION['join']['name'],ENT_QUOTES);?> </dd> <dt>メールアドレス</dt> <dd> <?php echo htmlspecialchars($_SESSION['join']['email'],ENT_QUOTES); ?> </dd> <dt>パスワード</dt> <dd> <?php echo htmlspecialchars($_SESSION['join']['password'],ENT_QUOTES); ?> </dd> </dl> <div> <a href="index.php?action=rewrite">書き直す</a>|<input type="submit" value="登録する"> </div>
↑check.php
dbconnect.phpでデータベースへの接続を確認しました。
php
<?php try { $db =new PDO('mysql:dbname =mydb;host=localhost','root','root'); } catch (PDOException $e) { echo 'DB接続エラー'.$e->getMessage(); } ?>
check.phpの画面で登録ボタンを押しても、データベースへの接続エラーは出ませんでしたが、データ内容を登録できませんでした。
解決策があればご教示お願いいたします。
データベースのテーブル名、画像も添付いたします
開発環境
使っているPC : Mac
開発言語 :PHP7
MAMP
もし何か質問に不備があれば、修正いたしますのでよろしくお願いします。
まだ回答がついていません
会員登録して回答してみよう