Nieprawidłowy klucz formularza. Odśwież stronę. błąd przy zapisywaniu produktu

14

Witaj
, otrzymuję ten błąd „ Invalid Form Key. Please refresh the page.” za każdym razem, gdy próbuję zapisać mój produkt w panelu administracyjnym.
Przejrzałem tutaj ten link, ale bez powodzenia.
Kiedy spojrzałem na mój plik dziennika, wyświetliło mi się to

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

Skomentowałem wiersze w pliku, jak sugerowano w tym artykule tutaj. Błędy w plikach dziennika zniknęły. Ale nadal nie mogę zapisać mojego produktu i błędu „Nieprawidłowy klucz formularza. Odśwież stronę”. jest jak jest.
Sprawdziłem dane postu w Firebug i to mi pokazało

form_key    THJDhxajLIZnzrHt
form_key    {{formKey}}

jako kluczowe zmienne formularza przekazywane podczas zapisywania produktu. Po sprawdzeniu go na lokalnej maszynie wyświetla się

form_key    prvOwOCGjSKG6DpF
form_key    {{formKey}}
form_key    prvOwOCGjSKG6DpF

coś takiego.
Czy ktoś ma pojęcie, co jest tutaj nie tak? Tutaj widzę, że ostatnia wartość dla „ form_key” przekazania na żywo to „ {{formkey}}”, podczas gdy w przypadku lokalnym to „ prvOwOCGjSKG6DpF”. Każda pomoc jest mile widziana.

Jaimin Sutariya
źródło

Odpowiedzi:

11

Istnieje jeszcze jedno źródło tego błędu: niewłaściwa cookie_domainkonfiguracja. Ponieważ nie możesz zalogować się do obszaru administratora, możesz to sprawdzić bezpośrednio za pomocą mysql:

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

Możesz także zmienić wartość bezpośrednio w mysql. Nie zapomnij później wyczyścić pamięci podręcznej.

Andreas von Studnitz
źródło
4

Najpierw spróbuj wyłączyć wszelkie niestandardowe moduły, które zainstalowałeś i sprawdź, czy problem nie ustąpi.

Wygląda na to, że coś wstrzykuje dodatkowe pole do strony produktu, które koliduje z parametrem form_key, który jest używany przez program do przesyłania mediów i inne części strony edycji produktu jako nonce .

Roscius
źródło
Witaj Roscius, jak zasugerowałeś, pomyślałem, że musi być jakiś problem z przesyłaniem plików multimedialnych do folderu magento js. Wymieniłem folder js i wszystko działa teraz. Dzięki ..
Jaimin Sutariya,
2

problem z plikiem podstawowym. Sprawdź poniżej ścieżkę i kod. Musisz skomentować poniższy kod dla problemu z logowaniem Chrome.

 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
źródło
1

Przyjrzyj się bliżej swojemu plikowi .htaccess. Podczas migracji mojego sklepu Magento 1.7.0 na inny serwer załączyłem plik .htaccess ze starego serwera, a następnie na ekranie pojawia się komunikat „Nieprawidłowy klucz formularza. Proszę odświeżyć stronę” i nic się nie dzieje, nawet zmiany konfiguracji miały wpływ. Rozwiązaniem było zainstalowanie nowego Magento, a następnie skopiowanie plików My Store do katalogu głównego Magento, z wyłączeniem .htaccess. Kiedy użyłem .htaccess ze świeżej instalacji, wszystko zaczyna działać dobrze. Nie wiem, co dokładnie się dzieje, może każda struktura serwera ma inne i konkretne wpisy i reguły .htaccess. Działa mi to

Paulo
źródło
1

Nie jestem do końca pewien, na czym polegał problem, ale wydaje się, że wynikało to z ServerNamewytycznych mojego serwera Apache .

Dałem serwerowi ten sam globalny, ServerNameco moją instalację Magento. Ponieważ cały cel kluczy formularza (myślę) ma związek z bezpieczeństwem nazw domen (XSRF itp.), Może to być powód.

Zmieniłem swój globalny ServerNamena dosłownie „example.com”.

Następnie wyczyściłem pamięć podręczną Magento i wszystkie sesje na zdalnym serwerze i usunąłem pliki cookie w przeglądarce.

A teraz działa.

(W max_input_varstym przypadku nie miało to nic wspólnego z PHP . Dawno temu miałem inny problem. Podczas zapisywania produktów kategorii, tylko pierwsza max_input_varsliczba produktów zostanie zapisana, a reszta zostanie odłączona od kategorii. Być może masz już 10 000 produktów w tej kategorii, ale kiedy spróbujesz dodać 1 więcej w adminie, a skończysz tylko 1000).

Buttle Butkus
źródło
1

Ten błąd powstaje z powodu zmiennej php.ini „ max_input_vars ” Zwiększ ją do 10000 poprzez poniższą funkcję php:

ini_set('max_input_vars', 10000);

LUB Korzystanie z wiersza poleceń systemu Linux

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
źródło