php:验证 POST 的最佳方式

标签 php validation post

我一直在使用下面的代码通过 $_POST 验证我的用户输入:

if(isset($_POST['name']) && !empty($_POST['name'])) {
    $n=$_POST['name'];
}
else {
    $errors[] = "Please give a name";
}

此代码检查是否实际设置了“name”,这是显而易见且需要的。 其次,它检查用户是否在文本字段中输入了一些内容来为名称提供值。 但是,如果用户提供 SPACE ""作为输入,它会接受它,因为它不是空的,它有 SPACE。

我找到了一种正确的方法:

if(isset($_POST['name'])) {
    $n = trim($_POST['name']);
    if(empty($n)) {
        $errors[] = "Please give a name";
    }
}

else {
$errors[] = "Please give a name";
}

但是这里我重复了两次相同的错误信息,那么如何优化呢?

最佳答案

if(isset($_POST['name']) && trim($_POST['name']) !== "") {
    $n=$_POST['name'];
}
else {
    $errors[] = "Please give a name";
}

去掉空的,只做修剪。

老实说,除非你打开通知,否则你甚至不需要 isset:

    if(trim($_POST['name']) !== "") {

关于php:验证 POST 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14559623/

相关文章:

php - Magento升级脚本不升级

php - 如何将具有简单父子关系的mysql表转换为嵌套集?

javascript - 如何在客户端禁用 asp.net 验证器?

c# - 通用处理程序参数大小限制?

c# - 帮助解决简单的 restful post 问题

javascript - 如何将 Dropbox API v2 POST HTTP 请求转换为 jQuery $.ajax?

php - Netbeans PHP 断点变量值 "Evaluating..."

javascript - 如何通过 Joi 检查值是对象还是对象数组

regex - 在实时验证中使用正则表达式

php - SQL 查询中的变量 - PHP MYSQL