1.9 में ग्राहक लॉगिन काम नहीं करता है


42

मैंने बस Magento 1.9.0.1 की एक नई स्थापना की और मैं ग्राहक लॉगिन फ़ॉर्म के साथ कुछ बहुत ही अजीब व्यवहार देख रहा हूं।

Chrome (संस्करण 36) में लॉगिन फ़ॉर्म काम नहीं करता है। मुझे लॉगिन पृष्ठ पर पुनः निर्देशित किया गया है। कोई त्रुटि संदेश नहीं है। हालाँकि, जब मैं एक नई गुप्त विंडो खोलता हूँ, तो मैं ठीक लॉगिन कर पाता हूँ। यह एक कुकी समस्या थी, यह सोचकर मैंने अपने सभी कुकीज़ को ब्राउज़र से हटा दिया और फिर से कोशिश की और मुझे वही परिणाम मिले। दोनों ही मामलों में, मैं बिना किसी समस्या के व्यवस्थापक पैनल में प्रवेश करने में सक्षम हूं।

मैंने फ़ायरफ़ॉक्स और सफारी दोनों में भी यह कोशिश की है। फ़ायरफ़ॉक्स मैं वही होता देखूंगा (लेकिन लगातार नहीं और मैं कुकीज़ को साफ करके इसे ठीक कर सकता हूं) और मैं सफारी में दोहरा नहीं सकता था।

मैं Magento के किसी भी अन्य संस्करण में इस के साथ एक मुद्दा नहीं था। क्या Magento के 1.9 और / या संस्करण में कुकीज़ को संभालने के तरीके में कुछ मूलभूत परिवर्तन है या क्या मैं इसे और अधिक स्थिर बनाने के लिए कुछ कर सकता हूं?


क्या आप लिंक को साझा कर सकते हैं और उपयोगकर्ता को पास / पास कर सकते हैं
MTM

दुर्भाग्य से यह सब मेरे काम के वीपीएन के पीछे बंधा हुआ है।
जोश पेनिंगटन

Chrome पुनः स्थापित करें और सत्यापित करें।
निलॉक्ट

पुनः स्थापित करने के बाद समान परिणाम।
जोश पेनिंगटन

1
मैं एक ग्राहकों साइट में एक ऐसी ही समस्या हो रही एक बार, समस्या थी, जब साइट बिना पहुंचा गया था था wwwजैसे abc.comयह तो पर पुनः निर्देशित किया गया था www.abc.com। इस मामले में, ब्राउज़र दोनों के लिए कुकीज़ सेट कर रहा था और लॉगिन ने विशेष रूप से काम करना बंद कर दिया था, लेकिन अगर मैं मैन्युअल रूप से उस कुकी को हटा देता हूं जो बिना wwwलॉगिन के फिर से काम करना शुरू कर देती है। तो आप जांच लें कि क्या आपके साथ भी ऐसा ही है?
एमटीएम

जवाबों:


38

मुझे भी यही समस्या थी....

इसका उत्तर यह है कि आपकी थीम नामक वैरिएबल की आपूर्ति नहीं करती है form_key

जैसा कि ऊपर कहा गया है मुझे जोड़ना है:

<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />

आप इसे ठीक बाद में जोड़ते हैं <ul class="form-list">

login.phtmlविषय के लिए मेरी फ़ाइलों में से प्रत्येक के लिए।

आपको कार्ट आइटम की अपडेट मात्रा के साथ भी समस्या हो सकती है

यहाँ का महत्व है form_keys:

