我正在使用PHP Laravel在服务器端实现完整而详细的验证。建议客户端验证应该用于更好的用户体验。我应该走多远?我应该复制客户端的每条规则吗?或者只有HTML5基本表单验证就足够了?
答案 0 :(得分:2)
我为用户体验添加了Javascript验证。我总是添加后端验证,以便当用户关闭javascript或其他进程尝试发布到后端时,直接在后端进行验证。
答案 1 :(得分:2)
客户端验证总是在浏览器上执行,并且会阻止您从浏览器提交无效数据 - 用户体验变得更好,因为它需要很短的时间来验证,您可以使用JS或HTML5(适用于所有条件),但有时人们可以通过检查和编辑元素来删除所需的数据。
现在,服务器端验证也是强制性的,因为我们不应该允许无效数据。
最后,HTML5足以进行客户端验证
答案 2 :(得分:1)
您可以在客户端使用服务器端验证:
<html>
<body>
Test POST<br>
<form id="form1" action="/" method="POST">
input 1: <input id="edit1" name="edit1"><br>
input 2: <input id="edit2" name="edit2"><br>
<button type="submit">Send</button>
</form>
</body>
</html>
答案 3 :(得分:1)
客户端验证的范围取决于您的业务目标。由于您已完成服务器端验证,因此客户端验证的唯一技术优势是保存HTTP请求(这可能无关紧要取决于您的流量,托管等)。
我选择从没有客户端验证开始,并确保服务器端错误在提交失败时正确显示。如果您这样做并且未达到您和您的受众期望的用户体验级别,那么请从那里添加HTML5验证或更好。
答案 4 :(得分:0)
取决于您的要求,您只能使用JS进行客户端验证。但在这种情况下,用户禁用JS的可能性比您的验证没有用。
所以我建议您放置客户端以及服务器端验证,以便在客户端验证因任何原因失败的情况下,服务器端将处理验证数据的任务。
答案 5 :(得分:0)
假设完全取决于软件要求。
服务器端验证
在Laravel验证中,用户提交的输入将被发送到服务器并进行验证。在服务器端进行验证后,反馈将通过新的动态生成的网页发送回客户端。最好在服务器端验证用户输入,因为您可以防止恶意用户,他们可以轻松绕过您的客户端脚本语言并向服务器提交危险输入。
客户端验证
在客户端验证中,您可以通过在浏览器级别快速响应来提供更好的用户体验。执行客户端验证时,所有用户输入都在用户的浏览器中验证。客户端验证不需要往返服务器,因此网络流量将帮助您的服务器更好地运行。
例如,如果用户输入无效的电子邮件格式,您可以在用户移动到下一个字段之前立即显示错误信息,因此用户可以在提交表单之前更正每个字段。
注意javascript验证: - 主要是客户端验证取决于JavaScript语言,因此如果用户关闭JavaScript,它可以轻松绕过并向服务器提交危险输入。因此,客户端验证无法保护您的应用程序免受对服务器资源和数据库的恶意攻击。
注意php laravel验证: - 服务器的必要流量和较慢的处理。
结论: - 由于两种验证方法都有其自身的意义,因此建议服务器端验证更安全!