Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用过滤器\u清理\u字符串清理输入_Php_Http Post_Forms_Sanitize - Fatal编程技术网

Php 使用过滤器\u清理\u字符串清理输入

Php 使用过滤器\u清理\u字符串清理输入,php,http-post,forms,sanitize,Php,Http Post,Forms,Sanitize,我对写一些代码来清理来自表单的数据感到恼火。 在表单中,我有一个名为“sender_countryCode”的输入字段,该字段只能包含2或3个文本字符,如USA、FR、EN等。。。 下面的代码应该阻止与字符串不同的所有内容,但是如果我在字段中写入“我的文本”,没有任何内容可以通过过滤器 if (isset($_POST["sender_countryCode"])){ $var = $_POST["sender_countryCode"]; $var = s

我对写一些代码来清理来自表单的数据感到恼火。 在表单中,我有一个名为“sender_countryCode”的输入字段,该字段只能包含2或3个文本字符,如USA、FR、EN等。。。 下面的代码应该阻止与字符串不同的所有内容,但是如果我在字段中写入“我的文本”,没有任何内容可以通过过滤器

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);
};
这是有效的:)…对不起,我迟到了,但我看到没有人接。这是我的解决办法

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(...
函数maxLengthCheckUp($this){

如果(strlen($this)我在您的代码中没有看到任何限制它为2-3个字符的内容?
过滤器\u清理\u字符串
只是简单地去除标记并进行选择性编码,这与限制字符串的长度无关您是对的,但让我们明天使用最大长度,主要问题是我在表单中写入了“我的字符串”,代码将$sender[“countryCode”]显示为空!请尝试在每条语句后使用断点或仅
echo$var;
查看失败的地方。我看不出您的代码有任何错误。
<input type="text" name="sender_countryCode" id="sender_countryCode" />
<input type="submit" name="Submit" id="Submit" value="Submit" />