ソリッドフォームの検証に実際に最適な方法は何だろうと思っていました。
JavaScriptは非常に優れていますが、操作したり無効にしたりできるため、確実な検証の基盤にはなりません。
PHPでデータをチェックし、エラーが発生したときにフォームに再入力すると、投稿フォームにいくつかの問題があります。
- フォームがリダイレクトせずに表示された場合、ユーザーがデータを再送信したい場合は、F5に確認ボックスが表示されます。これはあまり美しくありません。
- ユーザーが再びフォームにリダイレクトされた場合、データは
GET
またはによって送信される必要がありますPOST
。を使用POST
すると、上記のF5問題が再び発生します。を使用すると、内部GET
で値を転送するときに問題が発生します(PHPは符号の後に別のパラメーターを推測します)&
- 3番目の方法は、データをデータベースに保存することです。たとえば、SUBMITTRIALSなどです。ただし、リダイレクト後に実際にデータをクリアする必要があります。
別の問題は、フォーム自体の再入力に伴います。次のようなコード:
echo "<input type='text' value='".$val."' />";
$val
変数にアポストロフィを含む値が含まれている場合、これは非常に問題になります。これにより、無効なHTMLが生成されます。
ご覧のとおり、フォーム検証シナリオでは失敗する可能性が非常に高くなります。冒頭で説明したように、フォーム検証を処理するための最も信頼できる方法は何でしょうか。