php - 在 HTML 表单中制作随机字段

标签 php html forms random

我有以下代码来生成随机字符串

function generateRandomString($length = 10) {
  $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $randomString = '';
  for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, strlen($characters) - 1)];
  }
  return $randomString;
}
$s= generateRandomString();

并有一个 HTML 表单,其中名称字段获取该表单中的随机字符串

<input type="text" maxlength="10" name="<?php echo $s;?>" class="tracer-number-input"/>

现在,当我使用它时,如何确保获得该随机字符串的 POST

$num = $_POST[$s];

它没有按预期工作,因为当我单击 HTML 表单的提交按钮时,页面会重新加载并且随机字符串发生更改,因此 POST 表单不会获得之前的随机值。这打破了我的逻辑。

主要动机是制作一个 HTML 表单,其中输入字段的名称是随机的,并且发布字段也将获得该随机字符串。

我想阻止自动脚本提交,因为每次都会生成不同的 POST 字段,然后即使我没有添加验证码,自动脚本也无法处理

最佳答案

如何将值设置为隐藏字段。

// If $_POST["random"] is set, set its value to $s, else set $s to a random string
$s = isset($_POST["random"]) ? $_POST["random"] : generateRandomString();

<input type="hidden" name="random" value="<?php echo $s; ?>" />
<input type="text" name="<?php echo $s; ?>" value="whatever user types"/>

关于php - 在 HTML 表单中制作随机字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18928974/

相关文章:

php - 多次运行后 CURL 失败,显示 "could not establish connection"或 "connect() timed out"

php - 为什么这个 PDO 语句会默默地失败?

javascript - 即使我返回 false,基金会也会继续刷新页面

php - 表单提交后如何在同一个html页面上回显?

php - 如何在使用 PHP 和 MYSQL 的搜索中省略 "THE"

javascript - 根据选项菜单 1 或 2 中的选择隐藏或显示选项菜单

javascript - 内部 CSS 不会覆盖外部 CSS(api google)...为什么?

html - `:visited` 伪类如何被 `:link` 伪类覆盖?

javascript - 如果 jQuery 表单有效显示隐藏的 div

jQuery 将输入类型=文本更改为文本区域