मैं वर्तमान में फ़्रंटएंड फ़ॉर्म के साथ समस्याएँ ले रहा हूँ जहाँ फ़ॉर्म कुंजियाँ किसी तरह अधिलेखित हो रही हैं और गलत फ़ॉर्म कुंजियाँ प्रदर्शित कर रही हैं। मैं वर्तमान में ग्राहक लॉगिन फ़ॉर्म पर इस मुद्दे पर बहस कर रहा हूं।
यह 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'
इस प्रकार, सत्यापन विफल हो जाता है, और यह मुझे लॉगिन पृष्ठ पर वापस भेज देता है जिसमें कोई त्रुटि संदेश नहीं है।
ध्यान देने योग्य बातें:
- यह व्यवहार केवल क्रोम और Microsoft EDGE में उत्पन्न होता है।
- फ़ायरफ़ॉक्स ठीक काम करता है, कोई भी ओवरराइटिंग नहीं हो रही है
- प्रपत्र कुंजी जो प्रिंट की गई है, प्रत्येक ताज़ा पर बदलती दिख रही है। $ पुनर्प्राप्त किया गया, हालांकि हर बार ताज़ा नहीं होता है
चीजें जो मैंने कोशिश की हैं:
- सेटअप: उन्नयन और सेटअप: स्थैतिक-सामग्री: तैनाती
- साफ़ किया गया var / कैश और var / जनरेशन
- क्लियर ब्राउज़र कैश और गुप्त मोड
मैं अभी अपने सिर के चारों ओर नहीं कर सकता कि फार्म-कुंजी को क्यों लिखा जा रहा है?
यह क्यों हो रहा है पर कोई मदद या संकेत महान होगा। पढ़ने के लिए धन्यवाद
अद्यतन - मैंने कुछ डिबगिंग की है और मुझे लगा कि पेज-cache.js फॉर्म की कुंजी को फिर से सेट करके समस्या पैदा कर रहा है। यह इस तथ्य के कारण है कि, यह मेरे कुकीज़ की जांच कर रहा है यदि 'form_key' कुकी सेट है, यदि नहीं, तो एक नया फ़ॉर्म कुंजी बनाएं और कुकीज़ को सहेजें। समस्या यह है कि यह कुकी को बचाने में सक्षम नहीं है, यही कारण है कि यह नए फॉर्म कीज बनाता रहता है।
अद्यतन - मैंने समस्या हल कर दी है। यह कुकी डोमेन समस्याओं के कारण है। धन्यवाद