我最近在iOS移动设备上使用reCaptcha时遇到了一些麻烦。我通过尝试通过表单而不填写详细信息来测试验证,但确保检查了reCaptcha。
我发现这个奇怪的主要原因是因为在我的笔记本电脑上测试这个确切的场景时,验证开始以及Android设备,iOS设备没有显示它的迹象:(这是浏览器和操作系统的兼容性问题吗?是代码片段:
<div class="formalign" align="center">
<?php
if ($response != null && $response->success) {
echo "Hi " . $_POST["name"] . " (" . $_POST["email"] . "), thanks for submitting the form!";
} else {
?>
<form action="" method="post">
<label>
<input type="text" name="name" id="name" placeholder="Name" required data-required-message="Name is required">
</label>
<label>
<input name="email" type="email" id="email" placeholder="Email" required data-required-message="Email is required." data-type-message="You must provide a valid email address.">
</label>
<label>
<textarea name="message" rows="10" cols="50" placeholder="Enter your message here" style="font: 13.3333px Arial;"></textarea>
</label>
<div align="center" class="g-recaptcha" data-theme="dark" data-sitekey="MY_SITE_KEY" style="margin-top: 1em;"></div>
<input type="submit" value="Send" /> <input type="reset" value="Reset">
</form>
<!--js-->
<script src='https://www.google.com/recaptcha/api.js?hl=en-GB'></script>
<?php } ?>
</div>
<?php
// grab recaptcha library
require_once "recaptchalib.php";
// your secret key
$secret = "MY_SECRET_KEY";
// empty response
$response = null;
// check secret key
$reCaptcha = new ReCaptcha($secret);
// if submitted check response
if ($_POST["g-recaptcha-response"]) {
$response = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
}
?>
我最初使用谷歌Chrome的设备模式,这可以按预期工作,但测试需要在物理iOS设备上完成以查看手头的问题。
如果需要进一步的详细信息,请告知我们,并提前致谢。