fc2ブログ

PREV | PAGE-SELECT | NEXT

formを自動生成し、formの受け取りを簡単にするライブラリのサンプル

PHPを使う以上、必ずといっていいほど発生するのがformの送信と、受け取りです。
このformというのが私はダイキライで、なるべく作業を簡単にする為に、個人用formライブラリを作ってやってます。

今回は、このformの送信と受け取りを簡略化するためのライブラリのサンプルを作りましたので、どうぞ使ってみてください。
(自分が使ってる完全版ライブラリはさらにごちゃごちゃしている為、ものすごい短時間で動作だけするものを作って公開しております。セキュリティに関するものは各自でお願いいたします)


ライブラリ導入のメリット


動作サンプルページ
普通のformの動作です。
重要なのはデータの受け取り方。

このライブラリを利用することで、formから送信された情報は全て
$Gform[(数字)]に代入されます。
数字は、formの順番で指定できます。


print $Gform[2];とか

Download


使い方


lb_form.phpを開き

//設定箇所--------------------------
$FN="forms";//FOAMのname
//----------------------------------


$FNの設定を行います。

これはformの送信部分

<input type="text" name="この部分">

の設定になります。
この部分は、連番で生成されていきます。

これは、簡易的なスパム防止につかいます。
運営中においても、変更が出来ます。

index.phpを開きサンプルの確認をします。

$dir="./";
include($dir."lb_form.php");

頭の部分にあるこれが、form生成ライブラリを呼び出しています。

Form_t("20","40","デフォルト表示",$Fs0,$FN);$Fs0=$Fs0+1;


Form_t ここを変更することで、ボックスの形状などを指定します。

"ボックス幅","40","デフォルト表示"となっている部分がボックスの情報です。
"文字幅","最大受付文字数,"デフォルト表示"という設定箇所になります。

Form_t
テキストタイプ
Form_t("40","250","デフォルト文字",$Fs0,$FN);$Fs0=$Fs0+1;
デフォルト文字が必要なければ、""としてください。

Form_h
hiddenタイプ
Form_h("hiddenの内容",$Fs0,$FN);$Fs0=$Fs0+1;

Form_p
パスワードタイプ
Form_p("20","40","デフォルト表示",$Fs0,$FN);$Fs0=$Fs0+1;

Form_m
マルチテキストボックス
Form_m("30","5","コメントボックス",$Fs0,$FN);$Fs0=$Fs0+1;
マルチテキストボックスの二つ目
例でいう"5"は、高さ(行)になります。

Form_end
FORMの終了直前に入れておく。

この呼び出しは、送信FORMを生成する為のものです。

データの受け取り


送信準備が完了したら今度はデータを受け取る方です。

これは
test.phpを開いてもらえるとわかります。

<?php
$dir="./";
include($dir."lb_post.php");?>

この2行でデータを全て$Gform[(数字)]に代入します。

print $Gform[5];

こんな感じで呼び出せます。

また、送信用ライブラリの使用が面倒なときは、$FNで指定した名前+連番を付ければ送信FORMを作れます。


$FN="forms"の場合
<input type="text" name="forms0">
<input type="text" name="forms1">

連番で送った順番に
$Gform[0]
$Gform[1]と代入されます。

こういう状態にしておけば、
$Gform[$i]といった使い方が容易にできる為、for文によって色々使えるようになります。

テキストファイルへ書き込む為に

$string = $Gform1."t"Gform2."t".$Gform3."t".$Gform4."n";


といった文字列を作るときもfor文で簡単にできます。


lb_post.phpは、エスケープ処理などを行っていません。
もし、このプログラムを強化して使う場合は、危険なコードをエスケープするようにここでしておけばOKです。

ちなみにlb_post.phpの中身はたったこれだけ

<?php
include($dir."lb_form.php");
$san="^[0-9]+$";
//ポストされた個数が、半角数字か調べる
if(ereg($san,$_POST[$FN])){
$maxform=$_POST[$FN];
for($i=0;$i<=$maxform;$i++){
$Gform[$i] = $HTTP_POST_VARS[$FN.$i];
}
}
?>


スポンサードリンク

| フォームデータ加工 | comments:6 | trackbacks:0 | TOP↑

すごい。
フォームの受け渡しもこんな方法があるなんて知りませんでした。
ありがとう。

| ナレッジ | 2007/10/28 20:07 | URL | ≫ EDIT

かなり便利ですね。
使わせてもらいます。

| 月光 | 2007/10/29 16:46 | URL | ≫ EDIT

難しい・・・

| 名無しのPHP人 | 2007/11/06 09:34 | URL | ≫ EDIT

HTML生成のヘルパ関数を作るのは良くやる手だけれども
そういった受け渡しがしたいなら、そもそもポストするパラメータを
配列で渡してあげれば良いだけだと思うけれどもなぁ。

| Aileron | 2008/01/04 15:21 | URL | ≫ EDIT

がんばってますね~

がんばってますね~

| coolweb | 2008/01/07 00:43 | URL | ≫ EDIT

承認待ちコメント

このコメントは管理者の承認待ちです

| | 2010/06/08 01:49 | | ≫ EDIT















非公開コメント

http://phpnet.blog91.fc2.com/tb.php/16-e593b4c8

PREV | PAGE-SELECT | NEXT