フリーフォーム FreeForm

*
主要な機能
*
*
*
■ フリーフォームには以下の機能があります。
  • ホームページ訪問者が記入した内容を、管理者などにメールできます。
  • HTMLで自由なフォームを作って、メールで送信することが可能です。
  • フォーム記入者にも、確認メールを自動返送することができます。
  • 強力なセキュリティ対策、スパムに対抗処置が施されています。

    ※ クイックサーバーのCGIは、全てsendmailの-fオプションに対応しています。
■ そのたの機能
  • 主要な設定は、HTMLだけでも指定することができます。
  • 簡単なメールアドレス誤入力チェック機能があります。(メール返信時のみ有効)
  • 設定ファイルfreeform_org.cgiを使用すれば、さらに詳細な設定が可能です。
  • cgiがうまく動かない場合の自己診断機能を持っています。

*
*動作例
*
*
*
■ 以下に画面例を示します。

この画面はあくまでもサンプルです。

ファイル名、画面レイアウト、質問項目などは、HTMLで自由に設計することができます

ご注意)現バージョンでは、送信前の入力情報のチェック、および送信内容の画面での再確認はできません。


*
ダウンロードおよび設置法
*
*
*
■ ダウンロード

■ ファイル配置とパーミッション

  • 転送先フォルダに、以下のように配置し、下の図の数値のように、パーミッションを設定してください。
     例: (755)  ・・・ パーミッションを 755 に設定してください。
  • セキュリティ上、このディレクトリ内には、ダミーのindex.htmlを作成しておくことをお勧めします。
    (作成しないと、内部のファイルが丸見えになります。)
  • 今までのバージョンでは、cgi-lib.plが必要でしたが、Ver1.20からは不要になりました。
