Wahrscheinlich nichts, weil der Formularschlüssel zufällig ist und jedes Mal anders sein muss.
Es sollte also keinen Unterschied machen, aber die beste Vorgehensweise, wie Sie die Eingabe des Formularschlüssels zu Ihrer Vorlage hinzufügen sollten, ist folgende:
<?php echo $this->getBlockHtml('formkey') ?>
Update: Ich muss zugeben, ich habe mich in einem Punkt geirrt: Der Formularschlüssel bleibt während einer Sitzung gleich. Wenn Sie auf verschiedenen Seiten einen anderen Formularschlüssel haben, liegt möglicherweise ein Problem mit einem ganzseitigen Cache eines Drittanbieters vor, der den Formularschlüssel im Cache enthält (was nicht der Fall sein sollte), oder der Formularschlüssel befindet sich in einem benutzerdefinierten Block, der den Block verwendet Zwischenspeicher. Für letzteres habe ich eine Lösung gefunden: Cache-Blöcke, die form_key enthalten (dh dynamischer Inhalt)
getBlockHtml()
ist implementiert inMage_Core_Block_Abstract
und derformkey
Block ist definiert inbase/default/layout/core.xml
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>"/>
ein. Scheint es zu beheben, aber immer noch frustrierend. gibt es einen besseren weg.Ich weiß, dass diese vage Frage nicht beantwortet werden sollte. Wie auch immer ich hier auf ein ähnliches Problem gestoßen bin, das habe ich gelernt:
Anhand eines kurzen Beispiels ich daher die Aktion zum Auschecken von addtocarts wie folgt in einem neuen Modul überschrieben:
app / code / local / Name / Checkout / controller / CartController.php
app / code / local / Name / Checkout / etc / config.xml
app / etc / modules / Name_Checkout.xml
Ich hoffe, dass dies so umfassend sein wird, dass jeder dies nachvollziehen kann
quelle
Kann nicht kommentieren, also antworte ich stattdessen. Fügen Sie den Formularschlüssel nicht in den Controller ein. Dadurch werden die Sicherheitsvorteile des Formularschlüssels deaktiviert. Wenn Sie Lack verwenden, können Sie den Schlüssel mit ESI (Edge Side Includes) hinzufügen. Sie müssen es in einem Cookie speichern, damit es funktioniert.
quelle