Npフォーム 無料で使えるメールフォームPHPスクリプト
手作りサイト応援企画~その1
色んなフォーム作れます
- 様々なフォームに
- メールフォーム
- 問い合わせフォーム
- 登録フォーム
- 注文フォーム
- 予約フォーム
- 見積もりフォーム
- アンケートフォーム
- etc.
Npフォームは HTMLページに埋め込むタイプの汎用のメールフォームPHPスクリプトです。
問い合わせフォームを始め、登録フォーム、予約フォーム、見積もりフォーム、アンケートフォーム等々、様々なフォームを簡単に作ることが可能です。
この PHPスクリプトはフリーソフトとして商用・非商用問わず、どなたでも無料でお使い頂けます。著作表記、リンク表示の義務もありません。
Npフォームを利用してのフォームの作成も承っております。
シンプルイズベスト
Npフォームはもともと、一般的なメールフォームやフォーム系のもう少し複雑なシステム(予約システム、注文管理システム等)を作るためのプロトタイプ(原型)として設計されました。そのため、とてもシンプルな構成になっています。
反面、ブラウザ操作による設定などのインタフェイスは備えていないため、フォーム内容を作る際には多少の PHP編集が必要になります。スクリプトには予約フォームのサンプルが付属していますので、これを切り張りするなどすれば、わりと簡単に好みのフォームを作ることが出来ます。
「自分でHTMLを調整出来るフォームスクリプトが欲しい」、もしくは「一から作るのは大変だけど、プログラムはある程度分かるから自分で作りたい」という方にはお勧めです。
機能・特徴紹介
Npフォームは以下のような機能・特徴を備えています。
簡単設置
Npフォームは PHPとして動作する HTMLテンプレートに以下のようなコードを埋め込むだけで簡単に設置出来ます。
<?php include_once "__PATH_TO__/npform/lib/npform.class.php"; $npform = new npform(); $npform->process(); ?>
マルチセット,マルチフォーム
一つスクリプトを用意するだけで、いくらでも新しいフォームを増やすことが出来ます。設定ファイルは、カレントディレクトリに置く方法と、ディレクトリを作ってその中にまとめて置く方法を選ぶことが出来ます。
また、一つのページ内に複数のフォームを設置することも可能になりました。(v.2.3a)
ダブルオプトイン機能(v.2.2a)
これは、より安全・確実なコンバージョン(問合せ、登録、注文、予約などといった操作)を行うための機能です。ダブルオプトイン機能とは、フォームが送信された際、直ぐにはコンバージョンを確定させず、一度、入力されたメールアドレス宛てに確認のメールを送り、その文面に記述されている URLアドレスにアクセスしてもらうことでコンバージョンを確定させるという仕組みです。
メールアドレスの誤入力やいたずらに対処出来るため、メールマガジン等への登録や、大手のサービスでは標準的に使われています。この機能は On/Offの切り替えが出来ます。
サンプル予約フォーム
Npフォームの動作テスト用です。このフォームでは実際にメール送信はされません。
宿泊施設などを想定した予約フォームのサンプルです。ほとんどのフォーム要素を詰め込んでいますので、オリジナルのフォームを作る際に、この内容を切り張りして利用出来ます。
なお、今のところファイル送信には対応していません。
ダウンロード
以下より最新のNpフォームをダウンロード出来ます。ファイル一式は Zip形式にて圧縮されています。
Npフォームのファイル構成
npform/ スクリプトホーム .htaccess アクセス制御 test.php テスト用ページ readme.txt 案内メモ set/ 設定ファイル一式格納 .htaccess アクセス制御 form.php フォーム画面 confirm.php 確認画面 optin.php ダブルオプトイン画面 thanks.php 送信完了画面 notice.php エラーメッセージ表示枠 inputs.php 入力内容整形 mail_toadmin.php 所有者宛てメール mail_touser.php ユーザ宛てメール mail_tooptin.php ダブルオプトインメール errcheck.php エラーチェックルーチン prefectures.txt 都道府県リスト example/ サンプルセット格納 reserve/ 予約フォームサンプル form.php フォーム画面(サンプル) inputs.php 入力内容整形(サンプル) put/ データ格納 .htaccess アクセス制御 lib/ ライブラリ格納 .htaccess アクセス制御 npform.class.php メインクラス npforms.class.inc フォーム項目処理 np.class.inc 関数集
バージョン変更歴
[2015-05-06] Ver.2.4b: チェックボックスを必須項目とする際の案内書きを追加 [2015-04-19] Ver.2.4a: 住所入力欄を作りやすくする機能・案内を追加 [2012-03-03] Ver.2.3a: マルチフォーム対応; 設定ロードの仕組み変更 [2012-02-15] Ver.2.2aを公開
よく分かる設置手順
この節を一通り見ておくと、Npフォームの使い方をだいたい把握出来ます。
1.下準備
まず、Npフォームをダウンロードします。展開してファイル構成を確認して下さい。
2.アップロード
ディレクトリnpform
を丸ごとサーバにアップロードします。どこでも構いませんが、参照し易い位置に置くことをお勧めします。
セキュリティが気になる方は、ディレクトリnpform
の名称を変えても構いません。また、ドキュメントルートより上に置いても問題ありません。(その場合、テスト用ページは動作不可)
3.パーミッション設定
データを格納するディレクトリnpform/put/
に書き込み権限(707等)を付けて下さい。なお、PHPが CGIとして動作している環境では、このパーミッション設定は必要ないことがあります。
4.テスト用ページの確認
ブラウザからnpform/test.php
を開くとアプリケーションの動作を確認出来ます。このテスト用ページでは実際のメール送信は行われません。
もし(please enable to put data)
というメッセージが表示されてしまう場合は、npform/put/
のパーミッション設定を確認して下さい。
5.PHPコードの埋め込み
メールフォームを挿入したいページに以下の PHPコードを埋め込みます。
<?php include_once "__PATH_TO__/npform/lib/npform.class.php"; $npform = new npform(); $npform->process(); ?>
__PATH_TO__
とあるところにはnpform
へのパスを正しく記述します。ドキュメントルート下に置く場合、$_SERVER["DOCUMENT_ROOT"]
という変数を使うと指定が楽になります。以下はnpform
をドキュメントルートに置いた場合です。
<?php include_once $_SERVER["DOCUMENT_ROOT"]."/npform/lib/npform.class.php"; $npform = new npform(); $npform->process(); ?>
この状態でページをブラウザから見ると、デフォルトのお問い合わせフォーム(npform/set/form.php
)が表示されます。
6.メールの作成
npform/set/
からform.php, mail_toadmin.php, mail_touser.php
をコピーして持って来ます。カレントディレクトリにあるファイルのほうがnpform/set/
にあるファイルよりも優先して使用されます。必要なら他のファイルもコピーして持って来ます。
mail_toadmin.php
及びmail_touser.php
の Toアドレスや Fromアドレスに正しいメールアドレスを記入します。これでひとまずメールフォームは動作するようになります。
なお、一行目の PHPコードを誤って削除しないようにして下さい。このコードはこれらのファイルを直接開いて見られることを防ぐためにあります。
7.フォームの作成
一番難しいと思われるのはこの作業です。サンプルの予約フォームnpform/set/example/reserve/form.php
をエディタで開いて一読して下さい。この内容を切り張りするなどすれば、比較的簡単にお望みのフォームを作成可能です。
8.入力内容フォーマットの作成
入力された内容を任意にフォーマットするにはnpform/set/inputs.php
もコピーして編集します。とにかく内容を確認出来ればいい、という場合には必要ありません。(デフォルトのinputs.php
が使われる)
具体的な記述方法はnpform/set/example/reserve/inputs.php
をご覧下さい。
設定ファイルとロードの仕組み
設定ファイルの仕組み
デフォルトの設定ファイル一式は、特定のフォーム向けにコピーして使うか、もしくは直接編集して全てのフォームに反映させるか、といった二通りの目的を持っています。特定のフォームを作るために直接編集することはお勧めしません。
各設定ファイルは、デフォルトの設定ファイルをカレントディレクトリ(以下カレント=フォームを埋め込んだページのあるディレクトリ)にコピーして持ってくるのが一番基本的で楽な方法です。
ただ、この方法だと同じページに二つ以上のフォーム(マルチフォーム)を埋め込むときに困ります。また、他のファイルと紛らわしいのでカレントに置きたくない、ということもあります。
そこで、カレントやnpform/set/
内に新しいディレクトリを作ってその中に整理するという方法もあります。その場合は、メソッドprocess
に引数としてそのディレクトリ名を渡します。
$npform->process("setname");
これはサンプルの予約フォームでも使われている方法です。テスト用ページnpform/test.php
の中身も参照してみて下さい。
フォームを一つしか作らない、仕組みがよく分からない、設定ファイルの管理が面倒、という場合には、あまりお勧めはしませんがデフォルトの設定ファイルを直接編集してフォームを作っても構いません。
ロードの仕組み
設定ファイルは以下のような順に検索され、最初に見つかったファイルをロードします。
process
で指定したディレクトリ(カレント下位)- その一つ上のディレクトリ、無ければ更にその上
process
で指定したディレクトリ(npform/set/
下位)- その一つ上のディレクトリ、無ければ更にその上
- 最終的に、デフォルト設定ディレクトリ
npform/set/
使い方メモ
ダブルオプトイン機能を使う
この機能を有効にするには、process
を呼び出す前に以下の行を追加して下さい。
$npform->tooptin = true;
ダブルオプトイン機能を有効にすると、他の設定ファイルと併せて、npform/set/mail_tooptin.php
及びnpform/set/optin.php
も使われるようになります。
指定位置へ移動する
サンプル予約フォームのように、送信後にフォーム位置にスクロールさせたい場合は、以下のようにIDを指定します。
$npform->script .= "#example";
利用について
この PHPアプリケーションはフリーソフトウェアです。個人・法人、商用・非商用問わずどなたでも無料でお使い頂けます。著作表記、リンク表示の義務もありません。
気に入って頂けましたら、このソフトや当サイトをご紹介頂いたり、将来的に当方へのご相談を検討頂けますと幸いです。
改変しての利用
自身・自社の範囲で改変して使うことにはまったく問題ありませんが、改変済みスクリプトのサポートは基本的に行いません。改変とは、npform/lib/
内のファイルを編集することを指します。
スクリプトの一部、又は全部を他の用途に流用することは禁止いたします。