お問い合せフォーム - テスト解答例



《index.html》

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>お問い合わせ入力フォーム</title>
<link href="style.css" rel="stylesheet" media="all">
</head>
<body>
<div id="confirmation">
<form action="check.php" method="post" id="inquiry">
<table summary="お問い合わせに関する入力項目名とその入力欄">
<tr>
<th><label for="name">お名前</label></th>
<td><input type="text" name="name" size="30" id="name"></td>
</tr>
<tr>
<th><label for="email">メールアドレス</label></th>
<td><input type="text" name="email" size="30" id="email"></td>
</tr>
<tr>
<th><label for="message">ご意見</label></th>
<td><textarea name="message" cols="30" rows="5" id="message"></textarea></td>
</tr>
</table>
<input type="submit" value="確認画面へ">
</form>
</div>
</body>
</html>


《style.css

@charset "UTF-8";

body {
  font-size: 1.0em;
  font-family: sans-serif;
  line-height: 1.5;
  color: #333333;
  background-color: #FFFFFF;
}
#inquiry {
  width: 600px; /* ボックスの幅を指定 */
  margin: 100px 0 0 100px;
}
#confirmation {
  width: 600px; /* 確認画面の幅を指定 */
  margin: 100px 0 0 100px;
  padding: 0.5em 1em;
  border-left: #C21300 6px solid;
}
#inquiry th {
  text-align: right;
}
#confirmation ul {
  list-style: none;
  margin: 0 0 2em 0;
  padding: 0;
}
#confirmation form {
  margin: 0;
  padding: 0;
}
  • 入力したデータを確認する画面を作成しなさい



《check.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>確認画面</title>
<link href="style.css" rel="stylesheet" media="all">
</head>
<body>
<div id="confirmation">
<?php
 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['message'];
	
 $name = htmlspecialchars($name);
 $email = htmlspecialchars($email);
 $message = htmlspecialchars($message);

  print '<ul>'. "\n";
  print '<li>';
    if($name=='') {
        print 'お名前が、入力されていません。';
    } else {
        print 'ようこそ、'.$name.'';
    }
  print '</li>'. "\n";
  print '<li>';
    if($email=='') {
        print 'メールアドレスが、入力されていません。';
    } else {
        print 'メールアドレス:'.$email;
    }
  print '</li>'. "\n";
  print '<li>';		
    if($message=='') {
        print 'お問い合わせの内容が、入力されていません。';
    } else {
        print 'お問い合わせの内容:'.$message;
    }
  print '</li>'. "\n";
  print '</ul>'. "\n";

if($name=='' || $email=='' || $message=='') {
  print '<form>'. "\n";
  print '<input type="button" onclick="history.back()" value="戻る">'. "\n";;
  print '</form>'. "\n";	
} else {
  print '<form action="thanks.php" method="post">'. "\n";
  print '<input type="hidden" name="name" value="'.$name.'">';
  print '<input type="hidden" name="email" value="'.$email.'">';
  print '<input type="hidden" name="message" value="'.$message.'">';
  print '<input type="button" onclick="history.back()" value="戻る">'. "\n";
  print '<input type="submit" value="送信">'. "\n";
  print '</form>'. "\n";
}
?>
</div>
</body>
</html>
  • 送信後に登録者に送信内容を確認する画面を作成しなさい


《thanks.php

  • 以下の例は、「SQLの接続と終了」の書き方は、テキストとは別の方法にしてあります
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>確認画面</title>
<link href="style.css" rel="stylesheet" media="all">
</head>
<body>
<div id="confirmation">
<?php
 $dsn = 'mysql:dbname=データベース名;host=ホスト名';
 $user = 'ログイン名';
 $password = 'パスワード';
 $dbh = new PDO($dsn, $user, $password);
 $dbh -> query('SET NAMES UTF-8');

 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['message'];

 $name = htmlspecialchars($name);
 $email = htmlspecialchars($email);
 $message = htmlspecialchars($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:メールアドレス';
 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;
?>
</div>
</body>
</html>
データベースからの取得
  • お問い合せ内容一覧画面を作成しなさい
  • お問い合せ内容検索画面を作成しなさい
  • 「一覧」と「検索」を含む管理画面を作りなさい