お問い合わせ入力フォーム(2)

お問い合わせ入力フォーム(2)

  • サンクスページの作成
  • 入力データを消さないでページを戻る
サンクスページの作成
  • サンクスページが無いと問題がおきます
  • アンケートに答えてくれた人にメールを自動送信するとき、戻って入力し直した場合にもメールが送られ、2度送信されたことになります
  • データベースにも同様の理由で、余分な1件が記録されたことになります


《thanks.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>確認画面</title>
<link href="style.css" rel="stylesheet" media="screen, print">
</head>
<body>
<?php
 print 'お問い合わせ、ありがとうございました。'."\n";
?>
</body>
</html>
入力した人が「OK」のときメールを送信する
  • 「check.php」で直したければ「戻る」OKなら「送信」ボタンをクリックできるようにする
  • 送信ボタンが押されたら次のページへ(サンクスページ)移動
  • 移動したページ(サンクスページ)で、メール送信とデータベースの書き込みをおこなう
onClick="history.back()"
    print '<form>';
    print '<input type="button" onClick="history.back()" value="戻る">';
    print '</form>';

《check.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>確認画面</title>
<link href="style.css" rel="stylesheet" media="screen, print">
</head>
<body>
<?php
 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['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";

  print '<form action="thanks.php" method="post">'."\n";
  print '<input type="button" onClick="history.back()" value="戻る">'."\n";
  print '<input type="submit" value="送信">'."\n";
  print '</form>'."\n";
?>
</body>
</html>
  • HTML要素として出力する(例は、リストですが表組みにしてもOK)

《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; /* ボックスの幅を指定 */
	padding: 2px 0 2px 20px;
	border-left: 5px #C30 solid;
}
th {
	text-align: right;
}
入力されていない場合は「送信」ボタンを表示しない
  • 入力データのチェック
  • どれかひとつでも空っぽだったら、「戻る」ボタンだけを表示する


《check.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>確認画面</title>
<link href="style.css" rel="stylesheet" media="screen, print">
</head>
<body>
<?php
 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['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="button" onClick="history.back()" value="戻る">'."\n";
  print '<input type="submit" value="送信">'."\n";
  print '</form>'."\n";
}
?>
</body>
</html>