我有一个表单(现在只有一个,但是会有更多类似的参数)并且我使用jQuery验证验证它(它太大了,我只使用jQV验证一个字段),这个表单是使用AJAX发送的。我有这种形式5输入:
文本输入:用户名,由远程单独的PHP脚本验证 - 它检查该用户是否存在于不同站点的数据库中,如果存在,还检查该用户是否指定了某个用户数据,但这不是很重要
2次单选按钮(我的意思是2x 2单选按钮),在PHP中验证(稍后代码)
2次PickAColor表单,使用PHP仅使用regexp进行六色表验证
我有一个问题。有没有办法在PHP中以更多,复杂的方式检查这些数据?因为,正如我所说,我以类似的方式验证它们:
if($period != "3month" && $period != "7day") {
echo '<div class="alert">Wrong period!</div>';
exit;
}
实际上我现在写的这个表格相当简短,但我也有一些非常大的表单,而如果就像上面那样,它甚至可以占用50行,而且非常糟糕。其中大多数在 if 中都有类似的表达式,这意味着我检查表单发送的值是否在表单提供的可能选项列表中(有人可以更改 value 参数) Firebug并称自己为黑客......)。这很复杂,我不知道怎么说,但我想你了解我。那么,再一次 - 是否有任何意义在PHP中验证它,如果是这样,有没有更好的方法来验证它?或许你还有其他一些建议?非常感谢你的帮助。
答案 0 :(得分:1)
你必须认为你的用户可以在那里提交任何内容,并使代码更清晰,更加面向MVC(并且可重用),你需要在app端进行验证,jQuery中的泛型函数只是向用户显示错误,所以我建议你做一个发送到你的php应用程序的表格的ajax帖子,一个api控制器,重新获取表单值,使用模型验证并返回带有jew表单值的对象(如果你需要清理)每个字段有任何错误,然后你只需输出json:
{
errors: {
name: "Already used name",
field2: "Some bad text provided"
}
}
然后,您只需遍历错误并设置为每个错误文本的已存在的占位符,如
<spam id="name-error" class="error"></spam>
<input type="text" name="name" value=""/>
然后您有一个验证代码,您可以在提交表单时重复使用。