支援訓練 79日目
input.html
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>お問い合わせメールフォーム</title> </head> <body> <h1>お問い合わせメールフォーム</h1> <p>このフォームはphpの練習で作成したサンプルです。入力されたメールアドレス宛に自動返信される機能がついています。</p> <p>よろしければお試しください</p> <form action="check.php" method="post" id="inquiry"> <table> <tr> <th>お名前</th><td><input type="text" name="name" placeholder="例 山田太郎" required autofocus></td> </tr> <tr> <th>メールアドレス</th><td><input type="email" name="email" placeholder="例 xxx@exmanple.com" required></td> </tr> <tr> <th>お問い合わせの内容</th><td><textarea cols="30" rows="4" name="message" placeholder="例 コメント" required></textarea></td> </tr> </table> <input type="submit" value="確認画面へ"> </form> </body> </html>
check.php
<?php session_start(); ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>内容確認</title> </head> <body> <h1>お問い合わせ内容の確認</h1> <?php print '<ul>'; if (isset($_POST['name'])) { $_SESSION['name'] = htmlspecialchars($_POST['name'],ENT_QUOTES); print '<li>お名前は、「'. $_SESSION['name'] .'」ですね。</li>'; } else { print '<li>お名前が入力されていません。</li>' ; } if (isset($_POST['email'])) { $_SESSION['email'] = htmlspecialchars($_POST['email'],ENT_QUOTES); print '<li>メールアドレスは、「'. $_SESSION['email'] .'」ですね。</li>'; } else { print '<li>メールアドレスが入力されていません。</li>' ; } if (isset($_POST['message'])) { $_SESSION['message'] = htmlspecialchars($_POST['message'],ENT_QUOTES); print '<li>お問い合わせ内容は、「'. $_SESSION['message'] .'」ですね。</li>'; } else { print '<li>お問い合わせ内容が入力されていません。</li>' ; } print '</ul>'; print '<form action="thanks.php" method="post">'; if ($_POST['name']=="" || $_POST['email'] =="" || $_POST['message']=="") { print '<input type="button" value="戻る" onClick="history.back()">'; } else { print '<input type="submit" value="送信">'; } print '</form>'; ?> </body> </html>
thanks.php
<?php ob_start(); session_start(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>確認画面</title> </head> <body> <?php $dsn = 'mysql:dbname=LAA0404337-items;host=mysql007.phy.lolipop.lan'; $user = 'LAA0404337'; $password = 'abcdefg'; $dbh = new PDO($dsn, $user, $password); $dbh -> query('SET NAMES UTF8'); $name = $_SESSION['name']; $email = $_SESSION['email']; $message = $_SESSION['message']; print $name.'様<br>'."\n"; print 'お問い合わせ、ありがとうございました。<br>'."\n"; print 'お問い合わせ内容『'.$message.'』を<br>'."\n"; print $email.'にメールで送りましたのでご確認ください。'."\n"; $mail_sub = 'お問い合わせを受け付けました。'; $mail_body = $name."様、ご協力ありがとうございました。"; $mail_body = html_entity_decode($mail_body,ENT_QUOTES,"UTF-8"); $mail_head = 'From:xxx@gmail.com'; mb_language('Japanese'); mb_internal_encoding("UTF-8"); mb_send_mail($email,$mail_sub,$mail_body,$mail_head); $sql = 'INSERT INTO inquiry(name, email, message) VALUES("'.$name.'","'.$email.'","'.$message.'")'; $stmt = $dbh -> prepare($sql); $stmt -> execute(); $dbh = null; // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } ob_end_flush; // 最終的に、セッションを破壊する session_destroy(); ?> </body> </html>
list.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>登録データ一覧</title> </head> <body> <?php $dsn = 'mysql:dbname=LAA0404337-items;host=mysql007.phy.lolipop.lan'; $user = 'LAA0404337'; $password = 'abcdefg'; $dbh = new PDO($dsn, $user, $password); $dbh -> query('SET NAMES UTF8'); $sql = 'SELECT * FROM inquiry WHERE 1'; $stmt = $dbh -> prepare($sql); $stmt -> execute(); print '<table>'; print '<tr><th>code</th><th>名前</th><th>メールアドレス</th><th>問い合わせ内容</th></tr>'; while(1) { $rec = $stmt -> fetch(PDO::FETCH_ASSOC); if($rec == false) { break; } print '<tr>'; print '<td>'. $rec['id'] . '</td>'; print '<td>'. $rec['name'] . '</td>'; print '<td>'. $rec['email'] . '</td>'; print '<td>'. $rec['message'] . '</td>'; print '</tr>'; } $dbh = null; ?> </body> </html>