1

私は Web プログラミングの初心者を少し上回っており、フォームの検証についてはあまり知りません。私の調査では、フォーム データを検証するにはさまざまな方法があり、一部の方法はデータをどう処理するかによって異なるようです。mysql_real_escape_string次に、「PDO」と呼ばれるもののような非推奨の機能を使用する必要があり、全体が実に複雑です。

では、基本的にフォームデータを検証する標準的な方法である一連の関数が存在することは合理的/実現可能でしょうか? このような...

function validate_for_sql()
function validate_for_email()
function validate_for_browser()

多分もっとあるはずです(整数用の何か?)。理想は、SQL インジェクションのようなものであり、その他の厄介なことはすべて、コーディング コミュニティによって開発され、コーディング コミュニティのために開発された、一般的に受け入れられている堅牢な関数のセットを介して処理できます。

これは実行可能ですか?それはすでにどこかに存在していますか..おそらく隠された隠れ家の中にありますか?もしそうなら、誰かがこの情報にアクセスするために必要な秘密のパスワードを私に電子メールで送信できますか? :)

4

3 に答える 3

1

あなたの質問を要約してみましょう。

私が要約したことが本当なら、答えはjQuery Validationです。名前が示すように、これを機能させるには jQuery と jQuery Validation が必要です。

以下は、このツールの使用方法の例です。

HTML :

<form id="myForm">
    <input type="text" name="currency">
    <input type="text" name="amount">
</form>

Javascript:

$("#myForm").validate({
    rules: {
        "currency": {
            minlength: 3,
            required: true
        },
        "amount": {
            number: true
        }
    }
});

デフォルトでは、検証は KeyUp でトリガーされます。したがって、ユーザーがフィールドの通貨を変更し、上記のルールのいずれかを破った場合、jQuery Validation はビルド前の通知メッセージを自動的に表示します。

上記のルールのビルド前のメッセージは次のとおりです。

  1. minlength: 少なくとも 3 文字を入力してください
  2. 必須: このフィールドは必須です
  3. 番号: 有効な番号を入力してください

通貨が為替レートの表で利用可能かどうかを検証したい場合はどうしますか?

答えは: カスタム検証メソッドを追加するだけです。

$.validator.addMethod("checkCurrency", 
    function(value, element) {
        var result = false;
        $.ajax({
            type:"GET",
            async: false,
            url: "012_ajax.php", // script to validate in server side
            data: {currency: value},
            success: function(data) {
                result = (data == "1") ? true : false;
            }
        });
        // return true if currency is exist in database
        return result; 
    }, 
    "Currency is not exist."
);

$("#myForm").validate({
    rules: {
        "currency": {
            minlength: 3,
            required: true,
            checkCurrency: true
        },
        "amount": {
            number: true
        }
    }
});

このコードでは、ユーザーがテーブルに存在しない通貨を入力するたびに、フォームには常に「通貨が存在しません」というメッセージが表示されます。


最後の質問: このプラグイン用のカスタム メッセージを作成できますか?

答えはイエスです。

$("#myForm").validate({
    rules: {
        "currency": {
            minlength: 3,
            required: true,
            checkCurrency: true
        },
        "amount": {
            number: true
        }
    },
    messages: {
        "currency": {
            minlength: "Currency should at least 3 char or more",
            required: "Currency is required"
        },
        "amount": {
            number: "Amount must be number"
        }
    }
});

ユーザーが上記のルールに違反するたびに、フォームは上記のコードの状態としてメッセージを提供します。

このプラグインの重要な点は、すべてのフォーム検証が行うべきことと同様に、データが検証されない限りデータが送信されないことです。まあ、ユーザーがブラウザからJavaScriptをオフ/無効にしない限り。:)


アップデート

上記の答えは、クライアント側の検証用です。

サーバー側の検証については、インターネット上に PHP フォーム検証スクリプトがあり、その中には次のものがあります。

  1. http://html-form-guide.com
  2. ソアレス

それらには組み込みの検証ルールがあり、ユーザーはカスタムのものを追加できます。

うまくいけば、この助け。

于 2013-07-21T03:45:07.020 に答える
0

あなたの質問を理解できれば、はい、同様のタイプの入力の値をパラメーターとして関数に渡すことで可能です。ウェブを検索すると、これを行う既製の関数がいくつか見つかると思います。しかし、作るのにそれほど時間はかかりません。また、作ることでスキルが向上します。実際のところ、ASP.NET には組み込みの検証機能がありますが、残念ながら PHP にはありません (私の知る限り)。

于 2013-06-30T15:47:54.993 に答える