目前,当我设计表单时,我喜欢将提交按钮的名称保持等于表单的id.然后,在我的php中,我只是执行if(isset($_ POST [‘submitName’]))以检查表单是否已提交以及表单已提交.

首先,这种方法有任何安全问题或设计缺陷吗?

我遇到的一个问题是当我希望用javascript覆盖我的表单时,为了向用户提供更快的验证.例如,虽然我显然需要保留服务器端验证,但是如果在输入模糊时内联显示错误消息,则对用户来说更方便.此外,在单击提交按钮后提供整个表单验证会很好.

因此,当用户单击表单的提交按钮时,我将停止默认操作,进行验证,然后尝试重新设置传统提交功能(如果验证通过).为了做到这一点,我使用的是form.submit()方法,但不幸的是,这并没有发送提交按钮变量(因为它应该可以调用form.submit()而不需要点击任何按钮).这意味着我的PHP脚本无法检测到表单已提交.

解决这个问题的正确方法是什么?似乎标准解决方案是在传递验证时向表单中添加隐藏字段,其具有表单id的名称.然后当调用form.submit()时,它将被传递以代替提交按钮.但是,这个解决方案对我来说似乎非常不合适,所以我想知道我是否应该:

a)使用另一种方法来检测哪个表单已经提交,而不依赖于传递提交按钮.如果有的话有什么替代方案?显然,从一开始就拥有一个额外的隐藏领域并不是更好.

b)使用另一种Javascript解决方案,它允许我保留我的非Javascript设计.例如,form.submit()是否有替代方法可以传递额外的数据?

c)将其吸收,然后使用Javascript插入隐藏字段.

更新:

我已经接受了正确的答案,但我只想澄清我的错误,这样对其他人更有帮助.我使用Mootools,我非常天真地相信,当我使用addEvent(‘submit’…)时,我需要立即调用event.stop()以防止提交.实际情况并非如此,只有在验证失败时我才能调用event.stop().否则,像往常一样,默认提交被触发,并且使用form.submit()变得完全没必要.

php表单的提交方法有什么,php – 确定哪个表单已提交的最佳方法是什么?相关推荐

  1. Java方法实现是什么意思_Java中实现可调用的最佳方法是什么,需要一段时间才能完成...

    显然,你需要将sleep移动到finally块中,以便在task抛出异常(例如PasswordExpiredException?)时也会发生这种情况. 另一个问题是处理已经过去的情况>持续时间. ...

  2. mysql的读已提交和可重复读(Read Committed和Repeatable Read隔离级别)

    1.共享锁和排他锁 1.1.共享锁 1.2.排他锁 1.3.总述 2.MVCC 2.1.隐藏字段 2.2.Read View 2.3.Undo log 2.4.update的具体流程 2.5.可见性比 ...

  3. git修改已提交记录的注释

    已提交暂存区但还未提交远端仓库 命令:git commit --amend -m 已提交远端仓库 命令:git rebase 可以参考:http://www.cnblogs.com/dudu/p/47 ...

  4. ajax form表单提交_开发日志:金数据表单自动提交脚本

    最近学校要求我们每天通过一个在线表单打卡自己在家做的体育课项目,在提交的时候我突然想了下如果能有一个自动的系统每天帮我自动打卡岂不是能省很多时间?而且我一直很想学Python的网络爬虫以及服务器后端的 ...

  5. php表单多选内容取出,php处理单名多值表单的方法(多选下拉框)

    php处理单名多值表单的方法(多选下拉框) 发布于 2014-11-15 09:33:40 | 911 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  6. uniapp实现表单提交带图片上传 在做表单提交的时候,我们可能面临有图片上传,放在原生的html就好解决,form标签加上

    enctype="multipart/form-data" uniapp微信小程序 1.原图 页面部分 <form :model="data" @subm ...

  7. html实现动态多表单输入,提交多个动态添加的html表单

    我正在构建一个可以动态添加表单的功能.不是表单字段,而是一个完整的单独的HTML表单.提交多个动态添加的html表单 我使用JS添加它们. add_email_template $('#add_ema ...

  8. vue表单提交数组_ajax传递数组、form表单提交对象数组

    在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发 ...

  9. jQuery ajax - serializeArray() 序列化方法,让你一分钟获取表单里的所有内容

    一.对 serializeArray() 的理解 1.serializeArray()函数用于序列化一组表单元素,将表单内容编码为一个JavaScript数组. 2.serializeArray()函 ...

最新文章

  1. RPA学习-关于读 csv 文件报错问题
  2. liunx配置本地yum源和更新aliyun yum源
  3. 虚拟背景背后的技术:直播时各种背景是怎么实现的?
  4. PostgreSQL在何处处理 sql查询
  5. P3206 [HNOI2010]城市建设
  6. 宝塔定时任务执行php源码任务_Linux at命令详解:定时执行任务
  7. pytorch 对抗样本_【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现
  8. Python 测试驱动开发(五)测试数据库(上)
  9. 如何通过jQuery动态设置元素CSS的样式,以及HTML中CSS “内联式”、“嵌套式”、“外联式”使用方法
  10. python编程入门电子书-Python编程从入门到实践PDF电子书
  11. PHPCMS V9 学习总结
  12. 拓端tecdat|R语言生存分析数据分析可视化案例
  13. Android中可展开的列表组件(ExpandableListView)的使用
  14. git命令 之 切糕大全
  15. 领英工具:如何使用领英精灵在领英上有序归类分组管理客户?
  16. AntDesignVue中Table表格嵌套子表格expandedRowRender插槽用法
  17. 六线两相混合式步进电机的接线
  18. Oracle——物化视图
  19. 信用卡收单业务--银行业务(七)
  20. 基于canvas的手风琴特效

热门文章

  1. Office文件的Open Xml 格式
  2. jstl的formatNumber标签的四舍五入问题
  3. MMS 协议学习笔记
  4. linu系统脚本监控
  5. Docker Weave 介绍 or 工作原理
  6. weex npm 报错 cb() never called!
  7. java怎样读取数据库表中字段的数据类型?
  8. SUV 个人收藏汽车
  9. NoSQL解决方案比较
  10. 【线程】——生产者消费者模型