質問は、間違ったデータがmysqlテーブルに入力されないようにするにはどうすればいいですか?私にコードを教えてもらえますかロジックかどうかです。挿入クエリが実行される前に?PHPのフォーム検証
答えて
私が使用したい方法は、ビューに戻って自分のURLに投稿するように設定されている(これはMVCアプリケーションのコンテキストである)
- フォームこれです。
- コントローラがPOST要求を受信すると、検証が実行されます。エラーが見つからない場合は、関連するアクションが実行され、HTTPリダイレクトがブラウザに送り返され、「成功」ページが正しく送信されます。
- 検証が失敗すると、元のフォームが表示され、各フィールドに入力されたデータが表示されます。無効なフィールドにはエラーメッセージが表示されます。
"submit"という名前の送信ボタンと "yourname"という名前の入力フィールドがあると仮定すると、このようなことができます。このコードはすべて同じファイルにあります。
<?php
//Form submitted
if(isset($_POST['submit'])) {
if(!isset($_POST['yourname'])) {
//Form field 'yourname' didn't have a value
$error['yourname'] = "<p>Please provide your name.</p>\n";
} else {
//Field 'yourname' had a value, check other things
//Your other checks here (optional)
}
//No errors, process form
if(!is_array($error)) {
//Process your form
//Done processing
echo "<p>Information saved.</p>";
exit;
}
}
?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<?=$error['yourname']?>
<p><label for="yourname">Name:</label><input type="text" id="yourname" name="yourname" value="<?=htmlspecialchars($_POST['yourname'])?>" /></p>
<p><input type="submit" name="submit" value="Submit" />
</form>
これは、検証がどの程度厳しいかによって異なります。
sintaxisはかなりストレートfordwardです:セキュリティのため
if(!$var){
die("The input is not valid");
}
:フィールドが必要な場合はあなたのような条件を使用することができますので、それは悪い入力の場合は通常の機能return false
を検証し
$var = function_that_cleans_any_input($_POST['input_name']);
データベースに挿入する前にユーザーから来る文字列を常にscapeする必要があります。mysql_real_scape_stringを使用すると、非常に一般的で非常に危険なmysql injectionという攻撃を防ぐことができます。
検証するフィールドが特定の形式であることがわかっている場合は、それを検証することをお勧めします。たとえば、メールやURLの場合は、filterの機能があり、使いやすく、役立ちます。
入力がint型のケーキの場合、タイプキャスト$validated = (int)$input;
を使用してください。それはそれを行いますが、日付であれば、あなたはネイティブのcheckdate関数をPHPから取得します。
あなたが見ることができるように、いつでも日を保存できる機能があります。何かを妥当性検査するのに問題がある場合は、徹底的に調査してください。ここで
役立つかもしれないリンクされます。http://hungred.com/useful-information/php-form-validation-snippets/
- 1. PHPフォームISSET検証
- 2. PHP URLフォーム検証
- 3. PHPとjQueryのフォーム検証
- 4. サーバーサイドのフォーム検証PHPアップロード
- 5. PHP登録フォームの検証
- 6. フォーム検証PHPでjavadript
- 7. PHPフォームの検証の問題
- 8. PHPでのajaxフォームの検証
- 9. PHPフォーム:検証、提出、コンテンツの表示
- 10. フォームの検証
- 11. フォームの検証?
- 12. PHPフォーム、MailFonction、Google reCaptcha検証問題
- 13. HTML PHP自己フォーム検証エラー
- 14. フォームを検証しているphp ereg
- 15. DataSetの検証とASP.NETフォームの検証
- 16. Jquery検証でフォーム配列の検証
- 17. カスケード検証フォーム
- 18. フォーム検証
- 19. JavaScriptフォームの検証
- 20. JQueryフォームの検証
- 21. djangoのフォーム検証
- 22. jQueryのフォーム検証
- 23. JSフォームの検証
- 24. symfonyのフォーム検証
- 25. HTMLフォームの検証
- 26. Silex +フォームの検証
- 27. rich:togglePanelのフォーム検証
- 28. HTML5検証とPHP検証
- 29. 旧式フォーム検証
- 30. JavaScriptフォーム検証エラー
'IF()' + 'some_specific_function()'すべてあなたを行うことができます必要。とにかく、質問はあまりにも曖昧です。あなたはまた、「どのようにプログラムするのですか?」と尋ねるでしょう。 – zerkms
どのフィールドを検証する必要があるか(電子メール、名前、住所、電話など)、それぞれ別個のアルゴリズムが必要です。 –