Npフォーム 無料で使えるメールフォームPHPスクリプト

2024-10: PHPでフォームを作り始めて約10年。ウェブフォーム制作のスタンダードは変化しつつあります。このページの内容は古くなってしまったので、Npフォームの配布は停止いたしました。ご不便おかけしますが、フォーム制作についてはご相談頂けますと幸いです。

手作りサイト応援企画~その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フォーム Ver.2.4b(UTF-8エンコード)

(配布は終了いたしました)

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        関数集

バージョン変更歴

[2024-10] 古いライブラリとなったため配布を終了いたしました
[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の中身も参照してみて下さい。

フォームを一つしか作らない、仕組みがよく分からない、設定ファイルの管理が面倒、という場合には、あまりお勧めはしませんがデフォルトの設定ファイルを直接編集してフォームを作っても構いません。

ロードの仕組み

設定ファイルは以下のような順に検索され、最初に見つかったファイルをロードします。

  1. processで指定したディレクトリ(カレント下位)
  2. その一つ上のディレクトリ、無ければ更にその上
  3. processで指定したディレクトリ(npform/set/下位)
  4. その一つ上のディレクトリ、無ければ更にその上
  5. 最終的に、デフォルト設定ディレクトリnpform/set/

使い方メモ

ダブルオプトイン機能を使う

この機能を有効にするには、processを呼び出す前に以下の行を追加して下さい。

    $npform->tooptin = true;

ダブルオプトイン機能を有効にすると、他の設定ファイルと併せて、npform/set/mail_tooptin.php及びnpform/set/optin.phpも使われるようになります。

指定位置へ移動する

サンプル予約フォームのように、送信後にフォーム位置にスクロールさせたい場合は、以下のようにIDを指定します。

    $npform->script .= "#example"; 

利用について

この PHPアプリケーションはフリーソフトウェアです。個人・法人、商用・非商用問わずどなたでも無料でお使い頂けます。著作表記、リンク表示の義務もありません。

気に入って頂けましたら、このソフトや当サイトをご紹介頂いたり、将来的に当方へのご相談を検討頂けますと幸いです。

改変しての利用

自身・自社の範囲で改変して使うことにはまったく問題ありませんが、改変済みスクリプトのサポートは基本的に行いません。改変とは、npform/lib/内のファイルを編集することを指します。

スクリプトの一部、又は全部を他の用途に流用することは禁止いたします。

✉ お問い合わせ

トップページ | これまでの実績 | ご相談・お見積もり | 運営者情報 | 利用者さまの声 | お問い合わせ