支援訓練 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>