2012-10-17 51 views
1

我正在开发一个使用PHP作为服务器端的ERP系统..所以我需要非常小心我的网站/系统的安全性。我也将使用JavaScript进行客户端验证。所以我想确保客户端启用了JavaScript,当然我也会验证数据服务器端,但我不想要不必要的服务器调用,主要是我关心窗体以及客户端填充的数据并提交..我应该使用什么来提交我的数据?什么是更好的方式提交表格详细信息

默认HTML提交和使用JavaScript验证这里(注:无用的,如果JavaScript是由客户端关闭)

<input type="submit" name="Add Data" /> 


或者提交使用锚标记<a>有一个JavaScript的帮助(我发现这有意义,因为如果JavaScript是关闭状态,他不会能,如果我用submitt <a>标签提交数据)

<a href="#" onclick="document.getElementById("form_id").submit();">Submit</a> 

那么,有没有任何坏点或者我应该坚持使用默认的submit按钮?如果我使用<a>提交表单数据,那么我可以使用JavaScript验证数据吗?

+0

您认为使用锚代替按钮有什么好处? – Mathletics

+1

好处是,如果javascript被禁用,用户将无法提交表单...所以我可以强制他在他的浏览器中打开javascript,所以现在即使数据将被验证,因为他需要javascript来打开 –

回答

4

所以我想,以确保客户端已开启JavaScript

你不能。即使您将系统设计为在没有JavaScript的情况下中断,某人也可以对其进行反向工程并手动提交错误数据。

当然我会验证数据服务器方太

这就是解决方案

,但我不想不必要的服务器调用

如果您正在收到足够多的意外提交,其中有JavaScript关闭的人出现错误,导致显着的性能或负担,我会的吃我的帽子。

默认HTML提交和使用JavaScript

是验证在这里。将JavaScript绑定到表单上的submit事件。

<a href="#"

不要那样做。

那么,有没有任何坏点,如果我用<a>标签数据提交

  • 它看起来并不像的东西,将提交表单
  • 它不露面形式模式在屏幕阅读器
  • 它静静地失败,如果JavaScript不因任何原因工作

我应该坚持默认提交按钮吗?

是的!

+0

真棒回答...所以顺便说你说,绑定的JavaScript事件提交,你的意思是'onclick'事件或验证部分? –

+0

客户端验证应该使用'submit'事件来执行(除非您在执行'change'和'keypress'事件时执行此操作)。不应该有任何需要“点击”事件。 – Quentin

+0

;)谢谢...... –

2

尽可能使用浏览器默认值。坚持提交按钮,并将您的验证绑定到表单上的submit事件。这样,您的表单可以按照预期使用或不使用JavaScript。

0

不,您不能将客户端操作视为可靠或安全。如果我故意想要,我可以阻止验证,但保持JavaScript为提交工作。

至于你的问题,这很简单:要么你希望用户能够提交没有JavaScript或没有。这不是什么“更好”的问题,这是您的要求的问题。