我正在使用preg_match来限制用户输入,除了不允许使用特殊字符'&'之外它运行良好。我试过逃避角色,但preg_match仍然不会让它通过。我知道其余代码的工作原理是测试它没有'&'字符。
function validateInput($name){
if (preg_match("/^[A-Za-z0-9]+[A-Za-z0-9 \(\)\&\',\.-]{0,75}$/", $name) === 1){
$val = 1;
} else {
$val = 0;
echo 'Invalid input: <strong>'.$name.'</strong>. Only letters, numbers, and certain characters ( ,\' . ( ) & - ) are allowed.<br>';
}
return $val;
}
答案 0 :(得分:0)
问题在于将输入存储在变量中时使用了htmlentities()
。
当替换为mysqli_real_escape_string()
时,它可以正常工作。