“Ungültiger Formularschlüssel. Bitte aktualisieren Sie die Seite. ”- Anmeldung im Admin-Bereich nicht möglich

18

Ich besuche regelmäßig meine Website, um sicherzustellen, dass sie funktioniert, und stelle fest, dass keine Bilder für Produkte angezeigt werden. Ich dachte, es handele sich um ein Problem mit dem Index-Cache. Ich habe versucht, mich im Admin-Bereich anzumelden, und habe den Fehler erhalten:

"Ungültiger Formularschlüssel. Bitte aktualisieren Sie die Seite."

oder

Andere Symptome sind, dass Kunden keine Produkte in den Warenkorb legen konnten und die Leistung extrem langsam ist.

Es gibt keine Fehler in den Protokollen (/ var / logs)

Welche zusätzlichen Schritte muss ich ausführen, um dieses Problem zu beheben?

SR_Magento
quelle

Antworten:

48

Dies ist auch der Fall, wenn sich die Cookie-Domäne unter System> Konfiguration> Web> Cookies von der tatsächlichen Site-Domäne unterscheidet.

So entfernen Sie die Einstellung ohne Zugriff auf das Admin-Panel:

  1. Verwenden Sie die folgende SQL-Abfrage auf der MySQL-Konsole oder in einem Client wie phpMyAdmin:

    DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain';
  2. Cache leeren. Wenn Sie das standardmäßige dateibasierte Cache-Backend verwenden, löschen Sie alle folgenden Verzeichnisse var/cache.

Sobald Sie sich wieder anmelden können, stellen Sie für jede Website oder jedes Geschäft die richtige Cookie-Domain ein (Beispiel: .example.comBeispiel.com, Beispiel.com und alle anderen Subdomains).

Wenn Sie n98-magerun verwenden (und das sollten Sie auch!), Können Sie dasselbe tun mit:

n98-magerun config:delete web/cookie/cookie_domain
n98-magerun cache:clean config
Fabian Schmengler
quelle
Hallo @fschmengler, bitte füge weitere Details hinzu, wie diese Einstellung in phpmyadmin überprüft werden kann, da der Benutzer sich nicht im Admin-Panel anmelden kann und einige Entwickler, die neu in der Magento-Entwicklung sind, nicht wissen, wo solche Einstellungen in der Datenbank überprüft werden müssen. Sorry, aber nur für die Hilfe neuer Mitglieder :)
Mohit Kumar Arora
@MohitKumarArora du hast recht, ich habe die Antwort aktualisiert
Fabian Schmengler
Jetzt habe ich abgestimmt. :)
Mohit Kumar Arora
n98 funktioniert übrigens fantastisch. Danke für die Information.
Andy Jones
@FabianSchmengler, ich habe die core_config_data überprüft und es ist der richtige Wert für meine Site. Muss ich noch alle von Ihnen bereitgestellten Schritte ausführen? Würde Ihr Ansatz in diesem Fall noch funktionieren?
datasn.io
18

Ich poste die Frage / Antwort, weil ich nichts Relevantes gefunden habe.

Das Problem war, dass das Laufwerk, auf dem sich meine Magento-Installation befindet, voll war. Ich machte etwas Platz frei, löschte / var / session und / var / cache und alles wurde wieder normal.

SR_Magento
quelle
1
Achtung: Beim Löschen var/sessionwerden alle Benutzer abgemeldet und alle Einkaufswagen gelöscht . Hier finden Sie eine Lösung, die nur alte Sitzungen entfernt: magento.stackexchange.com/a/58167/243
Fabian Schmengler
@fschmengler ja, aber willst du wirklich ein Risiko eingehen mit Sessions, die von Anfang an nicht richtig erstellt wurden? Als ich die / var / session überprüfte, gab es alle Arten von 0kb-Dateien, was nicht normal ist.
SR_Magento
1
Absolut eine erste Sache zu überprüfen. Habe mir schon seit Stunden den Kopf zerbrochen. Vielen Dank!
Bryant Jackson
Für mich war es Speicherplatz. Ich fand heraus, nachdem ich versucht hatte, Git zu ziehen, da es mit dem Speicherplatz verbundenen Fehler fehlschlug.
Damodar Bashyal
@ SR_Magento Sir Ich wurde Cache-Ordner und Sitzungsordner so oft entfernt, dass es nur einige Zeit nach einiger Zeit funktioniert. Es gibt dasselbe Problem
Amaresh Tiwari
3

