GOiGOi Project (ゴイゴイ・プロジェクト) -> フォームメール・プロ index -> Tips(ヒント)
 

Tips(ヒント)

フォームメールプロを使いこなすためのちょっとしたヒントを集めています。

hidden項目の設定について

  • hidden項目名の入力値を確認画面で表示させたい(hidden項目のみに指定できます)
    hidden項目は指定がないと確認画面に表示されません、確認画面で表示し確認させたい場合に使用します。
    項目名のオプションに hidisp を指定します。例 <input type="hidden" name="参加費(hidisp)" value="1200">
  • hidden属性でデータ(value)を管理者に送りたい場合は name の最初の文字を _ 以外にします。
    <input type="hidden" name="文房具" value="pencil">
    実際に送信された後はファイルに保存されます、また、自動返信メールや管理者へのメールにも表示されます。
    但し、確認画面には表示されません。確認画面に表示させたい場合は hidisp オプションを使用します。
    <input type="hidden" name="文房具(hidisp)" value="pencil">
  • hidden 項目の項目名を # で始めると特別な意味になります。
    Tips hidden 項目の項目名を #_ で始めると実際に送信された後は無視されてファイルに保存されません、また、自動返信メールや管理者へのメールにも表示されません。java script の定数に使う場合などに有効です。
    例:<input type="hidden" name="#_java用定数" value="750">
    Tips hidden 項目の項目名を # で始めると実際に送信された後は管理者へのメールに表示されファイルに保存されますが確認画面、自動返信メールには表示されません。
    例:<input type="hidden" name="#ダミー" value="750">
  • Tips value="" に計算式を指定することにより他の入力項目の入力値を使って計算結果をセットさせることもできます。value値の中に {{計算式}} で指定します。(計算式は192バイトまで)
    他の入力項目の入力値は半角の%%と%%で name="" の指定名を囲んで指定します。(この時()で指定したオプションは省いて指定します、数量(ch) は %%数量%% で指定)
    他の入力項目の入力値が金額の場合は数字以外が含まれていても半角の数字の前に \ 、後に円が付いていれば計算可能です。また3桁ごとのカンマが付いていても可能です。
    %%項目名%=% は送信する項目名の値がブランクなら 0 値があれば 1 に置換されます。
    例 <input type="hidden" name="参加費(hidisp)" value="{{1500*(%%参加者1%=%+%%参加者2%=%+%%参加者3%=%)}}円">
    計算式には四則演算子 +-*/ と固定値、入力項目名などが使用できます。(例:{{%%数量%%*%%単価%%/10}}

  • hidden 値に case で指定した入力項目名の値と比較して結果をセット <input type=hidden name="項目名" value="" case="項目名,値1,セット値1,値2,セット値2,値3,セット値3">
    name="項目名" の hidden 値に case で指定した入力項目名の値と比較して結果をセットします。

    このオプションは hidden 項目のみに指定でき case で指定した入力項目名よりも後に配置します。
    【例】コース:<select name="コース(ch)"><option value="選択してください"><option value="1">1<option value="2">2<option value="3">3</select>
    <input type=hidden name="料金(hidisp)" value="" case="コース,1,1000円,2,2000円,3,3000円">
    上記の場合は例えばコースで 2 が選択された場合は料金の hidden 値(value=)に 2000円がセットされます。
    値1,セット値1 は半角のカンマで区切り指定します。
    この hidden 値 を確認画面に表示させる場合は hidisp オプションを指定してください。
    項目名の指定はオプション(ch)等は外して指定します。

  • 上記の計算式の指定で計算できない場合は formmail_pro.cgi の中にカスタマイズサブルーチンを記述し起動させます。起動させるには hidden のname属性とデータ(value)で指定します。(高度理解者用)
    オプション(exe)を name の最後に付加します。

    value にサブルーチン名と後、半角の,で区切った定数をセット( @Vset に格納されます)することができます。
    <input type="hidden" name="計算(exe)" value="keisan,10,20,30">
    サブルーチン内での処理では、$FORM{'項目名'}の値やサブルーチンを呼び出した時に引き渡した定数( @Vset )を参照することができます。結果は $FORM{'項目名'} に格納します。 サブルーチンを呼び出した項目、この例の場合は $FORM{'計算'} に結果を格納することはできません。(結果用の hidden 項目を指定しておいて下さい)

  • hidden の項目名 name="" の付け方による動作の違いのまとめ
    項目名確認画面データ保存管理者宛メール自動返信メール
    項目名×(オプション hidisp で○)
    #_項目名××××
    #項目名××
    #/項目名×××

バージョンアップの仕方について1(推奨)

  • バージョンアッププログラムは元に戻せるよう処理を行なっていますが万が一の為にバージョンアップをする前にはインストールしているディレクトリを丸ごとバックアップをとるなどして、元に戻せるように準備してから実行してください。
    また、バージョンアップは自己責任において実行してください。(バージョンアップを請け負うことも可能です)
  • 最新のバーションをダウンロードして解凍します。
  • 解凍してできるディレクトリ formmail の下にある updater.cgi の1行目の perl のパスを指定します。
    最初は #!/usr/bin/perl となっています。もしインストールするサーバーの perl のパスが同じであれば変更する必要はありません。
  • 現在稼働しているサーバー上のプログラムが存在するディレクトリに解凍してできるディレクトリ formmail をFTPでアップロードします。
  • updater.cgi のパーミッションを実行権限のあるパーミッションに変更します。
  • 以上の作業が終了した後に、ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
    例: https://www.yyy.co.jp/cgi-bin/formmail/formmail/updater.cgi
  • 実行の結果以下のテキストが表示されます。

    アップデートが完了しました
    旧ファイルは ./_2011_07_03 に移動しました
    また移動しないファイルはファイル名に本日日付 _2011_07_03 を付けて保存しました
    (例:/formmail_mes2011_07_03.pl)
    ※エラーメッセージやフォーマット、色合い設定をカスタマイズされている場合は新しい設定に変わっています
    新たに設定し直すか本日日付 _2011_07_03 を付けて保存したファイルを戻してお使用下さい

バージョンアップの仕方について2

  • バージョンアッププログラムは元に戻せるよう処理を行なっていますが万が一の為にバージョンアップをする前にはインストールしているディレクトリを丸ごとバックアップをとるなどして、元に戻せるように準備してから実行してください。
    また、バージョンアップは自己責任において実行してください。(バージョンアップを請け負うことも可能です)
  • 最新のバーションをダウンロードして解凍します。
    現在稼働しているサーバー上のプログラムが存在するディレクトリに setup.cgi のみを上書きでアップロードします。
  • setup.cgi のパーミッションを実行権限のあるパーミッションに変更します。
  • 以上の作業が終了した後に、ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
    例: https://www.yyy.co.jp/cgi-bin/formmail/setup.cgi
  • 実行の結果以下の画面が表示されます。



  • 最新のバーションをダウンロードして解凍したファイルをフォルダーを含めて全て現在稼働しているサーバー上のプログラムが存在するディレクトリに上書きでアップロードします。
  • 再度ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
    例: https://www.yyy.co.jp/cgi-bin/formmail/setup.cgi
  • 「アップデートが完了しました」が表示されれば終了です。



管理者メニューにスーパーバイザーのID、パスワードでログインする

  • 編集画面を呼び出します。
    formmail_edit.cgi に引数として ?id:super を付加して実行します。
    ブラウザのアドレス指定欄に以下のように入力して管理者画面を呼び出します。
     例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_edit.cgi?id:super
     (あなたがアップロードした場所と formmail_edit.cgi の名称を変更した場合は違う指定になります)

     スーパーバイザーのID、パスワードを入力してログインします。

  • 通常のマスター管理者、管理者の処理が実行できます。

パスワードチェックなしからチェック有りに移行する

  • 以下の様に、setup.cgi を実行してスーパーバイザーのID、パスワードを設定します。
     例:https://www.xxxx.co.jp/cgi-bin/formmail/setup.cgi?pass
  • マスター管理者メニューの「ID、パスワード編集」処理を設定したスーパーバイザーのパスワードでログインして実行し通常管理者、マスター管理者メニューのID、パスワードを新たに追加して下さい。
  • スーパーバイザーのパスワードでログインするには以下のようにオプションを指定し管理者メニューを呼び出します。
     例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_edit.cgi?id:super
     (あなたがアップロードした場所と formmail_edit.cgi の名称を変更した場合は違う指定になります)

    この様に setup.cgi は再インストールやスーパーバイザーのID、パスワードの再設定が行えますので、インストール終了後は setup.cgi のファイル名を変更しておくかパーミッションを実行権限がないものに変更しておいて下さい。
    そして、 setup.cgi の実行が必要になったときに元に戻して実行するようにして下さい。

スーパーバイザー、管理者パスワードを忘れてしまったら

  • 管理者パスワードを忘れてしまった時は、スーパーバイザーのパスワードでログインし管理者パスワードを編集します。
  • スーパーバイザーのパスワードでログインするには以下のようにオプションを指定し管理者メニューを呼び出します。
     例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_edit.cgi?id:super
     (あなたがアップロードした場所と formmail_edit.cgi の名称を変更した場合は違う指定になります)
     管理者画面が表示されたらパスワードの編集を実行し古い管理者のID、パスワードを削除し新たにID、パスワードを追加して下さい。

  • スーパーバイザーのパスワードも忘れてしまった時は以下の様に、setup.cgi を実行してスーパーバイザーのID、パスワードを再設定します。
     例:https://www.xxxx.co.jp/cgi-bin/formmail/setup.cgi?pass
    この様に setup.cgi は再インストールやスーパーバイザーのID、パスワードの再設定が行えますので、インストール終了後は setup.cgi のファイル名を変更しておくかパーミッションを実行権限がないものに変更しておいて下さい。
    そして、 setup.cgi の実行が必要になったときに元に戻して実行するようにして下さい。

フォーム表示プログラムを使用する

  • フォーム表示プログラム formmail_display.cgi はフォームを静的に表示するのではなく何らかの判断を伴い動的に表示したりクッキー、WhatsNewの値(データ)をセットしたい場合に使用します。
    また、送信フォームにヘッダー、フッター用などの外部HTMLファイルを読み込みたい場合に使用します。
    以下の使用例の id:ZZZ にはフォームのID(例の場合は ZZZ )を指定します。
    「初期設定」で指定したフォーム以外を表示させるには以下のようにフォームのHTMLファイルをサーバーのルートまたはドキュメントルートから指定します。form:/aaa/bbb/ccc/xxxxx.html
    例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+form:/home/aaa/bbb/ccc/xxxxx.html+key1:<!--custom1u-->+key2:<!--custom2u-->

  • フォーム表示プログラムは以下の場合に使用します。
    1、送信可能数、可能期間を初期設定で指定した場合でフォームを表示する前にチェックを行いたい。
      この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
      例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+chk

    2、クッキーに保存された項目を送信フォームに表示させる時にセットして表示させたい場合。
      この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
      例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ

    3、送信フォームの項目の value="" の値をフォーム表示プログラム formmail_display.cgi の引数 項目のname:XXX の XXX にセットして表示させます。
      項目の name:XXX は半角の + で続けて指定することができます。
      項目の name 指定には (オプション) も含めて指定します。
      この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
      例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+項目名1:XXX+項目名2:XXX
      項目名に日本語の2バイト文字が含まれる場合はURL変換する必要があります。
      送信フォームの記述例:<input type="hidden" name="項目名1" value="">

    4、送信フォームに埋め込んだ {!key番号!} の部分にフォーム表示プログラム formmail_display.cgi の引数 key番号:XXX の XXX をセットして表示します。
      key番号:XXX は半角の + で続けて指定することができます。
      この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
      例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+key番号:XXX
      XXXに日本語の2バイト文字が含まれる場合はURL変換する必要があります。
      送信フォームの記述例:<input type="hidden" name="aaa" value="{!key番号!}">
      フォームジェネレータでフォームを作成する場合は初期値に {!key番号!} を指定しておきます。

    5、送信フォームに埋め込んだ %checked% の部分にフォーム表示プログラム formmail_display.cgi の引数 checked:YYY の YYY をセットして表示します。
      この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
      例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+form:/aaa/bbb.html+checked:YYY
      YYYに日本語の2バイト文字が含まれる場合はURL変換する必要があります。
      送信フォームの記述例:<input type="hidden" name="選択項目" value="%checked%">
      フォームジェネレータでフォームを作成する場合は初期値に %checked% を指定しておきます。

    6、(3、4、5)の手法は CGI WhatsNew の詳細表示画面からフォームメールプロを呼び出す場合に利用します。
      また、1、2にも併用して指定することができます
      以下の例のように記述します。

      (3の例)
      WhatsNew の詳細テンプレート
      <a href="/cgi-bin/formmail/formmail_display.cgi?id:test+商品番号:<!--custom1u-->+商品名:<!--custom2u-->">フォームへ</a>
      フォームメールの送信フォーム
      <input type="hidden" name="商品番号" value="">
      <input type="hidden" name="商品名" value="">
      (4の例)
      WhatsNew の詳細テンプレート
      <a href="/cgi-bin/formmail/formmail_display.cgi?id:test+key1:<!--custom1u-->+key2:<!--custom2u-->">フォームへ</a>
      フォームメールの送信フォーム
      <input type="hidden" name="商品番号" value="{!key1!}">
      <input type="hidden" name="商品名" value="{!key2!}">
      (5の例)
      WhatsNew の詳細テンプレート
      <form method="post" action="cgi-bin/whatsnew/whats_display.cgi?id:test+filter:1:2!sel!">
      フォームメールの送信フォーム
      <input type="hidden" name="選択商品" value="%checked%">

    7、送信フォームにヘッダー、フッター用などの外部HTMLファイルを読み込みたい場合に使用します。
      表示例:https://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ
      フォームメールの送信フォーム
      以下のタグを読み込みたい位置に配置しておきます。   <!--temp_file,外部HTMLファイル名-->
      外部HTMLファイル名は送信フォームHTMLが存在するディレクトリと同じ場所にあるならパスの指定なしにファイル名だけを記述します。(例:<!--temp_file,form_header.html-->)
      送信フォームHTMLが存在するディレクトリと違う場所にある場合はドキュメントルートから指定します。(例:<!--temp_file,/form/form_header.html-->)
  • 送信フォームの年の選択に本年を基に年の範囲を動的に変えます。

      フォーム表示プログラムの引数に以下のように year: オプションを指定します。
      year:年の範囲:年のname
       年の範囲は半角の_で区切って指定、Yは本年を表し、続ける数字 Y1 は本年にプラス、Ym数字は本年からマイナス
       年の name は一部の指定でも可能です(複数指定したい場合)
      以下の例では年の範囲は本年から本年から5年先まで、select の name に「年月日の年」が含まれる select に設定
      <a href="/cgi-bin/formmail/formmail_display.cgi?id:test+year:Y_Y5:年月日の年">フォームへ</a>

      年の name が全角を含む場合は実際には URLエンコードして指定します、URLエンコードはスーパーバイザー管理者のメニューから実行することができます。
      <a href="/cgi-bin/formmail/formmail_display.cgi?id:test+year:Y_Y5:%94N%8c%8e%93%fa%82%cc%94N">フォームへ</a>

  • {!項目名!}
    送信フォームに配置された {!項目名!} には項目名で保存されたクッキーの値、WhatsNewの「初期設定」で設定したカスタム項目の項目名(表示テキスト)のデータ、引数で指定した項目名1:XXX+項目名2:XXX の値が挿入されます。

複数のフォームに分割して送信

  • 入力項目が多くて1回で送信するのが困難な場合などで複数のフォームに分割して送信することができます。

  • フォームジェネレータで作成する場合の設定について
    「入力タイプ」を選択するときにこれ以降の項目を次の頁で入力させたいところで「入力タイプ」に「フォーム分割」を選択します。
    分割は複数頁での分割が可能です。
    項目入力欄が足らなくなったら一度、保存して生成して終了し再度編集すると項目入力欄が追加されます。
    最初の頁の保存名が form.html なら次の頁からは form2.html、form3.html〜のファイル名で生成されます。
    どの送信フォームに使って送信するかは「初期設定」の一番上の送信フォームを指定するところで最初の送信フォーム、form.html を指定します。
    送信フォームを何回かに分けて送信する場合の設定について

    最初の送信フォーム (form.html)
    <form method="post" action="/cgi-bin/formmail/formmail_pro.cgi">
    <input type="hidden" name="_check" value="判定">
    2番目のフォームに続くことを指定します。(最後のフォームでは不要です、2から順番に付けていきます)
    最初の送信フォームは form.html(この記述のフォーム) 2番目の送信フォームは form2.html になります。
    標準のディレクトリ以外の場所のファイルを指定する場合はフルパスで指定します。
    <input type="hidden" name="_continue" value="2">
    <input type="hidden" name="_id" value="test">
    <input type="text" name="名前(ch//name)" size=20>

    <input type="submit" value="次の入力へ">

    2番目の送信フォーム (form2.html)
    <form method="post" action="/cgi-bin/formmail/formmail_pro.cgi">
    <input type="hidden" name="_check" value="判定">
    <input type="hidden" name="_id" value="test">
    1番目の送信フォームの入力項目は全て2番目のフォームの中に埋め込んでください。( hidden項目で構いません、hidden項目で埋め込んだ場合はオプションに HIDISP を付けておくと最終の確認画面では表示することができます)
    <input type="hidden" name="名前(HIDISP)" value="" size=20>

    2番目の送信フォームでの入力項目
    <input type="text" name="住所" size=20>

    <input type="submit" value="確認画面へ">

    Tips 項目名(オプション( ) を省いた名前)を「%%」で囲って記述すると前の頁で入力した値を表示させることができます。
    前の頁での入力値=%%名前%%

    分割送信を使う場合は「初期設定」の「入力に不備があった時のエラー表示画面」は必ず「フォーム形式」を選択してください。

登録者が自身でID、パスワードで登録データを変更、削除する

  • フォームメールプロはフォームで送られたデータを「初期設定」でサーバーに保存する設定にすると登録者がID、パスワードを入力することによって自身で登録データを変更、削除することができます。
  • この機能を使うには送信フォームの入力項目に、ID、パスワードをセットしておく必要があります。
    パスワードは暗号化して保存することもできます。その場合は変更画面のパスワード入力欄には何も表示されません。
  • 変更用のフォームのために「スーパーバイザー管理者」の「フォームを追加」で1つフォームを追加する必要があります。
    試用期間中はフォームは1つしか管理できませんので試用期間中はこの機能を試すことはできません。「お試し送信」で機能をご確認下さい。
    送信が終わった画面で変更用のログイン画面へのリンクがあります。

各処理をメニューからではなくCGIのURLで処理する

  • フォームメールプロは管理者メニューの一部の処理をメニューからではなくCGIのURLを指定して処理することができます。
  • ID、パスワード入力せずに実行させますのでCGIの引数でパスワードに変わるキーワードを指定して実行させます。
    キーワードは formmail_set.pl の185行目あたりの $COM='fcom'; で指定します。(この例ではキーワードは fcom になります)
  • 以下の処理が可能です。
    ●「件数」
    条件指定 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード11:1
    結果表示 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード11
    ●「集計」
    条件指定 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード12:1
    結果表示 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード12
    ●「ダウンロード」
    条件指定 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード13:1
    結果表示 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード13
    ●「検索」
    条件指定 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード14
    ●「削除」
    条件指定 https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード15
    ●「初期設定」
    https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード10
    ●「フォームを編集」
    # 新規作成 https://www.test.com/cgi-bin/formmail/formmail_admin?id:フォームID+キーワード16:設定ファイル名
    # 編集   https://www.test.com/cgi-bin/formmail/formmail_admin?id:フォームID+キーワード16::設定ファイル名
    ●「フォーマット編集」
    https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード17
    ●「管理者宛メール編集」
    https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード18
    ●「自動返信メール編集」
    https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード19
    ●「フォーム削除」
    https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?id:フォームID+キーワード21
    ●「ログイン管理テーブル編集」
    https://www.test.com/cgi-bin/formmail/formmail_admin.cgi?キーワード22

登録変更用フォームを設定します

  • 「スーパーバイザー管理者」の「フォームを追加」で変更用のフォームを1つ追加します。特に注意して設定する必要はなく何でもいいからフォームを追加します。
  • 「スーパーバイザー管理者」のメニュー画面で追加したフォームを「対象フォーム:」で選択します。
  • 「変更用フォームに設定」の選択欄で変更処理を行うフォームを選択します。
  • 「変更用フォームに設定」ボタンをクリックします。
  • 以下の画面が表示されます。



  • IDとなる項目を選択します。
    メールアドレスのようにIDの中でダブリのないユニークな値の項目に指定します。
  • 変更させない項目を指定します。
    登録者が変更処理を行う場合にこの項目は変更することができないようにします。
    この設定ができる項目はインプットタイプが text,select,checkbox,radio に設定できます。また年月日を3つのセレクトボックスで入力しオプション add で繋いで保存されるような項目には設定できません。
  • CGIの設定を行います。(特に変更の必要はありません、CGIに引数が必要な場合などに変更します)
  • 「実行」ボタンをクリックします。
  • この処理では変更用に使用する送信フォームを変更処理を行うフォームをコピーして新たに作成します。また同時にID、パスワードを入力するログインのHTMLファイルも作成します。
    変更処理に使うフォームのデザインを変えたい場合はコピーされた送信フォームに変更を加えてください。。
    作成されたファイルのパスやURLは作成後の画面に以下のように表示されます。
    変更、削除させる時はここで表示されているログインページのURLを表示しログインさせて変更、削除処理を行います。



    また、変更対象のフォームIDの「初期設定」の値も編集用のフォームIDの「初期設定」に同時にコピーされます。
    編集処理用の送信フォームはコピーして新たに作成された送信フォームや初期設定が使われます。元の登録用の送信フォームの入力項目に変更があった時は編集処理用の送信フォームも同様に変更する必要があります。

会員登録データを入力欄にセット(簡易会員)

  • Tips 会員登録された方が再度送信されようとした時に登録されたデータを呼び出し入力欄にセットすることができます。
    また会員の方がご自身で登録内容を変更したり削除したりすることができるようになります。

    この機能を使うには以下の処理を行う必要があります。
    以下で説明している擬似会員処理を行う時はファイル存在場所、保存する項目も指定は必要ありません。

    【1】
    送信フォームを作り直します【マスター管理者メニュー】の対象フォームに会員管理したいフォームIDを選択します。メニューの「フォーム編集」欄の「設定ファイルを編集」をチェックし「フォーム編集」ボタンをクリックします。
    対象フォームHTMLを選択して下さいで calen_form を選択し「実行」ボタンをクリックします。
    「入力タイプ」の「※メールアドレス(ID)」と「パスワード(会員確認)」の両方を必ず設定しておきます。
    携帯電話で携帯固定IDを自動取得させてID項目とさせたい場合は「※携帯ID(hidden,自動取得)」も設定しておきます。
    パスワード入力は英数半角で6-12桁の入力で入力チェックが行われます。
    入力項目を確認し「作成実行」ボタンをクリックし送信フォームを作り直します。
    送信フォームを作成すると「メールアドレス」と「パスワード」を入力して確認するためのHTMLタグが予約フォームの上部に作成されます。

    マスター管理者の「フォームを編集」処理を使わずに送信フォームを作成する時は以下のHTMLコードを改行せずに1行で<input type="hidden" name="_check" value="判定" />と<input type="hidden" name="_id" value="XXXX" />の間に挿入します。

    PC用
    <!-- --><table bgcolor="#888888" cellspacing="1" cellpadding="1" style="font-size:13px;color:#333333" align="center"><tr><td align="center" bgcolor="#E6E6E6">以前にご利用された方はメールアドレス、パスワードで入力項目を呼び出せます</td></tr><tr><td align="center" bgcolor="#FFFFFF"> ID:<input type="text" name="_kid" value="" size="16" style="ime-mode:inactive"> パスワード:<input type="password" name="_kpass" value="" size="16"> <input type="submit" name="_passsub" value="呼び出し"><!--id_pass--></td></tr></table>

    携帯電話用
    <!-- -->以前にご利用された方は入力項目を呼び出せます<!--& <br>ID<br> &--><input type="text" name="_kid" value="" size="10" istyle="3" mode="alphabet"><br>パスワード<br><input type="password" name="_kpass" value="" size="10"><br><input type="submit" name="_passsub" value="呼び出し"><!--id_pass--><hr>

    【2】
    【マスター管理者メニュー】の対象フォームに会員管理したいフォームIDを選択します。メニューの「初期設定」ボタンをクリックします。
    3. 「入力されたフォームのデータの処理を指定」でデータを保存する設定にしておきます。
    入力項目のどの項目を保存するかを40. で指定します。会員ファイルに保存する項目を半角のカンマで区切って指定します。
    ID項目は項目名の後に /、パスワード項目は項目名の後に * を、利用回数の項目名の後に + を付加して指定します。例:お名前,メールアドレス/,パスワード*,利用回数+,電話番号〜,携帯固定ID#〜
    尚、「※携帯ID(hidden,自動取得)」を設定している場合は携帯固定IDの項目名の後に # を付加して指定します。
    40. では会員ファイルを別に持つ場合のファイル存在場所も指定できますが指定がないと標準のファイルとして保存されます。(ルート又はドキュメントルートからの指定は /〜、絶対パス指定は _/〜で始めて指定します、例:/abc/def/xxx.cgi)
    「設定する」ボタンをクリックします。
    ここで設定を行うと管理者メニューで「対象フォーム」が会員登録用のフォームとして1つ、会員編集用のフォームとして1つの合計2つのフォームIDが追加されます。
    会員登録用のフォームはこのフォームを利用して会員登録をしてもらうことができます、また登録された会員データの閲覧、検索や編集はこのフォームIDを選択して行います。
    自動返信メール、管理者宛メール、送信後に表示するテキストなどの設定もこのフォームIDを選択して行います。
    会員編集用のフォームは会員の方が登録内容を変更したり削除するために使用します。
    自動返信メール、管理者宛メール、送信後に表示するテキストなどの設定もこのフォームIDを選択して行います。

    【3】
    「マスター管理者メニュー」で対象フォームを XXX【会員編集】(XXX_k)を選択、「フォームを編集」で「◎:編集」を選択し「フォームを編集」ボタンをクリック。
    次の画面の対象HTMLを選択して下さい:で index を選択し「実行」をクリックします。次の画面で変更があれば編集しますが特になければ「作成実行」ボタンをクリックします。

    【4】
    「マスター管理者メニュー」で対象フォームを XXX【会員編集】(XXX_e)を選択、「フォームを編集」で「◎:編集」を選択し「フォームを編集」ボタンをクリック。
    対象HTMLを選択して下さい:で index_edit を選択し「実行」をクリックします。次の画面で変更があれば編集しますが特になければ「作成実行」ボタンをクリックします。

    【5】
    編集用のフォームを作り直します。スーパーバイザー管理者メニューの対象フォームに編集用フォーム(最後に _e が付いているID XXX【会員編集】を選択します。メニューの「編集用フォーム設定」欄の選択した対象フォームのフォームを最後に _k が付いている XXXX【会員登録】をチェックし「変更用フォームに設定」をクリックします。
    次の画面でIDとパスワード項目になる入力項目を選択します。
    変更させたくない項目があれば選択します。
    CGIの設定とパスワードチェックの設定は変更があれば指定します。
    「実行」ボタンをクリックします。
    編集用フォーム、登録データ更新ログインページが作成されますのでそれぞれのURLを控えておいて下さい。
    ここで表示されているログインページのURLがお客さんが自身で登録内容を変更したり削除するときのURLとなります。

  • 会員データを参照して入力された時は管理者に送信されるメールに 【会員】入力したパスワード が付加して送信されます。
    また、自動返信メール、管理者宛メール文のテンプレートの条件式として評価する時に次の様な値が設定されますので場合によって返信メールの文言などを変えることができます。

    入力項目名セットされている値
    #登録#送信者(会員)がデータを登録されている時に 1 がセット
    #変更#送信者(会員)がデータを変更されている時に 1 がセット
    #削除#送信者(会員)がデータを削除されている時に 1 がセット
    #携帯電話#携帯電話からのアクセスされている時に 1 がセット
    #携帯メール#携帯電話のメールアドレスが入力されている時に 1 がセット
    #会員#会員が登録データをID、パスワードで呼出し送信されている時に 1 がセット
    1 の場合は会員の方であるとわかります。

送信時に前回入力データを入力欄にセット(擬似会員)

  • Tips 以前に送信された方が再度送信されようとした時に前回に入力されたデータを呼び出し入力欄にセットすることができます。
  • マスター管理者の「初期設定」画面で「入力されたフォームのデータの処理を指定」でデータを保存する設定にしておきます。
  • マスター管理者の「フォームを編集」処理で「入力タイプ」の「※メールアドレス(ID)」か「ID(携帯は自動取得)」と「パスワード(会員確認)」の両方を必ず設定しておきます。
    パスワード入力は英数半角で6-12桁の入力で入力チェックが行われます。
  • 送信フォームを作成すると「メールアドレス」と「パスワード」を入力して確認するためのHTMLタグが送信フォームの上部に作成されます。
    作成された送信フォームを表示させる場合は、フォーム表示プログラム formmail_display.cgi を使って表示させる必要があります。
  • 前回入力データをセットさせたくない項目には NOCP オプションを設定します。
    例:<input type="text" name="住所(ch//NOCP)" size="50" value="">
  • マスター管理者の「フォームを編集」処理を使わずに送信フォームを作成する時は以下のHTMLコードを改行せずに1行で<input type="hidden" name="_check" value="判定" />と<input type="hidden" name="_id" value="XXXX" />の間に挿入します。

    <!-- --><table bgcolor="#888888" cellspacing="1" cellpadding="1" style="font-size:13px;color:#666666" align="center"><tr><td align="center" bgcolor="#E6E6E6">以前にご利用された方はメールアドレス、パスワードで入力項目を呼び出せます</td></tr><tr><td align="center" bgcolor="#FFFFFF"> ID:<input type="text" name="_kid" value="" size="16" style="ime-mode:inactive"> パスワード:<input type="password" name="_kpass" value="" size="16"> <input type="submit" name="_passsub" value="呼び出し"><!--id_pass--><input type="hidden" name="_id_pos" value=""><input type="hidden" name="_pass_pos" value=""></tr></table>

    <input type="hidden" name="_id_pos" value="">と<input type="hidden" name="_pass_pos" value="">
    のvalue値には送信されたデータのメールアドレス(ID)、パスワードが1レコードの何番目に保存されているかを指定します。
    値がブランクなら自動で探してきます、しかしうまく探せないときは手動で値をセットしてください。
    値を調べるにはマスター管理者メニューの「検索&編集」処理を行いいずれかのレコードを「編集」処理します。



    項目名と内容を確認しメールアドレス(ID)、パスワードのNo.欄の数字をセットします。項目名と内容は場合によっては一致しませんので内容で確認するようにしてください。

    また以下の入力項目のHTMLコードを送信フォームの入力項目の中に含めておきます。

    <input type="text" name="メールアドレス(ch//mail//id_chk_x)" value="" size="30" style=";ime-mode:inactive" />
    (必要なら)<input type="text" name="メールアドレス(mailc)" value="" size="30" style=";ime-mode:inactive">
    <input type="password" name="パスワード(ch//pass//rg4-12)" value="" size="30">


  • 「メールアドレス」と「パスワード」を入力して「確認」ボタンをクリックすると以前に送信された方で「メールアドレス」と「パスワード」が一致したデータがあれば以前の入力項目がフォームにセットされます。
    送信入力フォームの「メールアドレス」と「パスワード」欄にも「メールアドレス」と「パスワード」がセットされますが「メールアドレス」を変更することはできません。
    「メールアドレス」と「パスワード」を入力せずに送信入力フォームのみを入力すれば通常の送信処理を行います。
  • この機能を利用すると簡易な会員処理ができます、「メールアドレス」と「パスワード」を入力してこられた方は会員だと認識させることができます。
    通常の会員管理と異なるのは保存された送信データは1人の会員データでIDは同じで複数の送信された数のデータが存在するということです。
    このためポイント管理などはできません。単に以前に送信されて「メールアドレス」と「パスワード」の登録があったかどうかだけの確認ができるだけの機能です。
  • 「以前にご利用された方はメールアドレス、パスワードで入力項目を呼び出せます」「呼び出す」の文言はマスター管理者の「フォーム編集」処理の中で変更することができます。

「同報@メール」への自動登録フォームとして使う

  • ホームページ上のフォームから「同報@メール」に、[自動ユーザー登録]のメールを送るためにフォームメールプロを使うことができます。
    「同報@メール」のホームページからサンプルCGIをダウンロードできますが入力チェックや自動返信メールの設定はプログラムをカスタマイズしなければ実現できません。
    フォームメールプロを使うと「同報@メール」に、[自動ユーザー登録]を簡単に実現することができます。
  • この機能を使うには「マスター管理者メニュー」の「管理者宛メール編集」処理を行います。 管理者宛メールのテンプレート編集へ
  • 「メール編集」欄に以下のようなタグを設定します。

    subject: JoinMail
    email:「同報@メール」が受信する管理者メールアドレスを指定
    <REGISTER>
    <EMAIL>%%メールアドレス%%</EMAIL>
    <EXTRA_A>%%パスワード%%</EXTRA_A>
    <NAME_SEI>%%お名前(姓)%%</NAME_SEI>
    <NAME_MEI>%%お名前(名)%%</NAME_MEI>
    <NAME_KANASEI>%%ふりがな(せい)%%</NAME_KANASEI>
    <NAME_KANAMEI>%%(めい)%%</NAME_KANAMEI>
    <EXTRA_B>%%性別%%</EXTRA_B>
    <ZIPCODE_1>%%郵便番号1%%</ZIPCODE_1>
    <ZIPCODE_2>%%郵便番号2%%</ZIPCODE_2>
    <PREFECTURE>%%都道府県%%</PREFCTURE>
    <ADDRESS_1>%%住所1%%</ADDRESS_1>
    <BUILDING>%%住所2%%</BUILDING>
    <PHONE_1>%%電話番号%%</PHONE_1>
    <PHONE_2>%%携帯電話番号%%</PHONE_2>
    <BIRTHDAY>%%生年月日%%</BIRTHDAY>
    <EXTRA_C>URL</EXTRA_C>
    <EXTRA_D>%%追記事項%_%</EXTRA_D>

    %%で囲まれた項目名がフォームメールプロで設定した項目名になります。その項目名を更に「同報@メール」のタグで囲みます。
    %%で囲まれた項目名は「メール編集」欄の差し込みたい位置にカーソルを於き右側の選択ボックスで項目名を選択し「←項目値置換キーワード挿入」のボタンをクリックすると目的の位置に挿入されます。
    尚、<textarea〜> の入力項目で改行を削除して登録したい項目には %%追記事項%_% のように後ろの %% を %_% に置き換えて挟んでください。
    「同報@メール」の項目名のタグは「同報@メール」のマニュアル等をご覧下さい。 「同報@メール」のホームページへ

現在稼働中のサーバーから別のサーバーに移行します

  • 現在のデータを活かすために旧サーバーのフォーム名(ID)以下のディレクトリをダウンロードして保存しておきます。
    (ディレクトリ /cgi-bin/formmail/form_data の下にフォーム名(ID)のディレクトリがあります。インストールしたディレクトリが違う場合は違う場所になります)
  • 最新のプログラムをダウンロードし新しいサーバーに旧サーバーへのインストールと同じやり方でインストールします。
  • 旧サーバーのスーパーバイザー管理者メニューの「制限解除キーの取り出し」処理で制限解除キーの取り出しを行なって下さい。
  • 取り出した制限解除キーを使って新しいサーバーのスーパーバイザー管理者メニューの「制限解除」処理を行なって下さい。
  • フォーム名(ID)を登録するときに旧のサーバーに登録した同じフォーム名(ID)で登録します。フォーム名(ID)だけフォーム追加を繰り返します。
  • 最初に旧サーバーからPCにダウンロードしてきたフォーム名(ID)以下のディレクトリから必要なファイルを新サーバーの同じ場所に上書きでアップロードします。
    (必要なファイルがわからない場合は全てのファイル、ディレクトリを新サーバーの同じ場所に上書きでアップロードしてください)
  • もし上書きでアップロードできないサーバーの場合はファイルを一度削除してからアップロードして下さい。
  • 送信フォームがディレクトリ /cgi-bin/formmail/form_data の下以外に存在するときは同じディレクトリにアップロードします。
    マスター管理者の「初期設定」で送信フォームの場所がうまく設定できているか確認します。
  • 旧サーバーと同じように動作するか確認してください。

設定プログラムファイルで実現できる機能&Tips

  • フォームメールプロが使用しているモジュール cgi-lib.pl ではデータの送信できる最大のバイト数は制限がかけられています。大きなサイズのデータを送信される場合は cgi-lib.pl の以下の数字を変更して下さい。(初期値は 1310720バイトまで)
    cgi-lib.pl の21行目 $cgi_lib'maxdata = 1310720; を希望するサイズに変更します。
    また、フォームメールプロの設定ファイルでも送信できる最大のバイト数は二重に制限がかけられています。大きなサイズのデータを送信される場合は formmail_set.pl の203行目 $MAXD_byte=10000; を変更して下さい。(初期値は 10000バイトまで)

  • 添付ファイルを含めたデータの送信できる最大のバイト数は制限がかけられています。大きなサイズのデータを送信される場合は formmail_set.pl の以下の数字を変更して下さい。(初期値は 1048576バイトまで)

    formmail_set.pl の142行目 $MAX_byte=1048576; を希望するサイズに変更します。
    また、添付ファイルを除いた入力項目の送信できる最大のバイト数にも制限がかけられています。大きなサイズのデータを送信される場合は formmail_set.pl の144行目 $MAXD_byte=10000; を変更して下さい。(初期値は 10000バイトまで)

  • ID、パスワードを毎回入力するのは手間だ!

    クッキーを利用してブラウザが立ち上がっている間は最初の1回だけのID、パスワード入力で続けて処理が可能になります。
    formmail_set.pl の93行目 $cook_sw=1; を変更します。(1=初期値、ID、パスワード入力省略可 0=不可)

  • パスワード項目で許される文字を指定することができます。

    formmail_set.pl の96行目 $PASSOK='0-9A-Za-z-_'; を変更します。(範囲で指定できる時は−で結合します)

  • 半角、全角スペース、改行のみの入力を入力があったと見なしたい場合は118行目を変更します。 $SPC=0;
  • メール配信で配信リストをパソコンのリストを指定できるようにする。formmail_set.pl の73行目を $Mlist_sw=1; に変更します。
    # formmail_pro.cgi 設定ファイル(Copyright Shigeru Uchida 2009/02/09)
    $ver='FormMail Pro Ver 6.09';
    
    #  ---管理者画面を呼び出すCGIファイル名(セキュリティ上からも必ず変更してください)
    $cgi1='formmail_edit.cgi';
    #  ---編集処理CGIファイル名
    $cgi='formmail_admin.cgi';
    
    # Webのどこからでも呼び出せるフォーム処理CGIファイル名
    $cgi2='formmail_pro.cgi';
    
    # メール送信エンジンの設定 sendmailのパス&ファイル名(プロバイダーまたは管理者に尋ねてください)
    $sendmail='/usr/sbin/sendmail -t -oi -f';
    
    #  パスワードファイルのファイル名 パスワード認証をしない場合は $p_name='';
    $p_name='.htpasswd';
    
    # 下記26行目、作業用ディレクトリを作成するディレクトリを指定して下さい
    # このスクリプトが存在するCGIディレクトリの直下に作成する場合は変更の必要はありません
    # CGIディレクトリの直下以外に作成する場合はCGIが動作するサーバーのルートから指定してください
    # 例:$dir_base='/htdocs/home/formmail/data/';  (最後の/は必ず付けてください)
    # サーバーがウインドウズ系の場合、ディレクトリの区切りが \ になる場合がありますのでご注意ください
    $dir_base='';
    
    # 作業用ディレクトリ名を指定します(特に変更の必要はありません)
    $sdir='form_data';
    
    # データファイルのファイル名(セキュリティ上からも必ず変更してください)
    $fd_name='formdata';
    
    # 環境を自動判定しセット
    # $docr_mk=2;(CGI以下のディレクトリにある画像、HTMLファイルがwebで参照できない)$docr_mk=1;(参照できる)
    # $from_doc=''; をドキュメントルートから26行目作業用ディレクトリまでのパスを指定します
    # 最後の/は必ず付けてください(例: $from_doc='/aaaa/bbbb/'; )
    $docr_mk=1;
    $from_doc='';
    
    # formmail_edit.cgi?envp を実行させると環境変数を表示させることができます。envp のオプションを以下で指定します
    # セキュリティ上から必ずあなた専用のオプションテキストを指定してください、不要の場合は $ENVP='';
    $ENVP='envp';
    
    # サーバーOS設定 自動認識しますが、できない場合は(Unix系) $OS=1; (Windows系)$OS=0;
    $OS= $ENV{'PATH'}=~/\\/ ? 0:1;
    
    # サーバーのドキュメント・ルート $ENV{'DOCUMENT_ROOT'} で取得できれば変更する必要はありません
    # 例:$EN_DOC='/htdocs/home';  (最後の/は付けないで下さい)
    $EN_DOC=$ENV{'DOCUMENT_ROOT'};
    
    # プログラムのファイル名も含めた絶対パス情報 $ENV{'SCRIPT_FILENAME'} で取得できれば変更する必要はありません
    # 例:$EN_SFN='/htdocs/home/cgi-bin/formmail/';  (最後の/は必ず付けてください)
    $EN_SFN=$ENV{'SCRIPT_FILENAME'};
    
    # cgiをフォームHTMLから呼び出すパス(ドキュメントルートから $ENV_SCR='/cgi-bin/formmail/';)
    # $ENV{'SCRIPT_NAME'} で取得できれば変更する必要はありません (最後の/は必ず付けてください)
    $EN_SCR= $ENV{'SCRIPT_NAME'}=~/(.*)(\\|\/)/ ? "$1$2":'';
    
    # CGIが動作するサーバーのURL https:// 以下を指定します(WebサーバーとCGIサーバーが同一の場合は不要)
    #(例:$host="www.xxx.co.jp";  $host="www.xxx.ne.jp/~mypage"; 最後の/は付けないでください
    # 環境変数$ENV{'HTTP_HOST'}で取得できる場合は変更する必要はありません
    $host=$ENV{'HTTP_HOST'};
    
    #  保存ファイルの拡張子
    $kaku='cgi';
    
    #------jcode.plのパス&ファイル名
    $jcpath='jcode.pl';
    #------cgi-lib.plのパス&ファイル名
    $clpath='cgi-lib_sp.pl';
    #------mimew.plのパス&ファイル名
    $mmpath='mimew.pl';
    
    #  メール配信処理でパソコンのデータを処理する $Mlist_sw=1;
    $Mlist_sw=0;
    
    #  このアドレス以外からの更新を認めない
    #  例 @REMOTE_ADDR=('210.xxx.xxx.xx1','210.xxx.xxx.xx2');
    #  $ENV{'REMOTE_ADDR'}がうまく取れない場合は@REMOTE_ADDR=();
    @REMOTE_ADDR=();
    #  クライアントPCにダウンロードする時のファイルの拡張子
    $kaku1='txt';
    #  フォントサイズ,色
    $STYLE=' style="font-size:13px;color:#666666"';
    
    #----- formmail_pro.cgi
    #  データ送信先アドレスに以下のキャラクターが含まれていない場合はエラー表示(初期設定ファイルが書き換えられた場合への対応)例 ($mailchk='@www.xxx.co.jp';)
    #  チェックしない場合は $mailchk='';
    $mailchk='';
    
    #  テンプレートファイルのリンクファイルのパスを自動補正する $auto_sw=1; しない $auto_sw=0;
    $auto_sw=1;
    
    #  クッキーの書き込みによってブラウザを終了するまでは管理者のパスワード入力を免除 $cook_sw=1; 免除しない $cook_sw=0;
    $cook_sw=1;
    
    #  パスワード項目で許される文字を指定します(範囲で指定できる時は−で結合)
    $PASSOK='0-9A-Za-z-_';
    #  半角英数項目で英数以外に許されるキャラクター
    $HEISU="-_";
    
    # 書き込み可能ディレクトリのパーミッション
    $perms='777';
    
    # javaスクリプトの使用 使用不可->$java_sw=0; 使用許可->$java_sw=1;
    $java_sw=1;
    
    #  スーパーバイザー,マスターとして処理する場合のプログラムの引数
    $supermark='super';
    $mastermark='master';
    
    # 一括送信以外で集計処理にfork関数を使う $FORK='x';、使わない $FORK='';
    # バイト数を指定するとデータファイルのサイズがそれより大きい場合にfork関数を使う
    $FORK=1000000;
    
    # メール配信時 何秒ごとに進捗状況を更新するかを指定
    $Refsec=15;
    
    # 半角、全角スペース、改行のみの入力は入力なしとみなす $SPC=1;、みなさない $SPC=0;
    $SPC=1;
    
    # 入力された改行コードを以下のキャラクターに変換して送信する($CR='' は改行コードを削除します)
    $CR='';
    
    # 全角のカタカナ、ひらがなのチェックを行うときに以下の文字を許す \x40=全角スペース、\x45=・、\x5B=ー、\x7C=− 
    $ZEN="\x40\x45\x5B\x7C";
    
    # 項目入力に以下のキャラクターが含まれている場合はエラーとして表示する($NP_char='|!';)
    $NP_char='';
    
    # 機種依存文字をwindows $NP_kis='win'; 、Mac $NP_kis='mac';、両方 $NP_kis='win/mac'; に対してチェックする
    $NP_kis='win/mac';
    
    # メールアドレスを厳密にチェックする場合は次の #$MAIL_CH= の#を削除してください
    #$MAIL_CH=q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\}.q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][}.q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x}.q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-}.q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(}.q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0}.q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*}.q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,}.q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[}.q{^\x80-\xff])*\]))*};
    
    # 入力確認画面で入力値に2つ以上の半角スペースが続くときは に変換=1,変換しない=0
    $nbsp=0;
    
    # データファイルの1世代前を保存する $NO_old=0; しない $NO_old=1;
    $NO_old=0;
    
    # フォームで送信できる最大バイト数(添付ファイルを含む全ての項目を合計して)
    $MAX_byte=1048576;
    # フォームで送信できる最大バイト数(添付ファイルを除く全ての項目を合計して)
    $MAXD_byte=10000;
    
    # フォーム入力項目値をIDにする場合はその項目名を指定
    $ID_name='_id';
    
    # 入力データのクッキー保存日数($cook_k=''; 2030年まで 、$cook=0; ブラウザ閉じるまで)
    $cook_k='';
    
    # ソート可能な最大文字数
    $sortbyte=30;
    
    #.htaccess コンフィグレーション機能の使えないサーバー $HTAC=1; 使えるサーバー $HTAC=0;
    $HTAC=1;
    
    # HTTP_REFERER チェックを通常送信で 0:行わない 1:行う
    $REF_CHK=0;
    
    # HTTP_REFERER チェックを一括送信で 0:行わない 1:行う
    $REF_CHK_H=0;
    
    # 管理者メールアドレスの最大許可数
    $Kamax_add=3;
    
    # 送信にSMTPを使う場合は SMTP サーバー名を指定、POP before smtp 
    $SOC_host='';
    # POP before smtp の場合は以下にPOP3サーバー名、ID、パスワードを指定
    $POP_before_smtp='';
    $SOC_id='';
    $SOC_password='';
    # メッセージの終端が LF . LF の場合は $SOC_end='.';、その他は $SOC_end='';
    $SOC_end='.';
    

フォームメール・プロを稼働させるのに必要なファイル

    名 称種類PM読/書変更説 明標準格納場所
    form_mailディレクトリ777読/書
    作業用、この下に各フォームIDのディレクトリが生成されます任意/
    .htaccess設定ファイル644
    アクセス制限用、自動作成form_mail/
    index.htmlhtml644
    ディレクトリ表示防止用ダミーHTML
    各ディレクトリにアップロード
    各ディレクトリ/
    .htpasswdテキスト777読/書
    スーパバイザーパスワード保存ファイル(自動作成)form_mail/
    name.cgiテキスト777読/書
    フォーム名称テーブルファイルform_mail/
    IDディレクトリ777読/書
    管理するフォームのID
    フォームの数だけ生成されます
    form_mail/
    formdata.cgiテキスト777読/書
    データ保存ファイル(自動作成)
    拡張子はcgiだがテキストファイル(表示防止の為)
    form_mail/(ID)/
    .htaccess設定ファイル644
    アクセス制限用、自動作成form_mail/(ID)/
    formdata_dc.cgiテキスト777読/書
    データ保存サブファイル(自動作成)
    拡張子はcgiだがテキストファイル(表示防止の為)
    form_mail/(ID)/
    formdata_tmail.cgiテキスト777読/書
    自動返信メール雛形
    拡張子はcgiだがテキストファイル(表示防止の為)
    form_mail/(ID)/
    formdata_LOC空ファイル777読/書
    ファイルロック用form_mail/(ID)/
    .htpasswdテキスト777読/書
    パスワード保存ファイル(自動作成)form_mail/(ID)/
    backupディレクトリ777読/書
    バックアップファイルの保管場所form_mail/(ID)/backup/
    .htaccess設定ファイル644
    アクセス制限用、自動作成form_mail/(ID)/
    _formhtmlディレクトリ777読/書
    フォーム、確認HTMLファイルの保管場所form_mail/(ID)/
    _checkhtmlディレクトリ777読/書
    集計テンプレートHTMLファイルの保管場所form_mail/(ID)/
    _tempディレクトリ777読/書
    フォーム、確認用HTMLテンプレートの保管場所form_mail/(ID)/_formhtml
    formmail_set.plCGI644要*1設定プログラムcgi-bin/
    formmail_pro.cgiCGI755読/実要*1送信プログラムcgi-bin/
    formmail_admin.cgiCGI755読/実要*1編集プログラムcgi-bin/
    formmail_edit.cgiCGI755読/実要*1管理者ページ呼び出しプログラムcgi-bin/
    formmail_hs.cgiCGI755読/実要*1cronで配信予約処理cgi-bin/
    gradis.cgiCGI755読/実要*1画像表示プログラム(添付ファイル版のみ)cgi-bin/
    formmail_display.cgiCGI755読/実要*1フォーム表示プログラムcgi-bin/
    error.gifCGI644
    エラー表示画像ファイル(添付ファイル版のみ)cgi-bin/
    jcode.plCGI644
    漢字コード操作Perlモジュールcgi-bin/
    mimew.plCGI644
    MIME変換Perlモジュールcgi-bin/
    cgi-lib.plCGI644
    Perlモジュールcgi-bin/
    cgi-lib1.plCGI644
    Perlモジュール(添付ファイル版のみ)cgi-bin/
    option_help.htmlHTML644
    オプション一覧表示用HTMLcgi-bin/
    _menu_???.htmlHTML644
    メニュー表示用HTMLcgi-bin/
    check.htmlHTML644
    サーバー環境チェック用HTMLcgi-bin/
    goigoi250.gif.htmlHTML644
    サーバー環境チェック用画像cgi-bin/

  • ファイルは全てテキストファイルです。
  • 赤文字の名称は任意に変更できます。
  • ボックスのファイルは FTP を使って手動でアップロードしてください。
    その他のディレクトリ、ファイルは自動で生成されます。
  • 改行コードはサーバーの OS が Unix の場合は LF に変更してください。
    使用する FTPソフトによってはアップロード先の OS に対応して自動変換してくれます。
  • PM=パーミッション ご自分の環境に合わせて適宜変更してください。
    特に777はどのサーバーの環境でも問題なく使えるパーミッションですがセキュリティーレベルは一番甘い設定です。
    もしご自分の環境で707などもっとセキュリティーレベルを上げても書き込み可能ならそちらに変更してください。
  • ラッパープログラムが動作しているサーバーでCGIを置くディレクトリやCGIの実行ファイルのグループ(group)や第三者(other)に対して書き込み権(w)が設定されているとエラーになってしまいことがあります。
    そのような場合は、CGIが置かれているフォルダのパーミッションは705(rwx---r-x)、 実行させるCGIファイルのパーミッションは700(rwx------)、 書き込みを行うデータファイルのパーミッションは600(rw-------)に設定するとうまく動作するようですが、使用するサーバーのCGIの設定方法をご確認ください。
  • *1 必要に応じて変更してください。

ファイル配置ディレクトリツリー図

    
    
      /cgi-bin/ (Perlが実行できるディレクトリ) 括弧内のパーミションは一般例です
       |
       |
       |-- formmail (755  rwxr-xr-x) or (777  rwxrwxrwx)
       |   |
       |   |-- index.html(ダミー)
       |   |-- jcode.pl
       |   |-- mimew.pl
       |   |-- cgi-lib.pl
       |   |-- cgi-lib1.pl (添付ファイル版のみに必要)
       |   |-- setup.cgi(755)
       |   |-- formmail_set.pl(755)
       |   |-- formmail_pro.cgi(755)
       |   |-- formmail_admin.cgi(755)
       |   |-- formmail_edit.cgi(755) 任意の名前
       |   |-- gradis.cgi(755) (添付ファイル版のみに必要)
       |   |-- formmail_hs.cgi (755) cronで配信予約処理を行う場合にのみ必要
       |   |-- formmail_display.cgi(755) (フォーム表示CGI、クッキー書き込み機能、受付制限機能のみに必要)
       |   |-- name.cgi(644) フォームname対応ファイル
       |   |-- option_help.html (644) オプション一覧表示用HTML
       |   |-- check.html (644) サーバー環境チェック用HTML
       |   |-- goigoi250.gif (644) サーバー環境チェック用画像
       |   | 
       |   |-- _menu_super.html (644) スーパーバイザーメニューテンプレートファイル
       |   |-- _menu_admin.html (644) マスター管理者メニューテンプレートファイル
       |   |-- _menu_master.html (644) 通常管理者メニューテンプレートファイル
       |   |-- _menu_std.html (644) メニューテンプレートファイル
       |   |-- error.gif (644) 添付ファイル版のみに必要
       |   |
       |   |---- _help/ (644、ヘルプファイル用ディレクトリ)
       |   |
       |   |---- form_data/ (777、任意の名前)
       |   |    |-- index.html(ダミー)
       |   |    |-- .htpasswd  (777、スーパーバイザーパスワードファイル、自動作成)
       |   |    |-- .htaccess  (644、アクセス制限用、自動作成)
       |   |    |-- name.cgi   (777、フォーム名称テーブルファイル)
       |   |    |
       |   |    |---- ID1/ (777、任意の名前) フォーム1に対応
       |   |    |    |-- .htpasswd  (777、パスワードファイル、自動作成)
       |   |    |    |-- .htaccess  (644、アクセス制限用、自動作成)
       |   |    |    |-- formdata.cgi  (777、データ保存ファイル、自動作成)
       |   |    |    |-- formdata_dc.cgi  (777、データ保存ファイル、自動作成)
       |   |    |    |-- formdata_tmail.cgi  (777、自動返信メール雛形ファイル)
       |   |    |    |-- formdata_kmail.cgi  (777、管理者宛メール雛形ファイル)
       |   |    |    |-- formdata_LOC (777)
       |   |    |    |-- index.html(ダミー)
       |   |    |    |
       |   |    |    |--backup(777) バックアップ用ディレクトリ
       |   |    |    |-- .htaccess  (644、アクセス制限用、自動作成)
       |   |    |    |--_formhtml(777) フォーム、確認HTML用ディレクトリ
       |   |    |    |     |-- form.dat ジェネレータ用データファイル
       |   |    |    |     |-- form.html フォームHTMLファイル
       |   |    |    |     |-- _temp(777) 確認HTMLテンプレート保存用ディレクトリ
       |   |    |    |     |     |-- check.html 確認テンプレートHTMLファイル
       |   |    |    |     |     |-- check_i.html i-Mode確認テンプレートHTMLファイル
       |   |    |    |     |-- _Ftemp(777) 送信フォームHTMLテンプレート保存用ディレクトリ
       |   |    |    |     |     |-- temprate.html テンプレートHTMLファイル
       |   |    |    |     |     |-- temprate_i.html 携帯用テンプレートHTMLファイル
       |   |    |    |     |
       |   |    |    |     |-- tenpu(777) 添付ファイル一時保存用ディレクトリ
       |   |    |    |     |-- tenpu_s(777) 添付ファイル保存用ディレクトリ
       |   |    |    |
       |   |    |    |--_checkhtml(777) 結果テンプレート用ディレクトリ
       |   |    |    |     |-- kekka.html 選択肢集計結果テンプレート
       |   |    |    |     |-- kekka_R.html 選択肢集計結果HTMLファイル
       |   |    |    |     |-- kensu.html 送信件数テンプレート
       |   |    |    |     |-- kensu_R.html 送信件数HTMLファイル
       |   |    |
       |   |    |---- ID2/ (777、任意名) フォーム2に対応
       |   |    |    |
       |   |    |    | 以下ID1と同一構成
       |   |
    
    【送信用フォームHTMLを任意に場所に置く場合】
    
      /index.html/ (ドキュメントルート))
       |
       |-- 任意のディレクトリ/ (777、任意名)
       |  |-- フォームID/(フォームIDのディレクトリ名)
       |  |   |-- ????.html(777、送信用フォームHTML)
       |  |   |
    
    
    

使用講習会、説明会をご指定の場所で開催させていただきます

 本サイトの CGI は高機能で何でもできますが、高機能のため使用方法を完全に理解するためには説明を受けた方が解りやすいと思います。京阪神奈の制作会社様には使用講習会、説明会をご指定の場所で開催させていただきます。最下段のメールアドレスまでお問い合わせ下さい。(場所が京阪神奈以外の場合は実費交通費が必要です)

インストール、CGI制作の請け負い

 本サイトのプログラムは今までに CGI をインストールされた方なら簡単にインストールしていただけますが、設定も含めたインストール、サイト構築作業、CGI制作を請け負うことも可能です。お問い合わせページからご連絡ください。

GOiGOi Projectではフォームメール、WhatsNew(汎用データベース)、ページ自動生成、ページ更新、空き情報・予約など、ホームページを管理、運営する上でどうしても必要になってくるCGIをプロ仕様で提供しています。全てのプログラムは汎用CGIとして開発されていてどのようなサイトでもご使用いただけます。また、CGI制作も承ります。