如何确保不滥用“提交”按钮重复运行php代码

时间:2018-09-24 19:27:13

标签: php html submit-button

<form action="test.php" method="POST">
HTML CODE
</form>
<button type="submit" name="test" value="1">Buy</button>

 ---> test.php

if(isset($_POST['test'])) {

PHP CODE

}

我已经在该html表单上方包含了test.php,但是当我在页面运行php代码并再次加载整个页面之前一次又一次单击Submit时,它运行php代码的次数与我单击的次数相同

我如何确保一个人不能一次又一次地滥用“提交”按钮来一次又一次地运行php代码?我只想考虑第一次点击。

有人可以帮忙吗

1 个答案:

答案 0 :(得分:0)

好的方法是包括某种验证码。我个人更喜欢Google(https://www.google.com/recaptcha/intro/v3beta.html)的Recaptcha

它根本不会显示,您可以针对任何传入请求进行验证。

要开始使用,请在您的html中嵌入以下JS:

<script src='https://www.google.com/recaptcha/api.js'></script>

然后替换您的提交按钮:

<button
  class="g-recaptcha"
  data-sitekey="YOUR_PUBLIC_SITE_KEY"
  data-callback="YourOnSubmitFn">
Buy
</button>

最后剩下的就是从php检查代码是否正确:)

发布带有秘密,响应和remoteip的'https://www.google.com/recaptcha/api/siteverify'->然后允许用户使用该功能,否则只需中止