私のパソコン雑記帖

ファイル添付フォームメール
汎用スクリプト(PHP CGI)

カテゴリー: PHP
10May2005
更新2Aug2014
更新18Feb2016

ファイル添付フォームメール

フォームに入力した内容を指定したメールアドレスに送信し、またオプションでデータベースに保存する PHP 汎用スクリプトです。

  1. ファイル添付が可能。 ファイル以外の入力項目にエラーがあって入力画面に戻る時、ファイルタグでの入力値を保持します。
  2. 文字コードは utf-8。
  3. フォーム入力要素の配置設計が自由に行えるツールが用意されています。実行ファイルである form.php(入力) check.php(チェック)send.php(送信)が要素の配置設計に準じて自動生成されます。

汎用スクリプトの設置方法

ダウンロード・解凍して得られた formMail フォールダを適当なパスにアップロードして、パーミッションを変更してください。ダウンロード

formMail
css (フォールダ)
form.css
library (フォールダ)
decodeCheck.inc
selectArary.inc
sendCheck.inc
ransuu.inc
history.txtパーミッション 0666
proxy.txtパーミッション 0666
listMaster.txt
config.inc
edit.php

初期設定

config.inc を編集して初期設定を行います。

  1. データベースを使用する/しない、使用する時は、データベース名、パスワード、作成するテーブル名、を設定してください。
  2. 4項目の初期設定を行なってください。
     $owner="xxxx@xxxx.xx"; //フォームメールの送信先
     $dbl=1; //同一発信元からの連続送信に制約を設ける。設けない場合は "0"。
     $intbl=10; //連続とみなす時間間隔(分単位)。
     $form.php の絶対アドレス

カスタマイズ

カスタマイズは edit.php を開いて行います。⇒edit_sample

  1. 摘用欄:ブランクを選択するとその行は無効になります。最下段で行を削除するのと同じです。
  2. fieldset 欄:使用する時は、始まり(g)と終り(e) をセットで指定する必要があります。
  3. 名称:自由に決められます。fieldset 欄が g の時、この名称は legend に使われます。
  4. type:フォームの要素名です。text select radio textarea checkbox file が選択肢です。
  5. 配列名:type が select、radio、checkbox の項目は、対応する配列が "library/selectArray.inc" に規定されていなければなりません。
    サブ項目の配列を使用する時は、目的に合わせて編集してください。
    配列名が year_month_day や year1_month_day のようになっている時は year year1 month day それぞれの配列が用意されています。ただし $year、$year1 の開始年と終了年は適宜編集してください。
  6. NAME:フォーム要素の name 変数名です。"name" は使用できません。重複がないこと。年月日の変数名は3点セットで与えます。
  7. 入力必須:必須の場合は「必須」を選択します。
  8. data size: 許容する最大データサイズ(文字数)です(type が file 以外)。
    添付ファイルのサイズは、php.ini の upload_max_filesize 以下でなければなりません。phpinfo() を実行して確認してください。
  9. display size:フォーム要素の入力枠の(幅)サイズです。textarea は(幅x行数)で指定します。
  10. 書式:ここで指定する書式は "library/decodeCheck.inc" に規定している function 名に対応していなくてはなりません。
    file の場合はここに許容する拡張子を記入します。添付を指定できるファイル形式は、jpg/png/gif/doc/xls/txt/docx/xlsx/mp3 です。
    追加する時は "library/selectArray.inc" の $mimeArray に、追加するファイル形式の拡張子とmimeタイプの対応を記入する必要があります。
    type が checkbox の時ここに multiple と指定すると複数選択が可能になります(ブランクは排他的選択)。
  11. 再下段で行の追加、削除、移動が出来ます。また全行適用、全行適用除外が出来ます。

編集が終ったら "check" ボタンをクリックします。fieldset が正しく設定されているか、定義済の配列名が使われているか、変数名に問題がないか、定義済の書式が使われているか、等をチェックして、問題がなければ "確定" ボタンが現れます。それをクリックすると編集完了です。edit.php は削除します。

編集が完了すると library/list.txt に替わって library/listFN.txt が生成され、これがカスタマイズされた基準になります。この基準に基づいて、実行ファイル form.php(入力) check.php(チェック)send.php(送信)が生成されます。
またconfig.inc でデータベースを使用する設定になっていれば、新しくテーブルが生成されます。

仮にデフォルトの設定をそのまま使う場合でも、"checck"⇒"確定"の操作はは必須です。


実行時に呼び出すファイルは form.php です。デフォルトの設定で生成された form.php をサンプル表示します。⇒form_sample
これは library/edit.php の初期設定に基づいています。


後は画面の指示に従ってください。check.php、send.php へと引き継がれて完了します。


スクリプトの配布

配布は次の条件のもとに自由です。

  1. このスクリプトは配布された人の責任のもとに使用してください。
  2. 著作権表示はありませんが、著作権を放棄しているわけではありません。
  3. スクリプトの改造は自由です。
  4. スクリプトの再配布は、事前に了承を得て下さい。連絡先:admin@riok.net
  5. バグ等があった場合は速やかに admin@riok.net までご連絡ください。またアドバイス等があれば歓迎します。



コメント