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

Tips(ヒント)

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

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

  • 最新のバーションをダウンロードして解凍します。
    現在稼働しているサーバー上のプログラムが存在するディレクトリに setup.cgi のみを上書きでアップロードします。
  • setup.cgi のパーミッションを実行権限のあるパーミッションに変更します。
  • 以上の作業が終了した後に、ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
    例: http://www.yyy.co.jp/cgi-bin/formmail/setup.cgi
  • 実行の結果以下の画面が表示されます。



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



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

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

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

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

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

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

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

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

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

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

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

  • フォーム表示プログラム formmail_display.cgi はフォームを静的に表示するのではなく何らかの判断を伴い動的に表示したい場合に使用します。
    以下の使用例の id:ZZZ にはフォームのID(例の場合は ZZZ )を指定します。
    「初期設定」で指定したフォーム以外を表示させるには以下のようにフォームのHTMLファイルをサーバーのルートまたはドキュメントルートから指定します。form:/aaa/bbb/ccc/xxxxx.html
    例:http://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 を以下のように呼び出します。
      例:http://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+chk

    2、クッキーに保存された項目を送信フォームに表示させる時にセットして表示させたい場合。
      この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
      例:http://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 を以下のように呼び出します。
      例:http://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 を以下のように呼び出します。
      例:http://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+key:XXX
      XXXに日本語の2バイト文字が含まれる場合はURL変換する必要があります。
      送信フォームの記述例:<input type=hidden name=aaa value="%key1%">
      フォームジェネレータでフォームを作成する場合は初期値に %key番号% を指定しておきます。

    5、送信フォームに埋め込んだ %checked% の部分にフォーム表示プログラム formmail_display.cgi の引数 checked:YYY の YYY をセットして表示します。
      この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
    例:http://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%">

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

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

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

    送信フォームを何回かに分けて送信する場合の設定について

    最初の送信フォーム (form1.html)
    <form method="post" action="/cgi-bin/formmail/formmail_pro.cgi">
    <input type="hidden" name="_check" value="判定">
    2番目のフォームに続くことを指定します。(最後のフォームでは不要です、2から順番に付けていきます)
    どの送信フォームに続くかは「初期設定」の一番上の送信フォームを指定するところで送信フォームを順番に複数指定します。
    「初期設定」での指定 form1.html,form2.html
    この例では最初の送信フォームは form1.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="名前(name//hidisp)" value="" size=20>

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

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

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

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

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

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



  • IDとなる項目を選択します。
    メールアドレスのようにIDの中でダブリのないユニークな値の項目に指定します。
  • 変更させない項目を指定します。
    登録者が変更処理を行う場合にこの項目は変更することができないようにします。
    この設定ができる項目はインプットタイプが text,select,checkbox,radio に設定できます。また年月日を3つのセレクトボックスで入力しオプション add で繋いで保存されるような項目には設定できません。
  • CGIの設定を行います。例えばCGIに引数が必要な場合に変更します。
  • 「実行」ボタンをクリックします。
  • この処理では変更用に使用する送信フォームを変更処理を行うフォームを基にして作成します。また同時にID、パスワードのログインのHTMLファイルも作成します。
  • ログインのHTMLファイルへのURLは処理終了後に表示されます。
  • 変更用に使用する送信フォームを変更したい場合は「マスター管理者」メニューの「HTMLファイルを編集」処理で編集します。

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

  • ホームページ上のフォームから「同報@メール」に、[自動ユーザー登録]のメールを送るためにフォームメールプロを使うことができます。
    「同報@メール」のホームページからサンプル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)のディレクトリがあります。インストールしたディレクトリが違う場合は違う場所になります)
  • 最新のプログラムをダウンロードし新しいサーバーに旧サーバーへのインストールと同じやり方でインストールします。
  • 制限解除キーを再取得してください。(制限解除キーには使っているサーバー情報が含まれていますので同じキーを使うことはできません、またキーには有効期限がありますので以前に取得したキーを使うこともできません)
    制限解除キーは2回まで取得できるようになっています。
    スーパーバイザー管理者メニューから制限解除処理を行って下さい。
  • フォーム名(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 の195行目 $MAX_byte=1048576; を希望するサイズに変更します。
    また、添付ファイルを除いた入力項目の送信できる最大のバイト数にも制限がかけられています。大きなサイズのデータを送信される場合は formmail_set.pl の197行目 $MAXD_byte=10000; を変更して下さい。(初期値は 10000バイトまで)

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

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

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

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

  • 半角、全角スペース、改行のみの入力を入力があったと見なしたい場合は164行目を変更します。 $SPC=0;
  • メール配信で配信リストをパソコンのリストを指定できるようにする。formmail_set.pl の75行目を $Mlist_sw=1; に変更します。
    # formmail_pro.cgi 設定ファイル(添付ファイル版 Copyright Shigeru Uchida 2007/05/30)
    $ver='FormMail Pro Ver 5.08t';
    
    #  ---管理者画面を呼び出すCGIファイル名(セキュリティ上からも必ず変更してください)
    $cgi1='formmail_edit.cgi';
    #  ---編集処理CGIファイル名
    $cgi='formmail_admin.cgi';
    
    # Webのどこからでも呼び出せるフォーム処理CGIファイル名
    $cgi2='formmail_pro.cgi';
    
    # メール送信エンジンの設定 sendmailのパス&ファイル名(プロバイダーまたは管理者に尋ねてください)
    $sendmail='/usr/sbin/sendmail -t -oi';
    
    #  パスワードファイルのファイル名 パスワード認証をしない場合は $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 http:// 以下を指定します(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.pl';
    #------cgi-lib1.plのパス&ファイル名
    $clpath1='./cgi-lib1.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='';
    
    #  フォーム形式でエラー表示する場合のタグを以下で指定します(初期設定でも設定できます)
    #  前表示タグ( <!--er_title--> にタイトルが挿入されます)
    $f_tag1='<center><table border=0 cellspacing=1 cellpadding=2 bgcolor=#999999 style="font-size:12px;color:#666666"><tr><td style="color:#FFFFFF;text-align:center"><!--er_title--></td></tr><tr bgcolor=#FFFFFF><td style="text-align:left">';
    #  繰り返し表示タグ( <!--erno--> にエラー番号、<!--er_name-->に項目名、<!--er_mes--> にエラー内容が挿入されます)
    #  ('1行に全てのエラーを表示する場合のタグ','1行1エラー表示タグ');
    @f_tag2=('<!--erno--> <!--er_name--><!--er_mes--> ','<!--erno--> <!--er_name--><!--er_mes--><br>');
    #  後ろ表示タグ
    $f_tag3='</td></tr></table></center>';
    
    #  テンプレートファイルのリンクファイルのパスを自動補正する $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])*\]))*};
    
    # フォームHTMLから送信される漢字コードを name=_check から判定せず固定したい場合は#を削除し指定します (jcode.pl用)
    # 'sjis','euc','jis',''   ''は固定せず入力値から判定します
    #$KJcode='sjis';
    
    # 入力確認画面で入力値に2つ以上の半角スペースが続くときは に変換=1,変換しない=0
    $nbsp=0;
    
    # 携帯電話の横最大表示バイト数
    $MAX_mob=16;
    
    # データファイルの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;
    
    #------以下は変更不可----------
    $Ascii='[\x00-\x7F]';
    $Sjis_twoBytes='[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]';
    $key='071k92q21q1k83158145f92m9191';
    $KC= $OS ? "\n":"\x0D\x0A";
    $deb_sw=1;
    1;
    
    

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

    名 称種類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制作も承ります。