समय की शुरुआत के बाद से, Magento के बैकएंड में एक फॉर्म कुंजी थी जो XSS हमलों [1] के खिलाफ सुरक्षित थी। Magento 1.8 के साथ फ़ॉर्म कुंजी ने बहुत अधिक समान कारण के लिए सीमा में प्रवेश किया है: अपने ब्राउज़र का उपयोग करके किसी अन्य वेबसाइट से फ़ॉर्म सबमिट करने से बचाने के लिए। दुर्भावनापूर्ण हमलावर आपकी गाड़ी में सामान जोड़ सकता है जबकि आप एक अलग ब्राउज़र टैब में हैं या आपके लिए एक ऑर्डर भी पूरा कर सकते हैं। यह अनुमान लगाने योग्य URL पर निर्भर करता है, क्योंकि साइट पर ब्राउज़र टैब में वास्तविक HTML सामग्री तक पहुंच नहीं होगी, जहां आपको अपनी Magento की प्रतीक्षा है। Magento स्टोर पर भेजी जाने वाली सभी चीजें आपके कुकीज़ को जमा करेंगी और इस प्रकार आपके सत्र का उपयोग करेंगी।

सर्वर पर एक क्रिया बनाने वाले प्रत्येक प्रपत्र या प्रत्येक लिंक में एक अद्वितीय कुंजी जोड़कर, URL या फ़ॉर्म सामग्री अब अनुमानित नहीं हो जाती है। प्रपत्र कुंजी को सत्र डेटा में संग्रहीत किया जाता है और सर्वर पर जमा करने पर मान्य किया जाता है। यदि वे मेल नहीं खाते हैं, तो आपको एक फार्म कुंजी त्रुटि मिलती है और कार्रवाई पूरी नहीं होती है।


3
लगातार / चेकआउट / onepage / login.phtml एप्लिकेशन / डिजाइन / दृश्यपटल / आधार / डिफ़ॉल्ट / टेम्पलेट /: "form_key" ऊपर दिए गए फ़ॉर्म स्थित करने के लिए छिपा इनपुट जोड़े
Flipmedia

5
उपयोग करने के लिए कोड का एक बेहतर स्निपेट <?php echo $this->getBlockHtml('formkey'); ?>बड़े इनपुट के बजाय होगा ।
नवरात्र

फॉर्म क्लोजिंग टैग से पहले इसे पेस्ट करें; php इको $ यह-> getBlockHtml ('formkey'); ?>
ताहिर यासीन

सुंदर, यह मेरे लिए काम किया। आपका बहुत-बहुत धन्यवाद मैंने मतदान किया!
कोडिंगमैजेन

वाह, मैंने इसके लिए इतनी लंबी खोज की> <! आपका बहुत बहुत धन्यवाद!
कीनोरा फ्लफ़बॉल

8

हो सकता है:

cookie setting issue in Chrome browser

या

Magento 1.9 form key validation at customer loggin and registerपृष्ठ का उपयोग कर रहा है ।

इस पर कंट्रोलर Post actionमें फॉर्म की जांच करेंusing function _validateFormKey()

form key issue: form key missing इसलिए इस कोड को अपने फॉर्म में जोड़ें

<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />

या

Cookie domain setting issue गोटो चेक सेटिंग उचित है या नहीं

पर Admin>System>configuration>General>Web>Session Cookie Management


1
लॉगिन फ़ॉर्म में पहले से ही__ फ़ील्ड है और मैंने कुकी डोमेन सेट किया है और इसे भी ठीक नहीं किया है।
जोश पेनिंगटन

