ajax के साथ reCAPTCHA का उपयोग कर .... जावास्क्रिप्ट लोड हो रहा है समस्या

वोट
11

मैं अपने रूप, में से एक में reCAPTCHA को लागू करने की कोशिश कर रहा है ... लेकिन मैं प्रस्तुत करने के रूप में ajax उपयोग कर रहा हूँ। (अधिक विशेष रूप से प्रोटोटाइप ajax.updater)

एक बार मैं प्रस्तुत और त्रुटि मेरी प्रपत्र जाँच मैं reCAPCHTA विजेट thingy लोड करने के लिए (मेरे अद्यतन div तत्व में) जो मूल रूप से बस इतनी तरह एक जावास्क्रिप्ट फ़ाइल कॉल का प्रयास करें:

<script type=text/javascript src=http://api.recaptcha.net/challenge?k=6Le6SwUAAAAAAIWm8wCRFd8SrI-H0R1Yx4Tkw2Ks></script>

हालांकि जे एस फ़ाइल को पढ़ने नहीं किया जा रहा है ... और मैं evalScripts के सभी संयोजन की कोशिश की है? सच और evalJS: ajax.updater में आदि 'शक्ति' ..... लेकिन मुझे नहीं लगता है कि मैं एक है क्यों js फ़ाइल को संसाधित नहीं कर रहा है की बहुत अच्छी समझ :(

किसी को भी इस मुद्दे पर कुछ प्रकाश डाला सकता है, तो मैं बहुत सराहना की जाएगी।

धन्यवाद, एंड्रयू

27/02/2009 को 04:17
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


7 जवाब

वोट
0

अगर ऐसा शाब्दिक कोड का स्निपेट का उपयोग कर रहे हैं, तो आप टैग बंद नहीं किया है ... तो यह मूल्यांकन नहीं किया जाएगा।

27/02/2009 को 04:20
का स्रोत उपयोगकर्ता

वोट
1

अपने ही सवाल का जवाब देने ...

वहाँ एक reCAPTCHA AJAX API .... जो बहुत आसान तरीका इस समस्या को हल प्राप्त करने के लिए है:

लिंक पाठ

इसके अलावा, .. पर प्रलेखन http://www.prototypejs.org/api/ajax/updater साइट ..... evalscript विकल्प के बारे में बात करती है और केवल देशी eval () फ़ंक्शन के माध्यम से किसी भी जावास्क्रिप्ट डालता है कैसे है .. त्रुटि सामूहिक नरसंहार के हथियारों के साथ की जाँच को लागू करने की कोशिश कर रहा से अधिक मुझे शिकंजा की ..which तरह ... लेकिन है कि एक और कहानी है।

एंड्रयू

27/02/2009 को 17:09
का स्रोत उपयोगकर्ता

वोट
17

यह अपने सटीक समस्या का समाधान नहीं है, लेकिन ' कार्टन के डार्क साइड ' jQuery AJAX जो मदद कर सकता है के माध्यम से reCAPTCHA सत्यापित करने के लिए कुछ उत्कृष्ट कोड है।

संक्षेप में:

निम्नलिखित जावास्क्रिप्ट जोड़ें:

$(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 / अजगर के साथ काम करने के लिए अनुकूलित

05/11/2009 को 13:00
का स्रोत उपयोगकर्ता

वोट
4

JavaScript जैसी क्लाइंट साइड स्क्रिप्ट, किसी भी प्रकार का उपयोग करते समय सावधानी, सत्यापन के लिए हो। आप अंत उपयोगकर्ता के ब्राउज़र पर कोई नियंत्रण नहीं। कैप्चा के प्रयोजन के एक फार्म के स्वचालित प्रस्तुतियाँ को रोकने के लिए है। किसी को भी पर्याप्त परिष्कृत है कि सेट करने के लिए एक समस्या आपकी जावास्क्रिप्ट सत्यापन अधिभावी और कैप्चा की जाँच करने के लिए नहीं जा रहा है। उदाहरण के लिए, वे, validateCaptcha () हमेशा सच वापस जाने के लिए तैयार कर सकते हैं अपने सावधान जांच छोड़ते हुए - या सिर्फ जावास्क्रिप्ट को अक्षम करें।

इसका अर्थ है कि ajax के साथ पूरे फ़ॉर्म प्रविष्टि प्रदर्शन और निर्धारित करने के लिए प्रपत्र संसाधित या नहीं हो जाता है कॅप्चा जांच के परिणामों का उपयोग के साथ कुछ भी गलत नहीं है।

महत्वपूर्ण बात यह है या नहीं, प्रपत्र संभाल करने के निर्णय सर्वर साइड, नहीं क्लाइंट-साइड पर किए जाने के लिए किया है।

क्यों क्लाइंट साइड सत्यापन पर्याप्त नहीं है

10/06/2011 को 05:04
का स्रोत उपयोगकर्ता

वोट
-1

मैं हो रही है के साथ इसी तरह के मुद्दों पड़ा है reCaptchaजब jQuery के का उपयोग कर पृष्ठ में लोड अच्छी तरह से खेलने के लिए .load()विधि। यहाँ एक पेज एक उपन्यास समाधान है कि: http://www.maweki.de/wp/2011/08/recaptcha-inside-a-with-jquery-ajax-or-load-dynamically-loaded-object/

मूल रूप से ReCAPTCHA के एपीआई ReCAPTCHA के प्रदर्शित करने के लिए दस्तावेज़.लिखें विधि का उपयोग करता। जब आप प्राप्त jQuery invloved इस काम नहीं करेगा। लोड हो रहा है के स्थान पर इस PHP कोड का उपयोग करेंrecaptcha.js

<?php
$api = file_get_contents('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js');
$api = str_replace('document.write','$("body").append',$api);
echo $api;
?>

यह सिर्फ दस्तावेज़.लिखें के लिए एक मिल रहा है और साथ यह बदल देता है $(selector).append

मेरी कार्यान्वयन काम कर दिया।

31/01/2012 को 15:30
का स्रोत उपयोगकर्ता

वोट
0

फोन Recaptcha.reload (); अपने अजाक्स कोड में कॉलबैक घटना पर।, यह नया Recapcha हर बार है कि अजाक्स प्रस्तुत पुनः लोड होगा

07/12/2012 को 17:06
का स्रोत उपयोगकर्ता

वोट
0

हाय दोस्त मैं इस सवाल का जवाब मिल गया

https://developers.google.com/recaptcha/docs/display?hl=es#AJAX

और इस में कैसे मान्य

http://blog.reaccionestudio.com/comprobar-recaptcha-con-ajax-usando-jquery/

आप के लिए सफलता

28/09/2013 को 06:11
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more