1. 現在位置:
  2. トップページ
  3. HP作成tips
  4. PHP-フォーム2
フォーム2
PHP4、mb_send_mail の使えるサーバーで。
PHPファイルを1つにまとめました。
ヘッダーとフッターを別ファイルで作成。
画面を移動しないでエラーを表示。
送信前に確認ページがあります。
HTML内のレイアウトや文面はご自由に

■ サンプル

サンプルのため、メールは送信されません。

「フォーム2」こちら

■ gaibuform.php

gaibuform.php で保存して下さい。
送信者名とメールアドレス2箇所はご自分のものを入れて下さい。
レイアウトはご自由に
<?php
require_once('./gaibu.txt');

$address = $HTTP_POST_VARS["address"];
$sex = $HTTP_POST_VARS["sex"];
$check1 = $HTTP_POST_VARS["check1"];
$check2 = $HTTP_POST_VARS["check2"];
$check3 = $HTTP_POST_VARS["check3"];
$age = $HTTP_POST_VARS["age"];
$name1 = $HTTP_POST_VARS["name1"];

// 申などの特殊な決まった文字の後ろに\マークが入らないようにする
$address = stripslashes($address);
$name1 = stripslashes($name1);

if (isset($_POST["kakunin"])) {
// エラーチェック
     $kakuninok = 0;     //エラーOK初期化
     $kakuninok_1 = 5;     //エラーチェックの数

     if (empty($HTTP_POST_VARS['address'])) {
          $message_address = "<font color='#ff0000'>メールアドレスを入力して下さい</font><br>";
     }elseif (!eregi("^[_a-z0-9\-]+(\.[_a-z0-9\-]+)*@[a-z0-9\-]+(\.[a-z0-9\-]+)*$", $address)) { 
          $message_address = "<font color='#ff0000'>メールアドレスを正確に入力して下さい</font><br>";
     }else{
          $kakuninok = ($kakuninok +1);
     }
     if (empty($HTTP_POST_VARS['sex'])) {
          $message_sex = "<font color='#ff0000'>性別を選択して下さい</font><br>";
     }else{
          if ($sex == "男"){
               $checked_1 = "checked";
          }else{
               $checked_1 = "";
          }
          if ($sex == "女"){
               $checked_2 = "checked";
          }else{
               $checked_2 = "";
          }
          $kakuninok = ($kakuninok +1);
     }
     if ((empty($HTTP_POST_VARS['check1'])) and (empty($HTTP_POST_VARS['check2'])) and (empty($HTTP_POST_VARS['check3']))) {
          $message_selected = "<font color='#ff0000'>好きな食べ物を選択して下さい</font><br>";
     }else{
          if (isset($HTTP_POST_VARS['check1'])) {
               $checked_a = "checked";
          }else{
               $checked_a = "";
          }
          if (isset($HTTP_POST_VARS['check2'])) {
               $checked_b = "checked";
          }else{
               $checked_b = "";
          }          
          if (isset($HTTP_POST_VARS['check3'])) {
               $checked_c = "checked";
          }else{
               $checked_c = "";
          }
          $kakuninok = ($kakuninok +1);
     }
     if (empty($HTTP_POST_VARS['age'])) {
          $message_age = "<font color='#ff0000'>年令を選択して下さい</font><br>";
     }else{
          if ($age == "10代"){
               $select_1 = "selected";
          }else{
               $select_1 = "";
          }
          if ($age == "20代"){
               $select_2 = "selected";
          }else{
               $select_2 = "";
          }
          if ($age == "30代"){
               $select_3 = "selected";
          }else{
               $select_3 = "";
          }
          if ($age == "40代"){
               $select_4 = "selected";
          }else{
               $select_4 = "";
          }
          if ($age == "50代"){
               $select_5 = "selected";
          }else{
               $select_5 = "";
          }
          if ($age == "60代"){
               $select_6 = "selected";
          }else{
               $select_6 = "";
          }
          if ($age == "70以上"){
               $select_7 = "selected";
          }else{
               $select_7 = "";
          }
          $kakuninok = ($kakuninok +1);
     }
     if (empty($HTTP_POST_VARS['name1'])) {
          $message_name = "<font color='#ff0000'>名前を入力して下さい</font><br>";
     }else{
          $kakuninok = ($kakuninok +1);
     }
     if ($kakuninok < $kakuninok_1) {     //エラーがあった場合

          html_Header();
          print("<body>");
          print("<form action='gaibuform.php' method='post'>");
          print $message_address;
          print("メールアドレス:<input type='text' name='address' size='50' value='$address' STYLE='ime-mode:disabled'><br>");
          print $message_sex;
          print("性別:<INPUT type='radio' name='sex' value='男' $checked_1>男<INPUT type='radio' name='sex' value='女' $checked_2>女<br>");
          print $message_selected;
          print("好きな食べ物:<input type='checkbox' name='check1' value='肉' $checked_a>肉");
          print("<input type='checkbox' name='check2' value='魚' $checked_b>魚");
          print("<input type='checkbox' name='check3' value='野菜' $checked_c>野菜<br>");
          print $message_age;
          print("年令:<select name='age'>");
          print("<option value=''>下記より選択</option>");
          print("<option value='10代' $select_1>10代</option>");
          print("<option value='20代' $select_2>20代</option>");
          print("<option value='30代' $select_3>30代</option>");
          print("<option value='40代' $select_4>40代</option>");
          print("<option value='50代' $select_5>50代</option>");
          print("<option value='60代' $select_6>60代</option>");
          print("<option value='70以上' $select_7>70以上</option>");
          print("</select><br>");
          print $message_name;
          print("名前:<input type='text' name='name1' value='$name1'><br>");
          print("<input type='submit' name='kakunin' value='確認'>");
          print("</form>");
          print("</body>");
          html_Footer();
          exit();
     }else{     //エラーがなかった場合
          html_Header();
          print("<body>");
          print("<form action='gaibuform.php' method='post'>");
          print("メールアドレス:$address<br>");
          print("<input type='hidden' name='address' value='$address'>");
          print("性別:$sex<br>");
          print("<input type='hidden' name='sex' value='$sex'>");
          print("好きな食べ物:");
          if (isset($HTTP_POST_VARS['check1'])) {
               print("$check1");
               print("<input type='hidden' name='check1' value='$check1'>");
          }
          if (isset($HTTP_POST_VARS['check2'])) {
               print("  $check2");
               print("<input type='hidden' name='check2' value='$check2'>");
          }
          if (isset($HTTP_POST_VARS['check3'])) {
               print("  $check3");
               print("<input type='hidden' name='check3' value='$check3'>");
          }
          print("<br>");
          print("年令:$age<br>");
          print("<input type='hidden' name='age' value='$age'>");
          print("名前:$name1<br>");
          print("<input type='hidden' name='name1' value='$name1'>");
          print("上記内容でよろしければ「送信」ボタンを押してください<br>");
          print("<input type='submit' name='sosin' value='送信'>");
          print("</form>");
          print("</body>");
          html_Footer();
          exit();
     }
}
if (isset($_POST["sosin"])) {

mb_language("Ja") ;
mb_internal_encoding("EUC-JP") ;

     $from ="From:" .mb_encode_mimeheader("送信者名") ."<メールアドレス>";
     $reply = "メールアドレス";
     // メール送信
     $to= "$reply";
     $from = "$from";
     $subject = "フォーム送信内容";
     $mail = "フォームよりメールが来ました\n\n";
     $mail .= "E-mail:$address\n\n";
     $mail .= "性別:$sex\n\n";
     $mail .= "好きな食べ物:";
          if (isset($HTTP_POST_VARS['check1'])) {
               $mail .= "$check1";
          }
          if (isset($HTTP_POST_VARS['check2'])) {
               $mail .= " $check2";
          }
          if (isset($HTTP_POST_VARS['check3'])) {
               $mail .= " $check3";
          }
     $mail .= "\n\n";
     $mail .= "年令:$age\n\n";
     $mail .= "名前:$name1\n\n";
     mb_send_mail($to,$subject,$mail,$from);

     html_Header();
     print("<body>");
     print("下記内容で送信しました<br>");
     print("メールアドレス:$address");
     print("<br>");
     print("性別:$sex");
     print("<br>");
     print("好きな食べ物:");
          if (isset($HTTP_POST_VARS['check1'])) {
               print("$check1");
          }
          if (isset($HTTP_POST_VARS['check2'])) {
               print("  $check2");
          }
          if (isset($HTTP_POST_VARS['check3'])) {
               print("  $check3");
          }
     print("<br>");
     print("年令:$age");
     print("<br>");
     print("名前:$name1");
     print("<br>");
     print("</body>");
     html_Footer();
     exit();
}

