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