2011-11-05 12 views
8

मेरे पास वर्डप्रेस लॉगिन फॉर्म है जो मेरी वेबसाइट के सामने के अंत में काम कर रहा है, ताकि मेरे उपयोगकर्ताओं को wp-login.php पर जाकर लॉगिन किया जा सके या "थीम" या वेबसाइट छोड़ दी जा सके।jQuery पॉपअप में वर्डप्रेस लॉगिन - jQuery अजाक्स के साथ लॉगिन कैसे सत्यापित करें?

यदि आपको http://westendmediacentre.com/dev मिल गया है और लॉगिन पर क्लिक करें, तो आप देख सकते हैं कि मेरे पास एक jQuery पॉपअप के भीतर प्रपत्र दिख रहा है।

पर्चा कोड::

<div class="login-form"> 
     <form action="<?php echo get_option('home'); ?>/wp-login.php" method="post"> 
     <input type="text" name="log" id="log" value="Username<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" class="login-fields" onclick="this.value='';" onblur="this.value=!this.value?'Username':this.value;"/> 
     <input type="password" name="pwd" id="pwd" value="Password" size="20" class="login-fields" onclick="this.value='';" onblur="this.value=!this.value?'Password':this.value;"/> 
     <input type="submit" name="submit" value="Login" class="login-button" /> 
     <input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>" /> 
     </form> 
</div> 

jQuery:

$('.button-login').click(function() { 
    $('.login-box').fadeIn('slow', function() { 
    // Animation complete 
    }); 
    $(".login-box").css({'z-index' : '10000'}); 
    $("#the-lights").css({'display' : 'block'}); 
    $("#the-lights").css({'z-index' : '1'}); 
    $("#the-lights").fadeTo("slow",0.7); 
}); 
$('.login-box-close').click(function() { 
    $('.login-box').fadeOut('fast', function() { 
    // Animation complete 
    }); 
    $("#the-lights").fadeTo("slow",0); 
    $("#the-lights").css({'display' : 'none'}); 
}); 

यह पूरी तरह से काम करता है, हालांकि, अगर आप कुछ बुरा पहचान के साथ प्रवेश करने का प्रयास है, तो आप फिर से पाने के लिए इस के लिए मेरे कोड इस प्रकार है आपको एक त्रुटि पृष्ठ देने के लिए एक वर्डप्रेस पेज पर निर्देशित।

मैं क्या करना चाहता हूं, क्या ये त्रुटियां मेरे jQuery पॉपअप के भीतर दिखाई देती हैं, ताकि जब आप खराब प्रमाण-पत्रों के साथ लॉगिन करने का प्रयास करते हैं, तो यह किसी अन्य को फिर से निर्देशित करने के बजाय ऊपर या नीचे एक त्रुटि संदेश देता है वहां दिखाए गए त्रुटि के साथ पेज।

मैंने कोशिश की निम्नलिखित इस ट्यूटोरियल, लेकिन यह अपने मौजूदा कोड के साथ सही काम नहीं किया: http://www.tutorialstag.com/custom-wordpress-login-without-using-a-plugin.html

सराहना करेंगे अगर कोई एक काम कर समाधान

+0

आप अजाक्स के माध्यम से अपना लॉगिन पोस्ट नहीं कर रहे हैं। आप सिर्फ login.php पर पोस्ट कर रहे हैं। संदर्भित ट्यूटोरियल AJAX का उपयोग कर लॉगिन पोस्ट करने का सही तरीका है। –

+0

जब मैं एक खाली पृष्ठ पर ट्यूटोरियल का उपयोग करने का प्रयास करता हूं, तो मैं इसे सही तरीके से काम कर सकता हूं। लेकिन जब मैं इसे अपने मौजूदा कोड से एकीकृत करने का प्रयास करता हूं, तो मुझे समस्याएं मिलती हैं। लॉग इन करते समय, यह परिणाम के बजाय, "परिणाम" div में मेरे jQuery पॉपअप के भीतर पूरे पृष्ठ को पुनः लोड करता है। मुझे केवल एक त्रुटि होने पर आवश्यकता है, यह परिणाम div में, और जब यह सफल होता है, तो किसी पृष्ठ पर रीडायरेक्ट करने के लिए। मैं उसे कैसे कर सकता हूँ? –

