【发布时间】:2021-10-28 17:34:29
【问题描述】:
我正在尝试在 filter_input() 中使用 CALLBACK 函数并收到此错误:
警告:filter_input():第一个参数应该是在线 C:\xampp\htdocs\TEST.php 中的有效回调 ...
尝试
<form method="POST" name="textfield" id="textfield" action="" required>
<label for="name">Name:</label><br>
<input type="text" name="name" id="name" maxlength="255" size="25">
<br>
<button type="reset">Reset!</button>
<br>
<button type="submit" name="submit" id="submit">Submit!</button><br>
</form>
<?php
if($_SERVER['REQUEST_METHOD']==='POST')
{
$name = $_POST['name'];
function FILTER_VALIDATE_STRING($data)
{
if(is_string($data))
{
$value = TRUE;
}
else
{
$value = FALSE;
}
GLOBAL $value;
return $value;
}
echo FILTER_VALIDATE_STRING($name);
if(!filter_input(INPUT_POST,"name",FILTER_CALLBACK,
"FILTER_VALIDATE_STRING"))
{
die("Enter a valid STRING!");
}
}
?>
我正在尝试在函数 filter_input() 中创建自定义验证器。 到目前为止,我们得到了这些内置的 php: A.
filter_input(INPUT_POST,"input",FILTER_VALIDATE_URL)
B.
filter_input(INPUT_POST,"input",FILTER_VALIDATE_EMAIL)
存在上述 2 个验证器。但不是下面这个:
filter_input(INPUT_POST,"input",FILTER_VALIDATE_STRING)
我知道,我们有 STRING SANITIZER:
filter_input(INPUT_POST,"input",FILTER_SANITIZE_STRING)
但我不想清理用户(表单输入器)的输入。我想验证它。 所以现在尝试构建我自己的 FILTER_VALIDATE_STRING 以在 filter_input() 函数中使用。 我知道还有其他验证字符串的方法,但我想学习如何构建自己的函数或将其与 filter_input() 函数一起使用。这就是现在的任务。 如果有人编辑我的代码作为此问题的修复或答案,我将不胜感激。
【问题讨论】:
-
不推荐使用常量FILTER_SANITIZE_STRING。请停止使用。
标签: php string forms callback filter-input