使用hCaptcha进行双按钮's的形式



我有一个关于hCaptcha的问题。我试着把它设置在一个表格上,两个按钮启动两个不同的动作。

问题是,当我解决第二个按钮时,它有效,但当我解决第一个按钮时它不起作用,会向我发送一个缺少输入响应的错误。

因此,我知道hCaptcha正在表单中查找键/值对,第二个按钮覆盖第一个,因此当我求解第一个时,令牌不会被存储,因此不会被处理到后端。

这里有一个代码示例:

<?php
$captcha = 0;
if(isset($_POST['h-captcha-response']))
{
$data = array(
'secret' => "my_secret",
'response' => $_POST['h-captcha-response']
);
$verify = curl_init();
curl_setopt($verify, CURLOPT_URL, "https://hcaptcha.com/siteverify");
curl_setopt($verify, CURLOPT_POST, true);
curl_setopt($verify, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($verify, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($verify);
var_dump($response);
$responseData = json_decode($response);
if($responseData->success)
$captcha = 1;
}
else
$captcha = 1;
if($captcha == 1)
{
?>
<html>
<head>

</head>
<body>
<form action="#" method=POST id="form_">
<textarea name=input_ rows="1" cols="40" id="input"></textarea><br/>
<input type=submit name=perform1 value=perform1 id="submit1" class="h-captcha" data-sitekey="mykey" data-callback="onSubmit"/>
<input type=submit name=perform2 value=perform2 id="submit2" class="h-captcha" data-sitekey="mykey" data-callback="onSubmit"/>
<br/>
</form>
<script type="text/javascript">
function onSubmit(token) {
document.getElementById('form_').submit();
}
</script>
</body>
</html>
<?php
}
?>

我尝试了各种方法,比如将令牌存储在隐藏输入中,但都不起作用。看起来很奇怪,它不能处理两个提交按钮。我知道reCaptcha也有同样的问题,但我在网上找到了一些解决方案。在这里我什么都找不到。

如果你有任何解决方案的想法。

谢谢:(

我知道这是一个老话题,但我也遇到了同样的问题。其中一个解决方案是每个表格提交一份,因此有一份captcha,你可以在没有任何问题的情况下获得相应的captcha。

第二种可能性是在提交表格上提交hcaptcha.execute()并粘贴一个captcha。并从输入按钮中删除h-captcha类。

相关内容

  • 没有找到相关文章

最新更新