【问题标题】:how to prevent html form reset if submit is unsuccessful如果提交不成功,如何防止 html 表单重置
【发布时间】:2012-05-02 15:25:37
【问题描述】:

我正在使用表单在我的网站上注册用户,并且我有验证码安全性。一切都运行良好,但我面临的唯一问题是,如果我输入了错误的验证码或以某种方式刷新页面,用户输入的所有数据都会被清除。

我希望实现的是,即使输入的验证码错误并提交了表单,表单也应该保持用户填写的所有字段不变,不包括验证码字段。

如何做到这一点?我的表单是html,处理页面是php

【问题讨论】:

  • 我将通过添加对isset 和htmlspecialchars 或htmlentities 的调用来修复以下所有答案。

标签: php html forms reset


【解决方案1】:

您可以填充表单输入的value 属性;

<input type="text" name="username" value="<?php 
  if (!empty($_POST['username'])) { 
    echo htmlspecialchars($_POST['username']); 
  }?>" 
/>

【讨论】:

  • 你好XSS安全漏洞!不要将系统外部的原始数据直接放入 HTML 中! (帖子已编辑(在机会的无历史记录窗口内)以解决此问题,所以现在 +1)
  • 所以对于每个表单字段我可以应用相同的??
  • 对不起!这对我有用,犯了一个小错误!那么上面的代码是 XSS 安全的吗?我说的对吗?
  • 你能告诉我如何对复选框和单选按钮做同样的事情吗?
【解决方案2】:

您需要将表单操作设置为当前页面。只要有错误,就会调用相同的脚本,并且该脚本可能会填写其他答案中描述的表单值。只有成功后,您才会将用户重定向到另一个页面。

【讨论】:

  • 嗯——它被称为“Affenformular”和德语,German Wikipedia 中有一个很好的描述。
猜你喜欢
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多