Es gibt 3 Lösungen:

  1. Verwenden Sie diese Befehle in phpmyadmin

    DELETE FROM core_config_data WHERE path = 'web / cookie / cookie_domain';

    DELETE FROM core_config_data WHERE path = 'web / cookie / cookie_path';

Versuchen Sie sich jetzt einzuloggen.

2.Lösche alles im var Ordner und überprüfe, ob es funktioniert.

3.Ersetzen Sie die .htaccess-Datei durch die .htaccess-Beispieldatei und versuchen Sie dann, sich beim Administrator anzumelden.

Hoffe es hilft dir.

Lokranjan
quelle
1

Ein anderes mögliches, etwas offensichtliches Problem, das Sie zuerst überprüfen sollten: Wenn Ihre Site SSL verwendet, stellen Sie sicher, dass Sie nicht das http-Protokoll für Ihre Admin-Seite verwenden. Sie sollten https verwenden . zB https://example.com/admin

Voxoid
quelle
1

In meinem Fall scheint das Problem darin zu liegen, dass ich den Admin-Benutzer mit n98-magerun mit einem Benutzer erstellt habe, der nicht auf magentofolder / var schreiben kann, und stattdessen den Fallback-Ordner / tmp / magento verwendet habe.

Ich habe gerade meinen Admin-Benutzer gelöscht und einen sudo -iu OTHERUSER(Benutzer, der den Magento-Ordner besitzt) ausgeführt und n98-magerun admin:user:createerneut ausgeführt, um meinen Benutzer zu erstellen.


UPDATE: In einem anderen Fall wurde die Admin-URL ohne www aufgerufen. Syntax und die Cookie-Einstellungen verwendeten www. Einfach das www setzen. in der admin url wurde das problem behoben. ;)

Ricardo Martins
quelle
Sollte das nicht sein admin:user:create?
Sonntag,
1
@ sr9yar nein - das ist Magento2 - das ist M1
treyBake
0

Zusammen mit dem obigen Schritt zum Löschen des Caches musste ich auch dem folgenden Artikel folgen und die Sitzungsdateninformationen in den richtigen Pfad setzen, indem ich die folgenden Schritte befolge

Artikel lesen

/programming/26123081/failed-to-write-session-data-magento

Ich habe es behoben, indem ich den session.save_path geändert habe, um es in der VM zu platzieren.

Ändern Sie die Datei app / etc / local.xml

ersetzt durch unten

Dann fing es an zu arbeiten. Manchmal können Sie das Problem auch nicht wirklich erkennen. Daher ist es wichtig, dass Sie die Fehlerprotokollierung aktivieren. Aktivieren Sie dies, indem Sie auf den folgenden Artikel verweisen

https://www.thecreativedev.com/wie-zu-aktivieren-System-Log-und-Fehler-in-magento/

Abhishek Chowla
quelle
0

Cookies und Cache löschen. Öffnen Sie das Admin-Panel im Inkognito-Modus.

Abdul Rafay
quelle
-3

Dies ist ein bekanntes Problem, das im Allgemeinen nach der Installation des in Magento 1.9.2.3 enthaltenen Patches SUPEE-7405 auftritt. Es kann durch Hinzufügen des folgenden Codes in der Datei - app / code / local / Mage / Core / Model / Session.php gelöst werden

public function validateFormKey()
{
    if (!($formKey = $_REQUEST['form_key']) || $formKey != $this->getFormKey()) {
        return false;
    }
    return true;
}

Diese Datei ist möglicherweise nicht in Ihrem Repository vorhanden. Kopieren Sie sie daher app/code/core/Mage/Core/Model/Session.phpund fügen Sie sie in app/code/local/Mage/Core/Model/Session.phpAfter ein. Fügen Sie dann die obige Funktion in die Datei ein, da sie möglicherweise in der Kerndatei fehlt.

Leeren Sie auch Ihren Browser-Cache und Ihre Cookies. Löschen Sie alle Dateien in Magento var/cacheund var/sessionOrdnerinhalte. Dann melden Sie sich in Ihrem Admin-Bereich an.

InfoBeans
quelle
Ermm..wäre es nicht eine bessere Lösung, die Ausgabe des Formularschlüsselblocks der überschriebenen adminhtml-Vorlage hinzuzufügen? (Auf diese Weise funktioniert der CSRF-Schutz wie beabsichtigt).
Luke A. Leber
2
Man sollte niemals Kerndateien bearbeiten.
Max