कृपया ब्राउज़र या गोटो accountcontroller.php जांच अगर से हटाने की कुकी ($ इस -> _ validateFormKey ()) {या काम कर रहा है नहीं
अमित बेरा

फॉर्म की कुंजी ठीक से मान्य हो रही है। वास्तव में, ऐसा लगता है कि loginPostAction बिल्कुल ठीक चल रहा है।
जोश पेनिंगटन

1
@AmitBera क्या मैं आपसे मैगनेटो चैट करूँगा? मेरे पास इच्छा-सूची मॉड्यूल पर संबंधित समस्या है?
बटरफ्लाई

@AmitBera मैंने कुंजी सेट की है, लेकिन फिर भी यह काम नहीं कर रहा है। इसके अलावा accountcontroller.php में if (!$this->_validateFormKey()) {गलत रिटर्न का मतलब है कि Magento आपूर्ति की गई कुंजी को मान्य करने में असमर्थ है। एनी विचार यह क्यों होता है?
अरविंद

6

जैसा कि इस मुद्दे को कुकी से संबंधित लगता है, के तहत कुकी जीवन समय को 86400 तक बढ़ाने का प्रयास करें

Sytem -> Configuration -> Web -> Session and Cookie Management


इसका कारण डिफ़ॉल्ट कुकी का आजीवन 3600 (1 घंटा) होना है। लेकिन अगर अंतिम उपयोगकर्ता कंप्यूटर का समय सर्वर के समय से आगे बढ़ता है, तो कुकीज़ को Magento के फ्रंटएंड के साथ-साथ बैकएंड के लिए सेट नहीं किया जाएगा। उदाहरण के लिए, अंत उपयोगकर्ता के कंप्यूटर का समय सर्वर के समय से 1 घंटे आगे है, इसका मतलब है कि कुकी (उपयोगकर्ता का सत्र आईडी पकड़ना) जैसे ही उपयोगकर्ता लॉग इन करेगा या एक आइटम जोड़ने की कोशिश करेगा।


4

भविष्य के पाठकों के लिए: इस मुद्दे के कई संभावित कारण हैं। लॉगिन के दौरान, सुरक्षा कारणों से कुछ अपवाद लॉगिंग को दबा दिया जाता है, इसलिए आपकी समस्या नहीं दिखाई देगी var/log/exception.log

अपनी समस्या का निदान करने के लिए:

  1. खोलें app/code/core/Mage/Customer/controllers/AccountController.phpऔर loginPostActionविधि पर जाएं।
  2. अस्थायी रूप से Mage::logException($e);कॉल को अनइंस्टॉल करें और परिवर्तन सहेजें
  3. उसी अपवाद को ट्रिगर करने के लिए सामने के छोर से फिर से लॉगिंग का प्रयास करें।
  4. अपवाद लॉग में अंतिम त्रुटि (ओं) को देखें और उनकी जांच करें।
  5. पिछले दो चरणों को दोहराएं जब तक कि कोई और अपवाद न फेंके।

परिवर्तनों को पूर्ववत करने के लिए मत भूलना app/code/core/Mage/Customer/controllers/AccountController.php!

मेरी समस्या का कारण एक वर्ग ऑटोलैड में विफल रहा था क्योंकि मॉड्यूल (गलत तरीके से) के <codePool>community</codePool>बजाय था <codePool>local</codePool>


मैंने आपके समाधान की कोशिश की, लेकिन कोई अपवाद नहीं है। फिर भी बनाया जा रहा है, हालांकि मैं लॉगिन नहीं कर सकता!
जॉन

4

मैंने लगातार लॉगिन phtml फ़ाइल में कोड की निचली पंक्ति को जोड़कर समस्या को ठीक किया।

<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />

1
समाधान के लिए धन्यवाद। मैंने उस पर लगभग आधा दिन बर्बाद किया है। और अंत में यह समाधान मिला।
गौरव अग्रवाल

3

ठीक आधे घंटे तक संघर्ष करने के बाद मुझे पता चला कि कौन से फ़ोल्डर्स में लॉगिन करना है। तो जाइए

/app/design/frontend/default/template-name/template/persistent/customer/form/

और पेस्ट करें

<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />

उपरांत

<ul class="form-list">

बस।


3

यदि आप वार्निश कैश का उपयोग कर रहे हैं, तो एक अलग समस्या हो सकती है। मैं एक समाधान मैं अन्यत्र पाया उद्धृत कर रहा हूँ। https://github.com/nexcess/magento-turpentine/issues/169

और यहाँ हम जाते हैं ... पिछली बार जब मेरे साथ यह समस्या हुई थी तो मैंने देखा था कि मुझे "एक ही नाम के दो अलग-अलग कुकीज़ मिले थे।" फ्रंटेंड "। इन कुकीज़ के सभी दायरें समान थीं, सिवाय इसके कि। "डोमेन" फ़ील्ड। पहली कुकी में डोमेन मूल्य "mydomain.com" था जबकि दूसरे में "www.mydomod.com" था। यह तब होता है जब कोई उपयोगकर्ता पहले से ही एक कुकी नहीं बनाता है और अपने ब्राउज़र के यूआरएल में "mydomain.com" टाइप करता है। यह दोषपूर्ण "फ्रंटेंड" कुकी को चालू करने के लिए ट्रिगर करता है और चीजों को गड़बड़ करता है! हमारे सर्वर में वापस हमारे पास एक नियम है कि अगर कोई वेब उपयोगकर्ता "mydomain.com" को "www.mydomain.com" परोसता है। इसका अर्थ है कि उपयोगकर्ता के ब्राउज़र में, पता बार में url को "mydomain.com" से बदल दिया गया है "www.mydomain.com" के लिए। मुझे यकीन नहीं है कि यह लॉग इन समस्या के साथ कुछ करना है। मैं सिर्फ इसका उल्लेख करता हूं। समाधान: तारपीन कैशिंग विकल्पों में मैगनेटो कॉन्फ़िगरेशन में "होस्ट को सामान्य करें" एक विकल्प है। आपको इसे सक्षम करना होगा। Thats it! इसके बाद कोई गड़बड़ बात नहीं डबल फ्रंटेंड कुकीज़! उम्मीद है की यह मदद करेगा!


2

इस समस्या का कारण कस्टम लॉगिन फ़ॉर्म में कोई form_key नहीं है और Magento के loginPostAction में हो रही एक फ़ॉर्म कुंजी सत्यापन है।

आप इसे नीचे के रूप में ठीक कर सकते हैं:

  1. ऐप / डिज़ाइन / फ्रंटेंड / [आपका पैकेज] / [आपका विषय] /template/customer/form/login.phtml पर जाएं

खोजें:

और ऊपर दिए गए कोड के बाद इस अधिकार को चिपकाएँ:

<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
  1. ऐप / डिज़ाइन / फ्रंटएंड / योर-पैकेज] / [Your-theme] /template/persistent/customer/form/login.phtml पर जाएं और समान परिवर्तन लागू करें।

1

ऊपर मेरे लिए बिल्कुल ठीक काम किया, लेकिन मैं Magento 1.4.1 से 1.9.1 में अपग्रेड कर रहा था, इसलिए एक बड़ी छलांग। फाइलें ऊपर के स्थान में नहीं मिलीं, लेकिन एप / डिजाइन / फ्रंटेंड / बेस फ़ोल्डर में स्थित थीं।

/ ऐप्स / डिजाइन / दृश्यपटल / आधार / डिफ़ॉल्ट / टेम्पलेट / लगातार / ग्राहक / प्रपत्र /

यह बेस फोल्डर मैगेंटो 1.4 के बाद से बहुत सारी सामान्य फाइलें रखता है इसलिए मैंने पढ़ा ... उम्मीद है कि यह किसी को कई घंटों के कामों से बचाएगा जो मुझे ले गए थे।


1

यदि आप किसी भी सामाजिक लॉगिन एक्सटेंशन का उपयोग कर रहे हैं, तो उस login.phtm फ़ाइल में फ़ॉर्म कुंजी भी जोड़ें


1
<input name = "form_key" type = "hidden" value = "<? php इको मैज :: getSingleton ('core / session') -> getFormKey ()?>" />
Yatin Patel

1

सुनिश्चित करें कि php-mbstring आपके सर्वर पर स्थापित और सक्षम है।

यदि यह नहीं है तो ग्राहक लॉगिन काम नहीं करेगा जबकि ग्राहक लॉगिन नहीं करेगा।

इस जाँच को आउटपुट में देख कर phpinfo()या अस्थायी रूप से लॉगिन अपवाद को लाइन 177में चारों ओर से सक्षम करके किया जा सकता है :app/code/core/Mage/Customer/controllers/AccountController.php

ध्यान रखें कि ऑपरेशन लॉग अपवाद ट्रेस में ग्राहक पासवर्ड का खुलासा कर सकता है।


0

मुझे एक ही समस्या थी और सभी कुकीज़ को हटाकर इसे हल किया। यदि आपको कई अलग-अलग Magento की दुकानें हैं और एक ही समय में उनमें लॉगिन करने पर समस्या उत्पन्न होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.