問合せフォ-ム

問合せフォ-ムファイル

郵便番号住所検索付き問合せフォ-ムを作成します。
郵便番号住所検索 PEAR::XML_RPC2 と 入力フォ-ム作成 Pear::HTML_QuickForm の機能を使って、お問合せ入力フォ-ムファイルを作成します。
これを作成するには、まず、 63Pear Village のトップの左サイドナビ
「郵便番号住所検索付き Pear フォ-ム」 の中の
Pear ZIP フォ-ム概要
Pear ZIP フォ-ム作成
を理解する必要があります。
まだ、読んでいない方は一読されることをお薦めします。

問合せフォ-ムファイル作成

それでは、問合せフォ-ム画像認証用ファイル quest_form.php を作成していきます。
元となるファイル formzip.php は、
63Pear Village のトップの左サイドナビ
「郵便番号住所検索付き Pear フォ-ム」 の中の
Pear ZIP フォ-ム PHPファイル
を見てください。
作成するファイルは
問合せフォ-ム PHP ファイル
を見てください。
元ファイルとの差分は赤字で表示しています。

元ファイルと新規作成ファイルとの差分

元となるファイル formzip.php と新規作成ファイル quest_form.php との差分は次の通りです。

  1. HTML5 書式宣言

    width:600px の DIV の中に問合せフォ-ムを表示したいので、まずは、HTML5 書式宣言をします。

      <!doctype html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>お問合せフォ-ム表示</title>
      <link async href="css/quest.css"
       rel="stylesheet" type="text/css">
      </head>
      <body>
      <div class="main600">
      <h1>お問合せフォ-ム表示</h1>
      <br>

    ファイルの最後でDIVを閉じる </div> も忘れないでください。

  2. 画像認証判定部を追加

    このファイルに直接アクセスされた時、または、認証が成立していない時、 画像認証ファイル quest_st.php に飛ばし、再認証を要求します。

      if(empty($_SESSION['phrase'])){
        //直接アクセスした時
        header("Location: quest_st.php");
        }
      if(isset($_POST['check'])){
        $_SESSION['check'] = 
          $_POST['check'];
        }
      if($_SESSION['phrase']
       != $_SESSION['check']){
        //画像認証不成立の時
        header
        ("Location: quest_st.php");
        }

    $_SESSION['phrase'] には正解が入っていて、 $_POST['check'] には回答が入っているのでしたね。

  3. header/title 変更

    header/title を'会員登録準備'から'お問合せ準備'に変更します。

      $form->addElement
       ('header',
        'title',
        'お問合せ準備');
  4. コメント→問合せ 拡張

    コメント(40文字)を、問合せ(600文字)に拡張します。
    半角で1200文字分の枠を確保、ここに全角600文字が入れられるように、 utf-8は全角3バイト必要なので 600×3=1800バイトを maxlength に指定 します。
    検証ルールの定義は addRule メソッドを使用、 name,エラメッセージ,検証タイプ の順に記入します。
    'rows'=> 16 とすると16列分の表示エリアが確保されます。
    'cols'=> 60 とすると全角-横30文字分の行が確保されると思っていたのですが、 ブラウザにもよるのですが横36文字分ぐらいが確保されるようです。
    ちなみに &nbsp; は半角の空白です。
    文字はテ-ブルの右寄せで表示されるので、右端に空白を置いて右に寄り過ぎないようにします。

      $form->addElement
       ('textarea',
        'come',
        '問合せ:<br>
         内容 &nbsp;<br>
         全角なら &nbsp;<br>
         600文字 &nbsp;<br>
         以内 &nbsp',
        array
        ('rows'=> 16,
         'cols'=> 60,
         'maxlength' => 1800,));
  5. 問合せ内容は必須項目に指定

    当然ながら、問合せ内容は必須項目に指定追加するしかありません。

      $form->addRule
       ('come',
        '問合せ内容は必須です',
        'required');
  6. submit 準備→確認

    submit の表示を、準備→確認 に変更します。

      $form->addElement
       ('submit', 'submit', '確認');
  7. validate 完了時の処理

    従来は、会員登録のための情報内容を表示して終わっていました。
    今回は、問合せ内容確認表示ファイル quest_check.php に飛ぶように変更します。
    そのためには、$_POST の中身を $_SESSION に入れてから飛ぶ必要があります。

      function jyunbi(){
       if(isset($_POST['submit'])){
         $_SESSION["addre"] =
          $_POST["addre"];
         $_SESSION["postnum"] =
          $_POST["postnum"];
         $_SESSION["uname"] =
          $_POST["uname"];
         $_SESSION["email"] =
          $_POST["email"];
         $_SESSION["come"] =
          $_POST["come"];
         header
         ("Location: quest_check.php");
         }

以上で、問合せフォ-ムファイルの作成 は完了です。
引き続き、問合せフォ-ム内容確認ファイルを作成します。


問合せフォ-ム入力内容確認 に続く
問合せフォ-ム画像認証ファイル に戻る

63 Pear Villageに戻る