假设
您有一个包含各种输入的 HTML 表单。该action属性form指向包含以下代码的 PHP 文件。
关于代码的说明
此代码首先创建一个数组,该数组保存通过 POST 提交的各种输入的name。getFormData()然后被调用,其中传递了必需的字段。在函数内部,创建一个数组来保存与表单相关的各种数据片段。$formData['valid'] 是一个布尔值,表示是否提供了所有数据并且数据有效,$formData['fields'] 是一个数组,其键是输入的名称,其值是来自 POST 数据的相应值,$formData['notValidFields'] 是一个数组,将包含未传递或包含无效数据的任何输入的名称。
此逻辑可以使用正则表达式轻松扩展以检查更严格的数据,例如电子邮件地址和 URL。
<?php
$requiredFields = array('field1', 'field2', 'field3', 'field4');
$formData = getFormData($requiredFields);
function getFormData($requiredFields){
$formData = array();
$formData['valid'] = true;
$formData['fields'] = array();
$formData['notValidFields'] = array();
for($a = 0; $a < count($requiredFields); $a++){
$field = $requiredFields[$a];
if(isset($_POST[$field])){
$value = $_POST[$field];
if(empty($value)){
$formData['valid'] = false;
$formData['notValidFields'][] = $field;
}else{
$formData['fields'][$field] = $value;
}
}else{
$formData['valid'] = false;
$formData['notValidFields'][] = $field;
}
}
return $formData;
}
很棒的代码片段。输入验证是大多数人似乎不知道或不理会的事情之一。感谢发布此内容!
但是,只要涉及用户输入,最好在其他任何操作之前对输入进行清理。只需添加这行(在最上面的行上的开始 php 标记之后)
$_POST = sanitize($_POST);
并在某个地方定义这些函数。我使用的清理例程类似于 这些。
您的链接为 404 未找到
不错。我建议您添加一个示例,以了解代码片段必须包含在何处。如果是在表单中还是在操作中。再见。