如何在PHP

时间:2018-10-20 03:27:50

标签: php forms validation

我正在验证网站表单(仍在本地服务器上)。我主要使用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";
    }
}

1 个答案:

答案 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";
    }
}

此外,请记住要实际调用清理函数。