ファイル添付対応フォームメールの設計
汎用スクリプト(PHP CGI)
カテゴリー: PHP 10May2005 更新2Aug2014 更新18Feb2016
ファイル添付フォームメール
フォームに入力した内容を指定したメールアドレスに送信し、またオプションでデータベースに保存する PHP 汎用スクリプトです。
- ファイル添付が可能。
ファイル以外の入力項目にエラーがあって入力画面に戻る時、ファイルタグでの入力値を保持します。
- 文字コードは utf-8。
- フォーム入力要素の配置設計が自由に行えるツールが用意されています。実行ファイルである 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 を編集して初期設定を行います。
- データベースを使用する/しない、使用する時は、データベース名、パスワード、作成するテーブル名、を設定してください。
- 4項目の初期設定を行なってください。
$owner="xxxx@xxxx.xx"; //フォームメールの送信先
$dbl=1; //同一発信元からの連続送信に制約を設ける。設けない場合は "0"。
$intbl=10; //連続とみなす時間間隔(分単位)。
$form.php の絶対アドレス
カスタマイズ
カスタマイズは library/edit.php を開いて行います。⇒edit_sample
- 摘用欄:ブランクを選択するとその行は無効になります。最下段で行を削除するのと同じです。
- fieldset 欄:使用する時は、始まり(g)と終り(e) をセットで指定する必要があります。
- 名称:自由に決められます。fieldset 欄が g の時、この名称は legend に使われます。
- type:フォームの要素名です。text select radio textarea checkbox file が選択肢です。
- 配列名:type が select、radio、checkbox の項目は、対応する配列が "library/selectArray.inc" に規定されていなければなりません。
サブ項目の配列を使用する時は、目的に合わせて編集してください。 配列名が year_month_day や year1_month_day のようになっている時は year year1 month day それぞれの配列が用意されています。ただし $year、$year1 の開始年と終了年は適宜編集してください。
- NAME:フォーム要素の name 変数名です。"name" は使用できません。重複がないこと。年月日の変数名は3点セットで与えます。
- 入力必須:必須の場合は「必須」を選択します。
- data size: 許容する最大データサイズ(文字数)です(type が file 以外)。
添付ファイルのサイズは、php.ini の upload_max_filesize 以下でなければなりません。phpinfo() を実行して確認してください。
- display size:フォーム要素の入力枠の(幅)サイズです。textarea は(幅x行数)で指定します。
- 書式:ここで指定する書式は "library/decodeCheck.inc" に規定している function 名に対応していなくてはなりません。
file の場合はここに許容する拡張子を記入します。添付を指定できるファイル形式は、jpg/png/gif/doc/xls/txt/docx/xlsx/mp3 です。 追加する時は "library/selectArray.inc" の $mimeArray に、追加するファイル形式の拡張子とmimeタイプの対応を記入する必要があります。 type が checkbox の時ここに multiple と指定すると複数選択が可能になります(ブランクは排他的選択)。
- 再下段で行の追加、削除、移動が出来ます。また全行適用、全行適用除外が出来ます。
編集が終ったら "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 へと引き継がれて完了します。
スクリプトの配布
配布は次の条件のもとに自由です。
- このスクリプトは配布された人の責任のもとに使用してください。
- 著作権表示はありませんが、著作権を放棄しているわけではありません。
- スクリプトの改造は自由です。
- スクリプトの再配布は、事前に了承を得て下さい。連絡先:admin@riok.net
- バグ等があった場合は速やかに admin@riok.net までご連絡ください。またアドバイス等があれば歓迎します。
|