は私の通常のセットです、ありがとうございました。私は基本的にカスタムフレームワークを使用します。
I特定のデータを扱うセットアップモデル。たとえば、新しい従業員を作成する従業員フォームがあるとします。私には従業員モデルがあります。モデルには、データベースに新しい従業員を生成するために必要な値が指定されています。このモデルに値がない場合、そのモデルを保存しようとすると例外がスローされます。これは私の第2層の「入力検証」です。最初の層は、単純なJavaスクリプトフォームバリデータで、値が欠落していないことを確認します。
ページへの入力(GET、POST)のために、私はこれらの衛生を扱うクラスを持っています。それは$ _POSTと$ _GETの値をすべて反復し、それらをサニタイズします(mysql_real_escape_string、PHPのstripslashes)。
今、フォームデータをhtml .. phpで設定すると、フォームデータ "配列"を処理することができます。つまり、 "employee [name]"というフォーム入力があり、そのフォームを送信すると、 $ _POST ['employee'] ['name'] ...と書いてください。現在、各フォームには、モデルに必要な固有のフィールドがあります。私は単純にモデルを呼び出し、モデルデータを$ inputClass-> post( 'employee')(配列)に設定し、データを保存します。
私はこの一般的な方法を好みます。そのセットアップが速く、簡単で、安全で動作します。
編集:また、AjaxやJavascriptのようなものは贅沢です。これらのフォームを処理する必要はありません。ユーザーに簡単に追加できます。たとえば、JavaScriptが有効な状態で保留中の場合は、ページをリロードせずにフォームを検証できます。しかし、注意してください、あなたは常にPHPを介してフォームを検証する必要があります。
http://www.freesoftwaremagazine。com/articles/book_review_pro_php_security – KomarSerjio
クライアント側の検証はすべてうまくやっていますが、最終的には正しいことをクライアントに依存しています - 「名前」が空白でないようにする必要がある場合、これまでクライアントに何かを依頼したり、サーバー上のすべてを検証したりしないでください。 –