【问题标题】:How can I make an ajax captcha with confirmation by the url?如何通过网址确认制作 ajax 验证码?
【发布时间】:2016-03-10 12:13:05
【问题描述】:

我正在尝试在网站中制作表格。 此表单使用 Ajax 将 url 中的一些数据发送到 php 文件并显示响应。 有没有办法在 ajax 的 url 中添加验证码并使 php 检查验证码? 谢谢

我对脚本的想法:

<script>
    function sleep(milliseconds) {
        var start = new Date().getTime();
        for (var i = 0; i < 1e7; i++) {
            if ((new Date().getTime() - start) > milliseconds) {
                break;
            }
        }
    }

    function loadDoc() {
        var cap = document.getElementById('captcha_code').value
        document.getElementById("captcha_code").value = "";
        var search = document.getElementById('nombre').value
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function () {
            if (xhttp.readyState == 4 && xhttp.status == 200) {
                document.getElementById("box").innerHTML = xhttp.responseText;
                sleep(500);
                eval(document.getElementById("runscript").innerHTML);
            }
        };
        xhttp.open("GET", "request.php?nombre=" + escape(search) + "&code=" + cap, true);
        xhttp.send();
    }
</script>

【问题讨论】:

    标签: javascript php jquery ajax captcha


    【解决方案1】:

    这是什么垃圾?

    function sleep(milliseconds) {
        var start = new Date().getTime();
        for (var i = 0; i < 1e7; i++) {
            if ((new Date().getTime() - start) > milliseconds) {
                break;
            }
        }
    }
    

    你有一个叫做setTimeout();的东西。请使用那个。如果你使用 jQuery,请试试这个:

    $.post(url, data, function (resp) {
      // stuff to do when something returns from the server `resp`.
    });
    

    【讨论】:

    • 我做过类似的事情,但每次我尝试这个时,php 都无法识别带有 GET(reCAPTCHA) 的验证码。有没有什么脚本或方法可以做到这一点?
    • @James 你做了什么?
    • 好的,现在我知道我需要将 g-recaptcha-response 发送到 php,有没有办法使用 AJAX 来做到这一点?谢谢
    • @James 查看我发布的第二个代码块。这会有所帮助。
    【解决方案2】:

    要在 PHP 文件中获取验证码,您需要使用 $_GET('code') 而不是 GET(reCAPTCHA)。您还可以检查 php 文件是否具有权限。

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 2020-09-28
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 2013-06-30
      相关资源
      最近更新 更多