正在寻找一种方法将$$key
更改为类似$$key_error
的内容,以便变量在foreach循环之外看起来像:$name_error
。
这是我到目前为止所做的:
foreach ($_POST as $key => $value) {
$$key = strip_tags(mysqli_real_escape_string($mysqli, $value));
if (empty($value)) {
// change variable below to something like $$key_error ($$name_error)
$$key = 'is-invalid';
} else {
$$key = "value='$value'";
}
}
当输入为空时,用户将返回到注册表单,空的输入将具有红色引导程序边框。当一个字段不为空时,该值仍然存在,因此他们不必全部完成。
<input type="text" name="name" class="form-control form-control-lg <?=$name?>" style="text-align:center;" placeholder="Voor- en achternaam" <?=$name?>>
我希望这一切都有道理:)
答案 0 :(得分:1)
使用数组。
$errors = [];
$values = [];
foreach ($_POST as $key => $value) {
// validation check for $value
if (/*validation check fails*/) {
$errors[$key] = 'error message specific to this field';
} else {
$values[$key] = htmlspecialchars($value);
}
}
然后在表单中,检查与控件名称匹配的数组键。
<input type="text" name="example"
class="<?= isset($errors['example']) ? 'is-invalid' : '' ?> other classes"
value="<?= $values['example'] ?? '' ?>">
如果您愿意,也可以输出特定的错误消息。
<div class="error"><?= $errors['example'] ?? '' ?></div>