gpt4 book ai didi

php - 处理很多字段

转载 作者:行者123 更新时间:2023-11-29 02:35:44 27 4
gpt4 key购买 nike

基本上我有几个大表单(提交的很多字段)需要处理,它们非常相似但可能有一个或两个字段不同。首先,所有字段都被转义并分配给其原始名称的变量(因此 $_POST['f_name'] 将是 $f_name)。然后我需要验证数据,比如某些必填字段必须存在,某些字段非常匹配(确认密码/电子邮件),某些字段必须通过正则表达式检查。我通过一个很长的 if/else 语句来做到这一点,其中每个失败都有它自己的错误消息。现在我当然想避免这种笨拙代码的重复,而代之以一些循环功能,这将更容易编辑和维护。

然而,这会带来一些问题,尤其是执行检查和分配个别错误消息时。

我很想听听有关您将如何开发此类验证/错误报告功能的建议。

下面是代码的简短版本:

$name = mysqli_real_escape_string($mysqli, $_POST['name']);
$password = mysqli_real_escape_string($mysqli, $_POST['password']);
$password_re = mysqli_real_escape_string($mysqli, $_POST['password_re']);

if ($name == '') :
$data = "Please enter name";
elseif ($password != $password_re) :
$data = "Passwords don't match";
endif;

最佳答案

首先我会创建一个函数来清理你的帖子数组。

$clean_post = sanitize($_POST);

function sanitize($input) {
if (is_array($input)) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
}
else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$input = cleanInput($input);
$output = mysql_real_escape_string($input);
}
return $output;
}

接下来,我将添加与字段同名的 div,并在 $data 数组中设置错误变量,并删除它们之间的 ifs,就我个人而言,我讨厌用勺子喂我的表单错误。

if ($name == '')
$data['name'] = "Please enter name";

if ($password != $password_re)
$data['password] = "Passwords don't match";

最后,我会将 div 的内容设置为 $data 数组值。

<div><?=$data[name];?></div>
<input type="text" name="name" value="<?=$clean_post[name];?>">

<div><?=$data[password];?></div>
<input type="password" name="password" value="<?=$clean_post[password];?>">
<input type="password" name="password_re" value="<?=$clean_post[password_re];?>">

希望对你有帮助

关于php - 处理很多字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5372692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com