reCaptcha忽略iOS设备上的表单验证

时间:2016-04-04 15:07:09

标签: html ios forms validation recaptcha

我最近在iOS移动设备上使用reCaptcha时遇到了一些麻烦。我通过尝试通过表单而不填写详细信息来测试验证,但确保检查了reCaptcha。

  • 我期望发生的事情:我希望在检查reCaptcha的同时点击发送时,表单验证会启动。
  • 实际发生的事情:表单未经过验证且被视为 由于检查了reCaptcha而填写,因此下一页打开。

我发现这个奇怪的主要原因是因为在我的笔记本电脑上测试这个确切的场景时,验证开始以及Android设备,iOS设备没有显示它的迹象:(这是浏览器和操作系统的兼容性问题吗?是代码片段:

表格HTML + PHP

<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>

reCaptcha PHP

<?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设备上完成以查看手头的问题

如果需要进一步的详细信息,请告知我们,并提前致谢。

0 个答案:

没有答案