プロが教える店舗&オフィスのセキュリティ対策術

教えて下さい。

ある登録ページを作成しており、そこには必須入力項目が存在
します。
その為、確認ボタンを押した時点で必須入力チェックをかけて
エラーメッセージを同じ画面に表示させようと考えていますが
何か良い方法はありますでしょうか?

簡単なサンプルを教えて頂ければ助かります。 
(やはり"javascript"の方でなければならないのであれば、
それを教えて下さい)

よろしくお願いします。

A 回答 (4件)

JavaScriptでやらないといけないし、PHP側でも同じ事をしなければ、そのシステムの脆弱性になってしまいます。



テキストフィールドなら
document.getElementById('テキストフィールドのid属性').value
に値が設定されているか見ればいいと思います。

値が無いのならば、適当な場所にエラーを表示させればいいのでは
無いでしょうか。エラーを表示する場所にdivを置いておき、
document.getElementById('divのid属性').innerHTML = "エラーだよ";
とします。

なお、PHP側では$_RESUTST['テキストフィールドのname属性']に
値があるかどうかを調べます。値があるかどうかより、値が正しい
値かどうか(例:数字を入れるところに文字が入ってないか等)を
調べる方がいいと思いますが・・・。

そんなかんじです。
    • good
    • 0

やったほうがユーザビリティが高いためやっているだけで


javascriptでやる必要はありません。
フォームをサブミットして、受けたデータをPHPのみで検証する
方式でも十分実用に耐えうる仕組みは可能です。

PHPでチェックするのであれば、想定されるデータをもとに、
送られてきたデータをチェックするだけの話なので非常にベタな
チェックプログラムですから、そんなに難しくないでしょう。

実際にご自身でソースをかいてみて詰まったところで質問なさるとよろしいかと。
    • good
    • 0

がると申します。


PHPは特に「HTMLとロジックを混ぜて書ける」ために色々と誤解が発生しやすいのですが。
基本的には最低でも2本のプログラム(PHP)と二つのHTMLを用意してください。
仮に。入力画面のhtmlをinput.html、完了画面をfin.htmlとします。

一本目のプログラム「input.php」は、非常に単純です。とりあえず「input.htmlを出力する」だけでよろしいかと思います。

二本目のプログラム「fin.php」では、少々複雑な挙動をさせます。
まず入力チェック。
もしここでNGの場合、input.htmlを基準に「入力値をvalueに入れておいてあげる(除く「パスワード、クレジットカード情報などの隠匿性の高い情報」)」+「適切なエラーメッセージを出力させる」で、終了します。
入力チェックがOKなら、情報を適切に処理します。

こういった挙動をさせる場合、テンプレートエンジンなどを用いるのが大変に有効かと思われます。

あと。JavaScriptは「使わないことを前提にしたほうが無難」です。間違っても「JavaScriptでやる必要がある」なんてことはありえません。
    • good
    • 0

ANo.3さんと同様な回答になるかもしれませんが・・・


私の場合、PHPスクリプトは1つで、サブルーチンによって分岐処理を行っています。
また、ロジック(PHP)とビュー(画面)は極力分離して処理を行ってます。
例えば、「入力内容を確認する」ボタンを押下された時の処理は、入力チェックを行い、
エラー項目をエラーメッセージ変数に格納しておきます。
後は、そのエラーメッセージ変数の内容に応じて以下の処理に分岐させています。

●エラーが存在しない場合
→確認画面出力。

●エラーが存在する場合
→エラーメッセージを含む入力画面再出力。
※入力画面、エラーメッセージを含む入力画面はエラーメッセージを表示するか否かの違
いのみの場合もあるかと思うので、共通のビュー(画面)を使用し、切り替えて表示を行っ
ています。

こんな感じで如何でしょう?
    • good
    • 0
この回答へのお礼

参考になりました。 ありがとうございました。

お礼日時:2006/12/20 09:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!