【问题标题】:JQuery + form fields not inserting to database 100% correctlyJQuery + 表单字段未正确插入数据库 100%
【发布时间】:2009-08-18 06:20:56
【问题描述】:

我有一个复杂的表单,它使用模糊事件来触发对 mysql 的更新。验证会禁用提交按钮,直到完成所有必填字段。问题是,即使用户没有完成所有字段,他们也设法提交表单。

我的理论是,出于某种原因,数据库忽略了从表单发送的一些值,但验证仍然识别出所有字段都已完成。

据我所知,Internet Explorer 6 是罪魁祸首。它适用于任何现代浏览器(Firefox、Chrome、Safari、IE7 + 8),但在 6 上运行失败。

即使用户在字段旁边出现一个“复选”标记,就好像更新成功一样,这些值没有发送到数据库的可能原因是什么。

是否应该以某种方式延迟数据库更新? IE6 中是否存在导致此问题的缺陷?

任何建议将不胜感激!

【问题讨论】:

  • 你永远不应该相信 JS 验证并实现服务器端验证。 JS 验证可以是附加的,服务器端是必须的。
  • 你能发布一些 HTML 和 javascript 吗? IE6 在关闭 javascript 时的行为方式是否相同?您是否也在服务器端进行验证?您是否设置了Fiddler 以查看发送的内容?

标签: jquery mysql internet-explorer-6


【解决方案1】:

Server-sde 验证无疑是这里的必经之路。它应该是您在通过添加客户端代码“增强”用户体验之前编写的第一件事。

如果没有任何示例代码,很难说出问题所在,但我有几个问题:

您的按钮是否开始禁用,即属性 disabled="disabled" 是否嵌入在您的 HTML 中?

当用户填写所有字段时,按钮将被启用。如果他们清除其中一个字段,它是否再次被禁用?

您是否有可能使用了一些“现代”浏览器可以识别但 IE6 无法识别的 JavaScript(甚至 CSS)?

您是否能够自己专门复制它?

您是否在提交时验证表单字段?您的字段是否可能容易受到 SQL 注入的影响?

【讨论】:

  • 1.该按钮从一开始就被禁用 2. 是 3. 可能是这种情况 4. 不,根本无法复制错误。 5. 所有字段在完成和提交时都经过验证。我有各种例程来防止 SQL 注入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 1970-01-01
  • 2016-06-22
  • 2019-05-18
  • 2013-05-01
相关资源
最近更新 更多