GetBlockHtml ('फॉर्मकी') क्या है?


19

मैं Magento में उत्पाद संपादित पृष्ठ (पहला टैब) संपादित करने की कोशिश कर रहा हूं और अपने संबंधित टैब से मात्रा (साथ ही कुछ अन्य चीजें) को पहले पृष्ठ तक स्थानांतरित करना चाहूंगा। समझा

<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="product_edit_form" enctype="multipart/form-data">
<?php echo $this->getBlockHtml('formkey')?>
<div style="display:none"></div>
</form>

और पता है कि मात्रा पाठ बॉक्स के लिए कोड है

    <tr>
        <td class="label"><label for="inventory_qty"><?php echo Mage::helper('catalog')->__('Qty') ?><span class="required">*</span></label></td>
        <td class="value">
            <?php if (!$_readonly):?>
            <input type="hidden" id="original_inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][original_inventory_qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>"/>
            <?php endif;?>
            <input type="text" class="input-text required-entry validate-number" id="inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>" <?php echo $_readonly;?>/>
        </td>
        <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
    </tr>

क्या किसी को पता है कि पहले टैब के लिए कोड कहां है? क्या यह फॉर्मकेक के साथ कुछ करना है?

धन्यवाद!

जवाबों:


43

मैगेंटो में फॉर्म की चाबियां क्रॉस साइट रिक्वेस्ट फॉरगिरी के खिलाफ रोकने का एक साधन हैं - एशले श्रोडर द्वारा यहां शानदार ढंग से समझाया गया है , लेकिन संक्षेप में, यह आपको उन लोगों से सुरक्षित रखने की कोशिश कर रहा है, जो आपके फॉर्म (जैसे कार्ट में जोड़ें) से अन्य के रूप में प्रस्तुत कर रहे हैं आप।

यह खतरनाक हो सकता है क्योंकि कोई व्यक्ति आपके स्टोर में सैद्धांतिक रूप से अपना स्वयं का फॉर्म और पोस्ट किसी भी रूप में हैंडलर नियंत्रक कार्रवाई के बिना बना सकता है, यहां तक ​​कि आपको पता भी नहीं चलेगा। CSRF सुरक्षा अनिवार्य रूप से किसी भी पोस्ट को नजरअंदाज करती है जो फॉर्म पोस्ट के साथ शामिल form_key पैरामीटर पर एक जांच विफल हो जाती है।

तो, क्या करता <?php echo $this->getBlockHtml('formkey')?>है? यह मैगेंटो को "फॉर्मकी" नाम के साथ एक लेआउट ब्लॉक की तलाश करने और इसे आउटपुट करने के लिए कहता है। Magento में यह आमतौर पर कुछ फ़ाइल है जिसमें यह है:

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

यह मैगेंटो को उपयोगकर्ता सत्र के लिए एक अद्वितीय फॉर्म कुंजी को आउटपुट और स्टोर करने का निर्देश देता है। सभी सीएसआरएफ-संरक्षित मैगनेटो नियंत्रक कार्रवाई मूल्य का कुछ भी करने से पहले इसके खिलाफ सत्यापित करेगी।

HTH!


ठीक है कि निश्चित रूप से बताते हैं कि वे क्या करते हैं और मैं आपको बहुत धन्यवाद देता हूं। अब मैं अभी भी यह जानने की कोशिश कर रहा हूं कि उस मात्रा को कैसे प्राप्त किया जा सकता है <tr> अपने उत्पाद में पहले टैब को संपादित करें। विचार? मैं इसे शीर्ष पर कर सकता हूं, लेकिन मैं चाहता हूं कि यह शामिल क्षेत्रों में से एक हो इसलिए ऐसा लगता है कि यह वहां होना चाहिए था।
new2programming

अंतिम वाक्य मुझे आश्चर्यचकित करता है कि क्या कुछ मैगनेटो नियंत्रक हैं जो सीएसआरएफ संरक्षित ओ_ओ नहीं हैं
निक रोलांडो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.