我正在验证网站表单(仍在本地服务器上)。我主要使用w3schools.com的帮助。但是我注意到,如果用户输入1个或多个空格字符,我的表单就会接受输入。
我知道trim()函数会从数据的开头和结尾删除空间,并且效果很好。但是在用户仅输入一个或多个空白字符的情况下,php验证会将其返回为空白字段。
下面是我的代码:
function sanitize($input){
$input = trim($input);
$input = stripcslashes($input);
$input = htmlspecialchars($input);
return $input;
}
//Full Name Validation
//if field is empty and contains only whitespace
if ($_SERVER["REQUEST_METHOD"] == "POST"){
if (empty($_POST["fname"])){
$fname_err = "Cannot be empty";
}
}
答案 0 :(得分:0)
您可以使用ctype_space函数。如果字符串中的所有字符都产生空格,则返回true:http://php.net/manual/en/function.ctype-space.php
尝试更新第二条if语句以也执行ctype_space检查:
//Full Name Validation
//if field is empty and contains only whitespace
if ($_SERVER["REQUEST_METHOD"] == "POST"){
if (empty($_POST["fname"]) || ctype_space($_POST["fname"])){
$fname_err = "Cannot be empty";
}
}
此外,请记住要实际调用清理函数。