□ あなたのページ
├□ cgi ( dir )
│├-- freeform.cgi (755)    ・・・ 実行ファイル
│├-- freeform_org.cgi ( 644 ) ・・・ 設定ファイル
│├-- jcode.pl ( 644 )
│├-- mimew.pl ( 644 )
│├--input.html  ・・・  ※ サンプルHTMLです。
*
使用方法
*
*
*
      
  • HTMLフォームの作成と設定

    以下の作業でHTMLファイルを作成し設定を行ってください。手順は次の2段階になります。
    あとは、HTMLから送信ボタンをすことでメールが送信されます。

     
    1.基本フォームの作成

    htmlでFORMを自由に記述してください。
    パラメータ(変数)は name= で指定します。どのようなパラメータ名を使用してもかまいません。
    (パラメータに日本語も使用できますが、仕様が古いブラウザでは、日本語が化けることがあります。)


    HTMLの例
    <FORM method="POST" action="http://ご使用のドメイン/・・・/freeform.cgi?c=send"> ・・・※1
    <TABLE border="0"><TBODY>
    <TR>
      <TD bgcolor="#cccccc">件  名</TD>
      <TD><input size="50" name="件名"></TD>
    </TR><TR>
      <TD bgcolor="#cccccc">メ ー ル</TD>
      <TD><input size="20" name ="email" style="ime-mode: disabled;"></TD> ・・・ ※2
    </TR><TR>
      <TD bgcolor="#cccccc">お 名 前</TD><TD><input size="50" name="お名前"></TD></TR>
    <TR><TD bgcolor="#cccccc">会社名</TD>
    <TD><input size="50" name="会社"></TD>
    </TR><TR>
      <TD bgcolor="#cccccc">メッセージ</TD>
    <TD><TEXTAREA cols="50" rows="4" name="メッセージ"></TEXTAREA></TD>
    </TR>
    </TBODY>
    </TABLE>
    <!-- ここに 作業2 の内容を挿入します。 -->   ・・・ ※3
    入力が終わったら右のボタンを押してください。
    <input type="submit" value="送信">
    <input type="reset" value="取消">

    </FORM>
    作成例:こちらの画面です。

    ※1 ご使用のドメインと、cgiを設置したフォルダ名(ディレクトリ)を指定してください。この行でCGIが起動されます。
    ※2 訪問者(情報記入者)のメールアドレスは、必ず email を使用してください。
       cgiプログラムが、訪問者にメール返信するためのメールアドレスをこの email から取得するため必要です。
    ※3 nameの前などに全角スペースが混入すると、cgi側でデータを受け取れない場合があります。ご注意下さい。


    2.設定情報の作成(htmlファイルによる指定


    HTML文にHiddenパラm−タを追加することで、CGIプログラムfreeform.cgiの設定をおこないます。
    [1.基本フォームの作成]で作成したHTMLファイルの [※3] の位置に、次の各種設定を挿入してください
    設定は省略することはできますが、(必須)とかかれているものは省略できません。

    各種設定の作成例:
    <input type="hidden" name="form_subject" value="株式会社XXXメール送信フォーム">   ・・・ ※4
    <input type="hidden" name="form_mailto" value="メールアドレス(@より前の部分)">  ・・・※5
    <input type="hidden" name="form_start" value="http://データ入力画面アドレス">   ・・・ ※6
    <input type="hidden" name="form_next" value="http://戻り先アドレス">   ・・・ ※7
    <input type="hidden" name="form_autoreturn" value="0" >     ・・・・※8
    <input type="hidden" name="form_foot" value="疑問点あれば、http://www.ドメイン名 まで">   ・・・・ ※9
    <input type="hidden" name="form_order" value="件名,,お名前,会社,メッセージ,email"> ・・・ ※10

    ※4 form_subject には、フォームメールで送信されるメールに表示するタイトルを指定してください。
    ※5 form_mailto には、このフォームメールを着信するご自身のメールアドレスを指定します。(必須
        メールアドレスは、特に指定しない限り、cgi設置ドメインのものになります。
          上記のメールアドレス(@より前の部分)では、メールアドレスの、@より前の部分だけ、を記述します。 
         例: info と記載すれば、ご自身の連絡先として、info@sample.com を指定したことになります。
          ( ご利用ドメインが sample.com の場合 ) 
    ※6 form_startに は、このfreeformを呼び出すURLを指定してください。(必須
    ※7 form_nextに は、メールを送信後に表示するURLを指定してください。(必須
    ※8 form_autoreturn が"1"のとき、書き込み者にも自動返信します。(省略時は返信しません)
    ※9 form_foot は、閲覧者に自動返信するメールのみにつけるフッタです。
    ※10 form_order は、フォームで入力した順番とは変えて整列し、メールしたいときのみ指定します。

    これにてすべての作業が完了です、あとは必要な事項を入力し、送信ボタンを押すことで、メールが発信されます。
    DLすると、サンプルソース input.html がついてきます。ソースを見てください。

    ※ダウンロードして得られる追加解説には、より安全性を高めるため、より高機能に使うためのヒントがあります。
     こちらには、cigiでの直接のパラメータ指定、クイックサーバーSSLでの利用法、など高度な使用も記載されています。

  • 自己診断機能について

    うまく動かない場合の診断が可能です。次のようにしてしてください。

    http://ご使用のドメイン/・・・/freeform.cgi?c=diag

    cgiの動作状況、sendmailの動作状況、各ライブラリの設置の確認などを行います。

    ※ permission denied のエラーが出る場合は、freeform.cgiパーミッション設定が間違っています。
    ※ そのほかのエラーでは、サポートラウンジを検索し、同じエラーが出たときの原因をご確認ください。


*
そのたの情報
*
*


      
  • 入力が完了していないのに、エンターキーで送信されてしまう問題。

    インターネット・フォームの仕様上、「送信」あるいは「submit」ボタンをクリックしなくとも、Enterキーを押すだけで、途中で送信されてしまします。(TEXTAREA以外) cgi側では対処できません。そこで、違う方法で解決を試みます。

    Form入力時のEnterキーを無効にする


    対処方法として最も一般的なのが、JavaScriptを使用して、Enterキーの無効にする方法です。以下に例をしめします。


    <script type="text/javascript">
    <!--
    function funconkeydown() {
    var src = window.event.srcElement;
    if ( event.keyCode == 13)  {
        if ( src.type == '' ) {
           src.click();
           }
              else if  (src.type != 'submit' && src.type != 'button' && src.type != 'textarea' ) {
              return false;
           }
        }
    }
    -->
    </script>

    使用例:
    <form method="POST" action="http://ご使用のドメイン/・・・/freeform.cgi?c=send"
       onkeydown="javascript:return funconkeydown();">

    ※JavaScriptを無効に設定しているブラウザでは、効果がありません。携帯ではエラーになります。
    ※IE7.0での動作を確認しました。ブラウザによって、うまく動かない可能性があります。

    他にもいろいろありますが、一長一短があります。
    詳しくは、googoleなどで、検索してみてください。


    修正が必要なときは再入力を促す

    利用者が間違って送信してしまった場合、ブラウザの「戻る」ボタンを使用し、最初の入力画面に戻り、修正して再入力してもらうという手があります。
    送信完了の画面に、「送信内容は、ブラウザの戻るボタンで、修正が可能です」と記載するようにするといいでしょう。
    ただし、この場合は、複数のメールが到着しますので、あとで到着したほうを有効とするといった、注意が必要です。
*
*
**
主要な修正のリスト
 2005.11.25 初版作成
 2005.12.23 Ver1.0 セキュリティ対応版
 2006.01.18 Ver1.10 メール送信時のパラメータ順番指定
 2006.06.02  Ver1.20 スパム対策、二重送信防止策
 2007.05.15 ver1.30 スパム対策強化、自動整列機能追加
  2008.06.06  Ver1.31 Macメール文字化け対策 
/ 閉じる / レンタルサーバー、ドメイン取得ならクイックサーバー /