3

我有一个表单(现在只有一个,但会有更多类似参数),我使用 jQuery Validation 验证它(这个词太大了,我只使用 jQV 验证一个字段),这个表单是使用 AJAX 发送的。我有这种形式的 5 个输入:

  • 文本输入:用户名,由单独的 PHP 脚本远程验证 - 它检查该用户是否存在于不同站点的数据库中,如果存在,还检查该用户是否有一些指定的数据,但这并不重要

  • 在 PHP 中验证的 2 次单选按钮(我的意思是 2x 2 单选按钮)(稍后代码)

  • 2 次 PickAColor 表单,也仅使用 PHP 和正则表达式进行验证,用于 hexcolors

我有一个问题。有没有办法以更复杂的方式在 PHP 中检查这些数据?因为,正如我所说,我以类似的方式验证它们:

if($period != "3month" && $period != "7day") {
  echo '<div class="alert">Wrong period!</div>';
  exit;
}

其实我现在写的这个表格很短,但我也有一些非常大的表格,上面这样的表格甚至可以占用50行,这很糟糕。它们中的大多数在if中都有类似的表达式,这意味着我检查表单发送的值是否在表单提供的可能选项列表中(有人可以在 Firebug 中更改参数并称自己为黑客......)。这很复杂,我不知道该怎么说,但我想你明白我的意思。所以,再一次 - 在 PHP 中验证它有什么意义,如果是这样,有没有更好的方法来验证它?或者,也许您还有其他建议?非常感谢你的帮助。

4

1 回答 1

1

伙计,您必须认为您的用户可以在那里提交任何内容,并且为了使代码更清晰,更面向 MVC(和可重用),您需要在应用程序端进行验证,并在 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=""/>

然后,您有一个验证代码,您可以在提交表单时重复使用该代码。

于 2013-05-30T21:22:15.603 回答