PHP POST表单验证循环优化:139个输入字段的代码简化
批量表单字段的循环优化方案(PHP)
我是PHP新手,正在开发一个测试用的简单应用,表单里包含139个命名为val1至val139的输入字段。重复编写139次相同的验证和表单代码效率极低,于是尝试用for或foreach循环优化代码,最终成功解决问题,以下是原代码和优化后的实现:
原验证代码
if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["val1"])) { $err_val1 = "Error"; } else { $val1 = test_input($_POST["val1"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; }
原表单代码
<div class='col-lg-1 center'> <label>1</label> <input type='text' class='form-control' name='val1'> <span class='error'><?php echo (!empty($err_val1)) ? 'Error' : '';?></span> </div>
优化后验证代码
$errors = []; // 生成包含val1到val139的字段数组 $fields = []; for ($i = 1; $i <= 139; $i++) { $fields[] = 'val' . $i; } $values = []; // 初始化所有字段值为空 foreach ($fields as $field) { $values[$field] = ""; } if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach ($fields as $field) { if (empty($_POST[$field])) { $errors[] = $field; } else { // 保留输入过滤逻辑 $values[$field] = test_input($_POST[$field]); } } if (empty($errors)) { // 执行SQL插入操作 // ... execute SQL INSERT statement ... } }
优化后表单代码
for ($i = 1; $i <= 139; $i++) { echo "<div class='col-lg-1 center'>"; echo "<label>".$i."</label>"; echo "<input type='text' class='form-control' name='val".$i."' value='".$values['val' . $i]."'>"; if (in_array('val'.$i, $errors)): echo "<span class='error'>Error</span>"; endif; echo "</div>"; }
内容的提问来源于stack exchange,提问作者mr_cabez
相关产品推荐
相关产品推荐

