我们说这个代码是在按下提交按钮后执行的,目的是消毒:
<?php
$yourname = check_input(filter_input(INPUT_POST, 'yourname', FILTER_SANITIZE_STRING));
$email = check_input(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL));
$likeit = check_input(filter_input(INPUT_POST, 'likeit', FILTER_SANITIZE_STRING));
$comments = check_input(filter_input(INPUT_POST, 'comments', FILTER_SANITIZE_STRING));
function check_input($data) {
$data = trim($data) . stripslashes($data) . htmlspecialchars($data);
return $data;
}
?>
考虑到正在应用filter_input函数,在这种情况下check_input($ data)函数是多余的吗?
答案 0 :(得分:3)
check_input
函数的当前代码非常无用:您将输入重新连接3次,但应用了不同的过滤器
function check_input($data) {
$data = trim($data) . stripslashes($data) . htmlspecialchars($data);
return $data;
}
关于filter_input()
:使用FILTER_SANITIZE_STRING
就足够了。来自documentation:
剥离标签,可选择剥离或编码特殊字符。
这基本上就是你想要的功能。
不要忘记注意SQL注入攻击。按预期使用prepared statements可以确保您的安全。