1

我目前正在尝试一些通用的方法来验证和清理我的表单输入。当然,有数百种甚至数千种方法可以做到这一点,我给自己分配的特殊挑战涉及我的帖子数据并array_map()在我将其引入时立即运行。我有自己的自定义函数设置为运行filter_var()preg_match()根据我的需要运行在我 array_map() 修剪它之后的数据,然后mysqli_real_escape_string()在我运行我的 SQL 之前运行它来处理它。你会注意到我htmlspecialchars()一遍又一遍地跑。是否可以在我的帖子数据上同时运行修剪和 htmlspecialchars。我要提高效率,所以欢迎任何其他建议。

// Trim all the incoming data
$trimmed = array_map('trim', $_POST);

// Assume invalid values
$un = $fn = $ln = $e = $pn = $bio = FALSE;

// Check username
$un = validateUsername(htmlspecialchars($trimmed['uname']));

// Check first name
$fn = validateName(htmlspecialchars($trimmed['fname']));

// Check last name
$ln = validateName(htmlspecialchars($trimmed['lname']));

// Check email address
$e = validateEmail(htmlspecialchars($trimmed['email']));

……等等等等

4

1 回答 1

6

在您的 array_map 中使用自定义函数,如下所示:

function sanitize($input) {
    return htmlspecialchars(trim($input));
}

// Sanitize all the incoming data
$sanitized = array_map('sanitize', $_POST);
于 2013-06-09T04:22:46.353 回答