• 締切済み

変数の形を確認したい!

ユーザがフォームで登録した、フィールド各々が、 数字型であったり、テキスト型であったり、 誤った形で登録されないように、 データベースに行く前に、PHPで確認したいのですが、 何かいい方法はないでしょうか?

みんなの回答

回答No.3

pear ライブラリの中の HTML_QuickForm を使ってみてはどうでしょう? これは、フォームの部品生成とヴァリデーションができるクラスです。 例を挙げると、 require_once "HTML/QuickForm.php"; $form = new HTML_QuickForm('form', 'get'); $form->addElement('text', 'Name', 'あなたのお名前は?'); $form->addElement('reset', 'btnClear', 'クリア'); $form->addElement('submit', 'btnSubmit', '送信'); $form->addRule('Name', '名前の入力が必要です', 'required'); $form->addRule('Name', '名前は、英文字です', 'lettersonly'); $form->display(); こんな感じで、入力欄の必須と入力欄の英文字チェックをしています。 正規表現の制限ももちろん使えますし、javascript でチェックすることもPHP 側でチェックもできます。 具体的には、下記のURLから見てください。 フォーム周りが、かなり楽になります。 http://www.planewave.org/translations/quickform/html_quickform.html

参考URL:
http://www.planewave.org/translations/quickform/html_quickform.html
回答No.2

簡単な入力チェックは、クライアントのJavascriptでの正規表現を用いたチェックをお勧めします。 PHPでも同じような正規表現でのチェックは可能です。 たとえば、正しい整数の表現かどうかをチェックするんでしたら、 preg_match('/^[+-]?(0|[1-9]\d*)$/', チェックしたい文字列) でするとか。 preg_*** は、perl 互換の正規表現で、かなり協力です。 正規表現の記法については、「perl 正規表現」で検索すれば、いくらでも出てきます。 参考URLは、PHPの関数のマニュアルです。

参考URL:
http://php.s3.to/man/ref.pcre.html
回答No.1

// 型判断というより正規表現による入力値妥当性確認を行っています。 // 成型した複雑な値を、妥当性確認した後、エンコードしてDB登録すると思いますので。 function my_varidator($dat) { $rtn = ereg("^[0-9]$", $dat); return $rtn; } $chk_a = my_varidator('1'); $chk_b = my_varidator('1'); // TRUE? or FALSE? print $chk_a ? 'A=>YEAH' : 'A=>BOO'; print $chk_b ? 'B=>YEAH' : 'B=>BOO'; Tips:フォームをFlashでつくり、入力文字制限させるとちょっと安心。

関連するQ&A

専門家に質問してみよう