Ungültiger Formularschlüssel. Bitte aktualisieren Sie die Seite. Fehler beim Speichern des Produkts

14

Hallo zusammen,
ich erhalte " Invalid Form Key. Please refresh the page." diese Fehlermeldung, wenn ich versuche, mein Produkt im Admin-Bereich zu speichern.
Ich habe diesen Link hier durchlaufen , aber keinen Erfolg.
Als ich meine Protokolldatei ansah, zeigte sie mir dies an

2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: httponly  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 94
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: secure  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 96
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: domain  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 98

Ich habe die Zeilen in der Datei auskommentiert, wie in diesem Artikel hier vorgeschlagen. Und die Fehler in den Protokolldateien waren verschwunden. Mein Produkt und die Fehlermeldung "Ungültiger Formularschlüssel. Bitte aktualisieren Sie die Seite." Können jedoch immer noch nicht gespeichert werden. ist wie es ist.
Ich habe die Post-Daten in Firebug überprüft und es zeigte mir

form_key    THJDhxajLIZnzrHt
form_key    {{formKey}}

als Schlüsselvariablen übergeben, wenn ich mein Produkt speichere. Wenn ich es auf meinem lokalen Computer eingecheckt habe, wird es mir angezeigt

form_key    prvOwOCGjSKG6DpF
form_key    {{formKey}}
form_key    prvOwOCGjSKG6DpF

etwas wie das.
Hat jemand eine Ahnung was hier falsch ist. Hier kann ich sehen, dass der letzte Wert für " form_key" das Übergeben von Live " {{formkey}}" ist, während er in lokal " prvOwOCGjSKG6DpF" ist. Jede Hilfe wird geschätzt.

Jaimin Sutariya
quelle

Antworten:

11

Es gibt noch eine weitere Ursache für diesen Fehler: ein Fehler cookie_domainin der Konfiguration. Da Sie sich nicht im Admin-Bereich anmelden können, können Sie dies direkt über mysql überprüfen:

SELECT * FROM core_config_data WHERE path LIKE '%cookie_domain%';

Sie können den Wert auch direkt in mysql ändern. Vergiss nicht, den Cache danach zu leeren.

Andreas von Studnitz
quelle
4

Deaktivieren Sie zuerst alle benutzerdefinierten Module, die Sie installiert haben, und prüfen Sie, ob das Problem weiterhin besteht.

Es sieht so aus, als würde ein zusätzliches Feld in die Produktseite eingefügt, das mit dem Parameter form_key kollidiert, der vom Medien-Uploader und anderen Teilen der Produktbearbeitungsseite als Nonce verwendet wird .

Roscius
quelle
Hallo Roscius, Wie du mir vorgeschlagen hast, muss es ein Problem mit den Medien-Upload-Dateien im magento js-Ordner geben. Ich habe den js-Ordner ersetzt und alles funktioniert jetzt. Vielen Dank ..
Jaimin Sutariya
2

Problem mit der Core-Datei. Bitte überprüfen Sie den folgenden Pfad und Code. Sie müssen den folgenden Code kommentiert haben, um sich bei Chrome anzumelden.

 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:87
// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath(),
    'domain'   => $cookie->getConfigDomain(),
    'secure'   => $cookie->isSecure(),
    'httponly' => $cookie->getHttponly()
);

if (!$cookieParams['httponly']) {
    unset($cookieParams['httponly']);
    if (!$cookieParams['secure']) {
        unset($cookieParams['secure']);
        if (!$cookieParams['domain']) {
            unset($cookieParams['domain']);
        }
    }
}
Zaheerabbas
quelle
1

Sehen Sie sich Ihre .htaccess-Datei genauer an. Wenn ich meinen 1.7.0 Magento-Speicher auf einen anderen Server migriere, habe ich die .htaccess-Datei vom alten Server und dann die Meldung "Ungültiger Formularschlüssel. Bitte aktualisieren Sie die Seite" auf dem Bildschirm eingeblendet, und es passiert nichts, auch wenn Konfigurationsänderungen vorgenommen wurden. Die Lösung bestand darin, ein neues Magento zu installieren und dann die My Store-Dateien im Magento-Stammverzeichnis zu kopieren, mit Ausnahme von .htaccess. Als ich die .htaccess-Datei aus der Neuinstallation verwendet habe, funktioniert alles einwandfrei. Ich weiß nicht, was genau passiert, vielleicht hat jede Serverstruktur andere und bestimmte .htaccess-Einträge und -Regeln. Es funktioniert bei mir

Paulo
quelle
1

Ich bin mir nicht ganz sicher, wo das Problem lag, aber es scheint das Ergebnis der ServerNameAnweisungen meines Apache-Servers zu sein .

Ich habe dem Server den gleichen globalen Namen gegeben ServerNamewie meiner Magento-Installation. Da der gesamte Zweck von Formularschlüsseln (glaube ich) mit der Sicherheit von Domain-Namen (XSRF usw.) zu tun hat, könnte dies der Grund sein.

Ich habe mein globales ServerNamein buchstäblich "example.com" geändert .

Ich habe dann den Magento-Cache und alle Sitzungen auf dem Remote-Server geleert und die Cookies in meinem Browser gelöscht.

Und jetzt funktioniert es.

( max_input_varsIn diesem Fall hatte das nichts mit PHP zu tun . Ich hatte jedoch vor langer Zeit ein anderes Problem damit. Beim Speichern von Produkten der Kategorie wurde nur die erste max_input_varsAnzahl von Produkten gespeichert, und der Rest wurde mit dem nicht mehr assoziiert Sie haben also möglicherweise bereits 10.000 Produkte in der Kategorie, aber wenn Sie versuchen, 1 weitere im Admin hinzuzufügen, erhalten Sie am Ende nur 1.000.)

Buttle Butkus
quelle
1

Dieser Fehler tritt aufgrund der php.ini-Variablen " max_input_vars " auf. Erhöhen Sie diese auf 10000 durch die folgende php-Funktion:

ini_set('max_input_vars', 10000);

ODER Verwenden der Linux-Befehlszeile

cd /etc/php/7.0/apache2/
vi php.ini (Open for edit and set max_input_vars=10000)
:wq(Press esc and write the mentioned command to save and exit)
sudo /etc/init.d/apache2 restart(Restart Server)
Ahmad Vaqas Khan
quelle