+0

यह प्रश्न http://wordpress.stackexchange.com/ पर जाना चाहिए –

उत्तर

1

यह वह जगह है सब wordperess के बारे में 'संरचना पोस्ट कर सकता, के पहले आपको बस इतना पता होना चाहिए कि भले ही आप सही या गलत लॉगिन प्रमाण-पत्र प्रदान करते हैं, भले ही आपकी संरचना उपयोगकर्ता को wp-login.php (0) के कारण
< ?php echo get_option('home'); ?>/wp-login.php लाइन (मेरा मतलब है कि आप अपना उपयोगकर्ता नाम और पासवर्ड wp-login.php पर पोस्ट कर रहे हैं)
और फिर यदि आपूर्ति की गई जानकारी सही है तो WordPress फिर से उपयोग करने के लिए रीडायरेक्ट करता है तुरंत होमपेज पर, अन्यथा एक त्रुटि दिखाता है (शेक प्रभाव के साथ), आप इन सभी कार्यों को wp-login.php फ़ाइल में पा सकते हैं।
दो अलग-अलग विकल्प हैं जिनका आप उपयोग कर सकते हैं।

  • आप
    तरह WP-login.php फ़ाइल हैक कर सकते हैं यदि कोई उपयोगकर्ता फ्लॉप आपूर्ति सही नाम/पासवर्ड तो उसे वापस अनुप्रेषित
  • आप कर सकते हैं http://www.westendmediacentre.com/dev/ जाने अजाक्स मान्य (मेरा मतलब आप डेटाबेस से डेटाबेस कनेक्शन के लिए एक php फ़ाइल और पुन: प्राप्त करने यूज़रनेम और पासवर्ड तैयार करने और अपने लॉग इन सिस्टम के लिए परिणाम वापस भेज) आप दूसरा तरीका का चयन करते हैं

साथ अपना खुद का प्रवेश तंत्र का निर्माण, आप नियंत्रित कर सकते हैं this पोस्ट। यह बहुत उपयोगी है।

0

यदि संभव हो तो किसी भी कोर फाइल को संपादित न करें। आपको बाद में खेद होगा।

आप एक प्लगइन लिखने के लिए थे और प्लगइन आपके jQuery पॉपअप से निपटने गया था, तो - तो आप ऐसा कर सकता है: तो फिर http://wordpress.org/extend/plugins/sidebar-login/

:

एक लॉगिन विधि बनाने के लिए, तो आप इस प्लगइन देख सकते हैं आपके पास उस तर्क का बड़ा हिस्सा एक PHP फ़ाइल में होगा जो आपकी AJAX स्क्रिप्ट पोस्ट करेगा। अगर लॉगिन विफल हुआ, तो लौटाया गया डेटा PHP फ़ाइल को आपके AJAX स्क्रिप्ट पर भेजा जाएगा और आप अच्छे होंगे।

0

आप WordPress प्लग इन नीचे का उपयोग कर कोशिश कर सकते हैं, जो आपके काम होगा बहुत आसान

http://wordpress.org/extend/plugins/simplemodal-login/

एक छोटे से सीएसएस के साथ आप इसे अपने वर्तमान विषय से मेल

0

आप इस हिस्से याद कर रहे हैं कर सकते हैं ट्यूटोरियल

$("#submitbtn").click(function() { 

    $('#result').html('<img src="<?php bloginfo(' 
    template_url '); ?>/images/loader.gif" class="loader" />').fadeIn(); 
    var input_data = $('#wp_login_form').serialize(); 
    $.ajax({ 
     type: "POST", 
     url: "<?php echo " 
     http: //" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>", 
     data: input_data, 
     success: function(msg) { 
      $('.loader').remove(); 
      $(' 
<div>').html(msg).appendTo('div#result').hide().fadeIn('slow'); 
     } 
    }); 
    return false; 

}); 
संबंधित मुद्दे