创建大量的大写和小写字母以及0-9,以及任何其他允许的字符进行表单验证是否更安全?与使用ctype_alnum()
相反。为了防止sql注入,那就是。
示例:
<?php
$inputValue = "{$userValue}";
$set = array(a,b,c,d...A,B,C,D....0,1,2,3...);
if(!in_array($inputValue, $set){
echo "Please submit only letters or numbers.";
?>
答案 0 :(得分:1)
我不经常这样说,但是在这里使用a regex check可能会更容易:
^(BOOL succeeded, NSError *error)
或者,如果您坚持使用当前路线,则可以通过执行以下操作来简化阵列声明:
if (preg_match('~[^\w\d]~', $inputValue)) {
echo 'Please submit only letters or numbers.';
}
答案 1 :(得分:0)
您的问题的答案是否定的,两个选项之间的安全性没有差异。还值得一提的是,这不适合防止SQL注入 - 因为您应该使用预准备语句。
答案 2 :(得分:0)
您只需使用real_escape_string
。
在mysql中
$name = mysql_real_escape_string($_POST['username']);
同时检查此related question in Stack Overflow
在Mysqli
同时阅读此Example
$user = $_POST['username'];
$name = $mysqli->real_escape_string($user);
或者像这样使用 ctype_alnum()
同时阅读此Example
<?php
$inputValue = '$userValue';
if (ctype_alnum($inputValue))
{
echo "Only letters and numbers A-Z, a-z and 0-10";
} else
{
echo "Contain atleast one wrong letter";
}
?>