データベースへ格納
データベースへ格納
《input.php》
<?php $name = ""; $email =""; $message = ""; session_start(); if( isset($_SESSION[ "name" ]) ){ $name = $_SESSION[ "name" ]; } if( isset($_SESSION[ "email" ]) ){ $name = $_SESSION[ "email" ]; } if( isset($_SESSION[ "message" ]) ){ $name = $_SESSION[ "message" ]; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>お問い合わせフォーム入力画面</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="container"> <h1>お問い合わせ入力画面</h1> <p>※必須項目の確認をお願いします。</p> <form action="check.php" method="post"> <table class="input"> <tr> <th>名前</th><td><input type="text" name="name" class="field"></td> </tr> <tr> <th>メールアドレス</th><td><input type="text" name="email" class="field"></td> </tr> <tr> <th>内容</th><td><textarea name="message" rows="3" cols="31"></textarea></td> </tr> <tr> <td colspan="2" class="btn"><input type="submit" value="確認"></td> </tr> </table> </form> </div><!-- /.container --> </body> </html>
《check.php》
<?php // フォームデータが空の場合は処理終了 if (empty($_POST)) { print "処理終了"; exit; } // セッションの開始 session_start(); $name = htmlspecialchars( $_POST[ 'name' ], ENT_QUOTES ); $email = htmlspecialchars( $_POST[ 'email' ], ENT_QUOTES ); $message = htmlspecialchars( $_POST[ 'message' ], ENT_QUOTES ); $flg = true; $_SESSION[ 'name' ]= $name; $_SESSION[ 'email' ] = $email; $_SESSION[ 'message' ] = $message; ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHP+MySQL課題</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="container"> <h1>確認画面</h1> <p>内容を確認してください。</p> <form method="post" action="thanks.php"> <table border="1"> <tr> <th>お名前</th> <!-- 入力内容の確認表示 --> <td> <?php if($name=='') { print 'お名前が、入力されていません。'; } else { print $name; } ?> </td> </tr> <tr> <th>メールアドレス</th> <td> <?php if($email=='') { print 'メールアドレスが、入力されていません。'; } else { print $email; } ?> </td> </tr> <tr> <th>メッセージ</th> <!-- メッセージの改行 --> <td> <?php if($message=='') { print 'お問い合わせの内容が、入力されていません。'; } else { print nl2br($message); } ?> </td> </tr> <tr> <td colspan="2" class="button"> <?php if( $name == '' || $email == '' || $message == '' || $flg === false ) { print '<span>未入力の項目があります。「戻る」ボタンをクリックし入力してください。</span><br>'; print '<input type="button" onclick="history.back()" value="戻る">'; } else { print '<input type="submit" name="sub1" value="送信する">'; } ?> </td> </tr> </table> </form> </div> </body> </html>
《thanks.php》
<?php // セッションの開始 session_start(); $name = htmlspecialchars( $_POST[ 'name' ], ENT_QUOTES ); $email = htmlspecialchars( $_POST[ 'email' ], ENT_QUOTES ); $message = htmlspecialchars( $_POST[ 'message' ], ENT_QUOTES ); $flg = true; $name = $_SESSION[ 'name' ]; $email = $_SESSION[ 'email' ]; $message = $_SESSION[ 'message' ]; ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHP+MySQL課題(1)</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="container"> <h1>完了画面</h1> <?php $dsn = 'mysql:dbname=アカウント_db;host=localhost(MySQLサーバー名)'; $user = 'MySQLアカウント'; $password = 'MySQLパスワード'; $dbh = new PDO($dsn,$user,$password); //$dbh -> query('SET NAMES utf8'); // メール本文の組み立て mb_language("Ja"); mb_internal_encoding("UTF-8"); $subject = "お問い合せを受け付けました。"; $to = $email; $title = "【お客様の入力確認メール】"; $body = <<<EOM -------------------------------------------------- 【フォームへの入力内容】 お名前:{$name} メールアドレス:{$email} メッセージ:{$message} -------------------------------------------------- EOM; $body_client = <<<EOM -------------------------------------------------- 【お客様の入力内容】 お名前:{$name} メールアドレス:{$email} メッセージ:{$message} -------------------------------------------------- EOM; // メール送信の実行 $rc = mb_send_mail($to, $title, $body); $rc = mb_send_mail("xxxxx@gmail.com","お客様からのメール",$body_client); if (!$rc) { exit; } else { $_SESSION = NULL; } $sql = 'INSERT INTO inquiry(name,email,message) VALUES("'.$name.'","'.$email.'","'.$message.'")'; $stmt = $dbh -> prepare($sql); $stmt -> execute(); $dbh = null; ?> <!-- 処理結果を表示 --> <p>以下の内容を受けたまわりました。</p> <table border="1"> <tr> <td>お名前</td> <td width="300"><?php print $name; ?></td> </tr> <tr> <td>メールアドレス</td> <td width="300"><?php print $email; ?></td> </tr> <tr> <td>メッセージ</td> <td width="300"><?php print nl2br($message); ?></td> </tr> </table> <p><a href="input.php">トップページに戻る</a></p> </div> </body> </html>