0

フォームから取得したデータをサニタイズするためのコードを書くことに腹を立てています。フォームには、「sender_countryCode」という名前の入力フィールドがあり、USA、FR、EN などの 2 つまたは 3 つのテキスト文字しか含めることができません...次のコードは、文字列とは異なるすべてのものをブロックする必要がありますが、「my text」をフィールドは何もフィルターを通過しません!

if  (isset($_POST["sender_countryCode"])){
    $var    =   $_POST["sender_countryCode"];
    $var    =   stripslashes($var);
    $var    =   htmlentities($var);
    $var    =   strip_tags($var);
    $var    =   filter_var($var, FILTER_SANITIZE_STRING);
    $sender["countryCode"] = $var;
    unset($var);
};
4

1 に答える 1

2

これは機能します:) ...申し訳ありませんが、少し遅くなりましたが、回答がなかったことがわかりました。これが私の解決策です。

function maxLengthCheckUp($this) {
    if ( strlen($this) <= 4){
        return TRUE;
    }
}
if (isset($_POST["sender_countryCode"]) 
  && !preg_match('/\s/',$_POST["sender_countryCode"]) 
  && maxLengthCheckUp($_POST["sender_countryCode"])) {
    $var    =   $_POST["sender_countryCode"];
    $var    =   stripslashes($var);
    $var    =   htmlentities($var);
    $var    =   strip_tags($var);
    $var    =   filter_var($var, FILTER_SANITIZE_STRING);
    $sender["countryCode"] = $var;
    echo $sender["countryCode"];
    unset($var, $sender);
};//end of if(...

次の要素を使用してフォームを作成します。

<input type="text" name="sender_countryCode" id="sender_countryCode" />
<input type="submit" name="Submit" id="Submit" value="Submit" />

フォームを送信...通常のフォームを作成....上記のphpコードを使用するだけです。やってみて :)

于 2013-03-25T21:18:54.250 に答える