Ich habe gerade eine Neuinstallation von Magento 1.9.0.1 durchgeführt und sehe ein merkwürdiges Verhalten bei der Kundenanmeldung.
In Chrome (Version 36) funktioniert das Anmeldeformular nicht. Ich werde nur zur Anmeldeseite weitergeleitet. Es liegt keine Fehlermeldung vor. Wenn ich jedoch ein neues Inkognito-Fenster öffne, kann ich mich problemlos anmelden. Da ich dachte, dies sei ein Cookie-Problem, löschte ich alle meine Cookies aus dem Browser und versuchte es erneut, und ich erhielt die gleichen Ergebnisse. In beiden Fällen kann ich mich ohne Probleme beim Admin-Panel anmelden.
Ich habe dies auch in Firefox und Safari ausprobiert. Firefox Ich würde sehen, dass das Gleiche passiert (aber nicht konsistent und ich könnte es durch Löschen der Cookies beheben) und ich könnte nicht in Safari replizieren.
Ich hatte noch nie ein Problem mit einer anderen Version von Magento. Gibt es eine grundlegende Änderung in der Art und Weise, wie Magento mit Cookies in Version 1.9 umgeht, und / oder kann ich etwas tun, um dies stabiler zu machen?
quelle
www
beispielsweiseabc.com
umgeleitet wurdewww.abc.com
. In diesem Fall hat der Browser die Cookies für beide festgelegt, und die Anmeldungen haben speziell aufgehört zu funktionieren. Wenn ich jedoch den Cookie manuell lösche, der ohnewww
die Anmeldungen war, funktioniert er wieder. Können Sie überprüfen, ob dies auch bei Ihnen der Fall ist?Antworten:
Ich hatte das selbe problem ....
Die Antwort ist, dass Ihr Thema keine Variable namens liefert
form_key
.Genau wie oben muss ich hinzufügen:
Du fügst es gleich danach hinzu
<ul class="form-list">
zu jeder meiner
login.phtml
Dateien für das Thema.Möglicherweise haben Sie auch Probleme mit der Aktualisierung der Anzahl der Warenkorbelemente
Hier ist die Bedeutung von
form_keys
:Seit jeher enthielt das Backend von Magento einen Formularschlüssel, der vor XSS-Angriffen geschützt war [1]. Mit Magento 1.8 wurde der Formularschlüssel aus dem gleichen Grund in das Frontend eingegeben: Zum Schutz vor dem Absenden von Formularen von einer anderen Website mithilfe Ihres Browsers. Ein böswilliger Angreifer kann Ihrem Einkaufswagen Inhalte hinzufügen, während Sie sich in einem anderen Browser-Tab befinden, oder sogar eine Bestellung für Sie abschließen. Dies hängt von vorhersehbaren URLs ab, da die Site keinen Zugriff auf den tatsächlichen HTML-Inhalt auf der Browser-Registerkarte hat, auf der Ihre Magento-Bestellung wartet. Alles, was an den Magento Store gesendet wird, sendet jedoch Ihre Cookies und verwendet somit Ihre Sitzung.
Durch Hinzufügen eines eindeutigen Schlüssels zu jedem Formular oder zu jedem Link, der eine Aktion auf dem Server generiert, ist der URL- oder Formularinhalt nicht mehr vorhersehbar. Der Formularschlüssel wird in den Sitzungsdaten gespeichert und bei der Übermittlung an den Server überprüft. Wenn sie nicht übereinstimmen, erhalten Sie einen Formularschlüsselfehler und die Aktion ist nicht abgeschlossen.
quelle
<?php echo $this->getBlockHtml('formkey'); ?>
eher als die große Eingabe.Es kann sein:
cookie setting issue in Chrome browser
ODER
Magento 1.9 verwendet
form key validation at customer loggin and register
Seite.Auf
Post action
sie überprüfen Sie die Form Tasteusing function _validateFormKey()
am Reglerform key issue: form key missing
Fügen Sie diesen Code in Ihr Formular einODER
Cookie domain setting issue
Gehe zu Check Einstellung ist richtig oder nichtbeim
Admin>System>configuration>General>Web>Session Cookie Management
quelle
if (!$this->_validateFormKey()) {
false zurückgegeben, was bedeutet, dass Magento den angegebenen Schlüssel nicht validieren kann. Irgendeine Idee, warum es passiert?Versuchen Sie, die Lebensdauer der Cookies auf unter 86400 zu erhöhen, da das Problem mit Cookies in Zusammenhang zu stehen scheint
Der Grund kann sein, dass die Cookie-Lebensdauer standardmäßig auf 3600 (1 Stunde) festgelegt ist. Wenn die Computerzeit des Endbenutzers jedoch vor der Serverzeit abläuft, werden Cookies nicht sowohl für das Magento-Frontend als auch für das Backend gesetzt. Beispielsweise ist die Computerzeit des Endbenutzers eine Stunde vor der Zeit des Servers. Dies bedeutet, dass das Cookie (das die Sitzungs-ID des Benutzers enthält) verfällt, sobald sich der Benutzer anmeldet oder versucht, ein Element hinzuzufügen.
quelle
Für zukünftige Leser: Es gibt viele mögliche Ursachen für dieses Problem. Während der Anmeldung wird aus Sicherheitsgründen eine Ausnahmeprotokollierung unterdrückt, sodass Ihr Problem nicht angezeigt wird
var/log/exception.log
.So diagnostizieren Sie Ihr Problem:
app/code/core/Mage/Customer/controllers/AccountController.php
und gehe zurloginPostAction
Methode.Mage::logException($e);
Anruf vorübergehend aus und speichern Sie die ÄnderungVergessen Sie nicht, die Änderungen an rückgängig zu machen
app/code/core/Mage/Customer/controllers/AccountController.php
!Die Ursache für mein Problem war, dass eine Klasse nicht automatisch geladen werden konnte, weil das Modul (falsch)
<codePool>community</codePool>
statt hatte<codePool>local</codePool>
.quelle
Ich habe das Problem behoben, indem ich einfach die folgende Codezeile in die dauerhafte Login-Phtml-Datei eingefügt habe.
quelle
ok nach einer halben stunde fand ich genau heraus, in welchen ordnern login.phtml ich wechseln muss. Also geh zu
und einfügen
nach
das ist es.
quelle
Wenn Sie den Lack-Cache verwenden, liegt möglicherweise ein anderes Problem vor. Ich zitiere eine Lösung, die ich woanders gefunden habe. https://github.com/nexcess/magento-turpentine/issues/169
quelle
Der Grund für dieses Problem ist, dass das benutzerdefinierte Anmeldeformular keinen form_key enthält und eine Überprüfung des Formularschlüssels in loginPostAction von Magento stattfindet.
Sie können es wie folgt beheben:
Finden:
und füge dies direkt nach dem obigen Code ein:
quelle
Das Obige hat für mich absolut gut funktioniert, aber ich habe ein Upgrade von Magento 1.4.1 auf 1.9.1 durchgeführt, was einen enormen Sprung bedeutet. Die Dateien waren nirgends oben zu finden, befanden sich jedoch im Ordner app / design / frontend / BASE.
Dieser Basisordner enthält eine Menge gängiger Dateien seit Magento 1.4, also habe ich gelesen ... Hoffentlich spart dies jemandem die vielen Stunden Arbeit, die ich dafür benötigt habe.
quelle
Wenn Sie eine Social Login-Erweiterung verwenden, fügen Sie auch den Formularschlüssel in die Datei login.phtm ein
quelle
Stellen Sie sicher, dass php-mbstring auf Ihrem Server installiert und aktiviert ist.
Ist dies nicht der Fall, funktioniert der Administrator-Login, der Kunde nicht.
Diese Prüfung kann durchgeführt werden, indem die Ausgabe von überprüft wird
phpinfo()
oder indem vorübergehend die Anmeldungsausnahme um die Zeile177
in aktiviert wird :app/code/core/Mage/Customer/controllers/AccountController.php
Beachten Sie, dass der Vorgang das Kundenkennwort in der protokollierten Ausnahmeverfolgung offenlegen kann.
quelle
Ich hatte das gleiche Problem und löste es, indem ich alle Cookies löschte. Das Problem scheint aufzutreten, wenn Sie mehrere verschiedene Magento-Shops haben und sich gleichzeitig anmelden.
quelle