2013-05-30 24 views
3

我有一个表格(现在只有一个,但会有更多类似的参数),我也使用jQuery验证验证(太大的话,我验证使用jQV只有一个字段),这种形式发送使用AJAX。我在这种形式5个输入:表单验证 - jQuery验证是否足够,以及如何整洁地验证PHP中的数据?

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

  • 2倍单选按钮(我的意思是2×2个单选按钮),其在PHP(代码后)验证

  • 2倍PickAColor形式,这是也验证使用PHP只与正则表达式为hexcolors

我有一个问题。有什么办法更多,那么,复杂方式来检查在PHP这个数据?因为,正如我所说的,我验证他们在类似的方式:

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

其实这种形式现在我写很短,但我也有一些非常大的,并且如果的这样一个上面甚至可能需要50行,而且非常糟糕。他们中的大多数都有类似的表述中如果,这意味着我检查,如果通过形式发送的值是由形式提供可能的选项列表中(有人可以改变参数在Firebug和自称黑客...)。这很复杂,我不知道该怎么说,但我认为你理解我。所以,再次 - 在PHP中验证它是否有意义,如果有,有没有更好的方法来验证它?或者,也许你有其他建议?非常感谢你的帮助。

+2

这取决于你的听众。如果你能保证你的观众永远不会试图绕过你的验证,那么jQuery就足够了。如果您无法确定,那么您绝对需要使用PHP验证服务器端,并且不信任来自客户端的任何内容。 – crush

回答

1

你必须认为你的用户可以在那里提交任何东西,并使代码更清晰,更多MVC导向(和可重用),你需要在应用程序端的验证,以及jQuery中的泛型函数只显示错误用户,所以我建议你用发送到你的PHP应用程序的表单发送一个ajax post到一个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=""/> 

然后你有一个验证码,你可以在表单提交时重用。

+0

感谢您的建议。我刚刚做了两堂课,几乎和你说的一样。非常感谢 :) – tuptus