html_Header();
?>

<body>
<form action="gaibuform.php" method="post">
メールアドレス:<input type="text" name="address" size="50" value="" STYLE="ime-mode:disabled"><br>
性別:<INPUT type="radio" name="sex" value="男">男
     <INPUT type="radio" name="sex" value="女">女<br>
好きな食べ物:<input type="checkbox" name="check1" value="肉">肉
     <input type="checkbox" name="check2" value="魚">魚
     <input type="checkbox" name="check3" value="野菜">野菜<br>
年令:
<select name="age">
<option value="">下記より選択</option>
<option value="10代">10代</option>
<option value="20代">20代</option>
<option value="30代">30代</option>
<option value="40代">40代</option>
<option value="50代">50代</option>
<option value="60代">60代</option>
<option value="70以上">70以上</option>
</select><br>
名前:<input type="text" name="name1" value=""><br>
<input type="submit" name="kakunin" value="確認">
</form>
</body>

<?
html_Footer();
exit;
?>

■ gaibu.txt

gaibu.txt で保存して下さい。

echo <<< EOT
ここの内容を変更して下さい。
EOT;

<?
//******************************************************************************
//ヘッダー
//******************************************************************************
function html_Header(){

echo <<< EOT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja-JP">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=EUC-JP">
<title>フォーム</title>
</head>
EOT;
return 0;
}
//******************************************************************************
//フッター
//******************************************************************************
function html_Footer(){
echo <<< EOT
</html>
EOT;
return 0;
}
?>