मोर्चा प्रपत्र कुंजी को अधिलेखित किया जा रहा है


11

मैं वर्तमान में फ़्रंटएंड फ़ॉर्म के साथ समस्याएँ ले रहा हूँ जहाँ फ़ॉर्म कुंजियाँ किसी तरह अधिलेखित हो रही हैं और गलत फ़ॉर्म कुंजियाँ प्रदर्शित कर रही हैं। मैं वर्तमान में ग्राहक लॉगिन फ़ॉर्म पर इस मुद्दे पर बहस कर रहा हूं।

यह login.phtml पर कोड का स्नैपशॉट है, कि मैं यह देखने के लिए सेटअप करता हूं कि फॉर्मकी वैल्यू क्या है।

  <?php
      $retrievedKey =  $block->getBlockHtml('formkey');
      echo $retrievedKey ;
      // i made a breakpoint and inspected $retrievedKey, it returned a html output <input> ... </input> with a form key value of, let's name it 'keyA'.
  ?>

ठीक है अब के बाद मैं कोड निष्पादन जारी रखा, यह पृष्ठ सफलतापूर्वक प्रदान करता है।

और अब मैं अपने क्रोम ब्राउज़र पर प्रपत्र कुंजी छिपा इनपुट का निरीक्षण करने के लिए जाना, तथापि, यह बाहर 'से एक पूरी तरह से अलग रूप कुंजी प्रिंट Keya '। इस नए फॉर्म की कुंजी को ' KeyB ' नाम दें ।

अब मैं कोशिश करता हूं और एक लॉगिन करता हूं, और फॉर्म जमा करता हूं। मैंने उस अनुरोध का निरीक्षण किया, जो वास्तव में भेजा गया है, और यह वास्तव में मूल्य का एक मुख्य कुंजी चर है जो 'KeyB' को दर्शाता है।

मैंने 'के' मान्य 'समारोह में कुछ विराम बिंदु रखे हैं

Magento \ फ्रेमवर्क \ Data \ फार्म \ FormKey \ सत्यापनकर्ता


यह मेरा तुलनात्मक चेकर है। दाईं ओर, $ formKey और $ a का मिलान होना चाहिए। हालाँकि, ऐसा नहीं है।

 $formKey = $request->getParam('form_key', null); // outputs 'KeyB'
 $a = $this->_formKey->getFormKey(); // outputs 'KeyA'


इस प्रकार, सत्यापन विफल हो जाता है, और यह मुझे लॉगिन पृष्ठ पर वापस भेज देता है जिसमें कोई त्रुटि संदेश नहीं है।

ध्यान देने योग्य बातें:

  1. यह व्यवहार केवल क्रोम और Microsoft EDGE में उत्पन्न होता है।
  2. फ़ायरफ़ॉक्स ठीक काम करता है, कोई भी ओवरराइटिंग नहीं हो रही है
  3. प्रपत्र कुंजी जो प्रिंट की गई है, प्रत्येक ताज़ा पर बदलती दिख रही है। $ पुनर्प्राप्त किया गया, हालांकि हर बार ताज़ा नहीं होता है

चीजें जो मैंने कोशिश की हैं:

  1. सेटअप: उन्नयन और सेटअप: स्थैतिक-सामग्री: तैनाती
  2. साफ़ किया गया var / कैश और var / जनरेशन
  3. क्लियर ब्राउज़र कैश और गुप्त मोड

मैं अभी अपने सिर के चारों ओर नहीं कर सकता कि फार्म-कुंजी को क्यों लिखा जा रहा है?

यह क्यों हो रहा है पर कोई मदद या संकेत महान होगा। पढ़ने के लिए धन्यवाद

अद्यतन - मैंने कुछ डिबगिंग की है और मुझे लगा कि पेज-cache.js फॉर्म की कुंजी को फिर से सेट करके समस्या पैदा कर रहा है। यह इस तथ्य के कारण है कि, यह मेरे कुकीज़ की जांच कर रहा है यदि 'form_key' कुकी सेट है, यदि नहीं, तो एक नया फ़ॉर्म कुंजी बनाएं और कुकीज़ को सहेजें। समस्या यह है कि यह कुकी को बचाने में सक्षम नहीं है, यही कारण है कि यह नए फॉर्म कीज बनाता रहता है।

अद्यतन - मैंने समस्या हल कर दी है। यह कुकी डोमेन समस्याओं के कारण है। धन्यवाद


तय करने के लिए बहुत धन्यवाद। कुछ समय एक ही व्यवहार को देखते हुए इस मुद्दे पर बहस करने में बिताया - फॉर्म कुंजी बार-बार सामने के छोर पर उत्पन्न होती है
पारस सूद

1
मेरे मामले में यह मैगेंटो सिस्टम कैश था, क्योंकि यह एक मचान एनवी से माइग्रेट किया गया था। स्टोर -> सेटिंग्स -> कन्फ्यूजन -> सिस्टम -> फुल पेज कैश -> कैशिंग एप्लिकेशन: बिल्ट-इन कैश में सेट करें (यदि यह सुनिश्चित नहीं है कि वार्निश ऊपर है या नहीं)।
मिगुएल फेलिप गुइलेन कैलो

ठीक वैसी ही समस्या है और सत्यापन के रूप में रूप में अच्छी तरह से देख रहा था। आपने कहा कि यह कुकी डोमेन के मुद्दों के कारण था, क्या आप इसे साझा कर सकते हैं कि आपने कैसे तय किया? साभार
लांग एमके गुयेन

जवाबों:


0

मेरे मामले के लिए, मैं URL में लोकलहोस्ट का उपयोग कर रहा हूं इसलिए निम्न समाधान मेरी मदद करता है।

यदि आप स्थानीय कंप्यूटर में अपने यूआरएल में लोकलहोस्ट का उपयोग कर रहे हैं, तो इसे आईपी से बदल दें।

मेरा मतलब है अगर आपका URL है

http: // localhost / Magento2 /

से बदल दो

http://127.0.0.1/Magento2/

उम्मीद है कि यह क्रोम और एज और फ़ायरफ़ॉक्स के लिए भी काम करेगा।

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