我正在创建一个简单的表单。我想使用嵌入式javascript来验证表单是否已填写,然后,如果结果是有效的,则使用php脚本处理数据。
我不知道如何做到这一点,因为我不知道如何将超过1个脚本与表单相关联。
<form id="aform" name="aform" action="myvalidationscript.js" method="POST" onSubmit="return checkForm()">
将验证我的表单并且只发送日期有效,但是如何让它理解服务器上有一个想要接受数据并用它做某事的PHP文件?
这是可能的,我不知道该怎么做,或者我的验证模型都错了。我认识到我可以在与处理相同的PHP文件中进行验证,但我想1)通过功能组织我的代码比将所有内容放在一个脚本中更好的选项,以及2)验证客户端的选项 - 一些嵌入式javascript。
有什么建议吗?
答案 0 :(得分:10)
永远不要相信客户端。你应该在php的服务器端拥有所有的验证逻辑。在客户端,您可以添加验证逻辑,以增强用户体验。
此外,action
属性指定应处理已完成和已提交表单的服务器端脚本的URL。它不是将客户端脚本与表单相关联。
答案 1 :(得分:3)
客户端验证没有任何问题,只要您使用它只是为了增强用户体验而不依赖它。请记住,用户代理(浏览器)执行的任何脚本完全在用户的控制之下,这意味着攻击者可以轻松地绕过它。
您应该查看http://jquery.com/或其他类似的JavaScript库,因为这些会使整个过程变得更加容易。
答案 2 :(得分:1)
您可以使用jquery验证列出最佳主题here。 另外你最好使用php验证,因为javascript执行在用户的计算机上,甚至初学者用户也可以简单地使用firebug firefox扩展来传递jquery验证并相信我你不希望他们这样做。
答案 3 :(得分:1)
为了确保理解,我将从“不信任客户端”开始
但是,Javascript验证对用户来说是一件非常好的事情。 例如,一个字段附近的一个小红旗说它是强制性的,如果你提交表格,你将不必等待php验证,js将在之前完成并取消提交。
好的我承认,这不是什么大不了的事,但这是使这款应用变得更好的小事之一。
但请务必在服务器端重新验证它们!