использование reCAPTCHA с ajax … JavaScript, загружающий проблему

Один из вариантов - преобразовать имена в factor и установить необходимые уровни

new_name <- sub("-.*", "", names(data))
split.default(data, factor(new_name, levels = unique(new_name)))

#$B
#  B-DIODE B-DIODE.1
#1     1.2       1.3
#2     0.4       0.6

#$A
#  A-DIODE A-ACC1 A-ACC2 A-ANA0 ....
#1     1.4    1.5    1.6    1.7 ....   
#2     0.8    1.0    1.2    1.4 ....   

, указав levels как unique(new_name). Мы можем гарантировать, что список будет разбит на основе их вхождение в массив данных, а не в алфавитном порядке.

Как предполагает @thelatemail, мы также можем избежать преобразования имен в переменную factor, переупорядочив список на основе unique new_name

split.default(data, new_name)[unique(new_name)]
11
задан Rob W 28 December 2011 в 20:51
поделиться

3 ответа

отвечать на мой собственный вопрос...

существует reCAPTCHA AJAX api...., который является довольно простым способом обойти эту проблему:

текст ссылки

Кроме того.. документация относительно сайта http://www.prototypejs.org/api/ajax/updater..... говорит о evalscript опции и как, только проводит какой-либо JavaScript через собственную оценку () функция...., какой вид завинчивает меня по попытке реализовать проверку ошибок с WMD..., но это - другая история.

Andrew

1
ответ дан 3 December 2019 в 05:36
поделиться

Если бы это - отрывок литерального кода, Вы используете, Вы не закрыли тег..., таким образом, он не был бы оценен.

0
ответ дан 3 December 2019 в 05:36
поделиться

Это не решает вашу проблему, но в « Dark Side of the Carton » есть отличный код для проверки reCAPTCHA через jQuery AJAX, который может помочь.

В итоге:

Добавьте следующий Javascript:

$(function() {
    function validateCaptcha() {
        var challengeField = $('input#recaptcha_challenge_field').val(),
            responseField  = $('input#recaptcha_response_field').val();

        // alert(challengeField);
        // alert(responseField);
        // return false;

        var html = $.ajax({
            type: 'POST',
            url: 'ajax.recaptcha.php',
            data: "recaptcha_challenge_field=" + challengeField + "&amp;recaptcha_response_field=" + responseField,
            async: false
        }).responseText;

        if (html.replace(/^\s+|\s+$/, '') == "success") {
            $('#captchaStatus').html(' ');
            // Uncomment the following line in your application
            return true;
        } else {
            $('#captchaStatus').html(
                'Your captcha is incorrect. Please try again'
            );
            Recaptcha.reload();
            return false;
        }
    }

    // Modified as per comments in site to handle event unobtrusively
    $('#signup').submit(function() {
        return validateCaptcha();
    });
});

Затем добавьте файл ajax.recaptcha.php, который: «выводит только слово« успех », если капча совпадает, а также сообщение и ответ от reCaptchta в случае неудачи. Это важно, потому что мы ищем слово «успех» в нашей функции validateCaptcha () ».

require_once('/inc/recaptchalib.php');
$publickey  = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'; // you got this from the signup page
$privatekey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX';

$resp = recaptcha_check_answer(
    $privatekey,
    $_SERVER['REMOTE_ADDR'],
    $_POST['recaptcha_challenge_field'],
    $_POST['recaptcha_response_field']
);

if ($resp->is_valid) {
    ?>success< ?
} else {
    die(
        "The reCAPTCHA wasn't entered correctly. Go back and try it again." .
        "(reCAPTCHA said: " . $resp->error . ")"
    );
}

Пример написан на PHP, но я легко адаптировал его для работы с Zope / Python

17
ответ дан 3 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: