php - 隐藏输入(html 表单确认)- 服务器端脚本? (php)

标签 php javascript html css

我正在用 PHP 编写网站。 我有一个简单的注册表。

<form>
<label...></label> <input .../>
</form>

我想添加一个确认字段:

<input type='hidden' name='hiddeninput' value="jn3kjnv3kjvn35">

但是这段代码在服务器端看起来如何呢? 每当加载注册表单时,我是否需要将每个隐藏值保存到数据库中?

我正在努力确保表格不是由机器人填写的。

这就是为什么我需要一个对于每个表单提交都是唯一的随机隐藏值。

假设每次我生成注册页面 - 我为“隐藏”字段生成唯一值。

当用户提交表单时 - 我如何将提交的值与生成的值进行比较(一旦生成 - 它不会存储在网站的任何地方)。

最佳答案

基本上,您应该使用生成随机字符串的函数(例如hash) 和 sessions 来“记住”这个字符串。 提交表单后,您将检查 INPUT 的值并将其与 SESSION 的值交叉。

例如:

Form.php

<?php
 $hash = md5(time());
 $_SESSION['form_xx'] = $hash; //in case you have more than one form.
?>
<form method='post' action='do.php'>
..
..
<input type='hidden' name='secret_key' value='<?=$hash?>'>
</form>

do.php

if($_POST['secret_key'] == $_SESSION['form_xx']) //Just make sure your making the posted value SAFE
 //He's ok.
else
 die("arggg...those hackers");

关于php - 隐藏输入(html 表单确认)- 服务器端脚本? (php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9640873/

相关文章:

jquery - HTML5 存储/JQuery 不保存数据

php - 如何基于树遍历算法从这个结果集中生成 TreeView ?

php - 表单无法更新php

javascript - 如何从键值对数组中获取对象数组

JavaScript IE7 : Object Expected

html - 简而言之,XHTML 和 HTML 之间有什么区别?

php - if 语句不适用于 php 中的 false

php - 在 jquery 中动态设置按钮文本

javascript - 我可以在 Hyperstack 中制作功能组件吗?

c# - 即时格式化 html 日期和数字