"Недійсний ключ форми. будь ласка, оновіть сторінку ”- не вдається увійти до панелі адміністратора


18

Я регулярно відвідую свій веб-сайт, щоб переконатися в його роботі, і помітив, що зображення для продуктів не з’являються, думаючи, що це проблема з індексуванням кешу. Я намагався увійти на панель адміністратора і отримав помилку:

"недійсний ключ форми. Будь ласка, оновіть сторінку"

або

Іншими симптомами є те, що клієнти не могли додати товари до кошика та надзвичайно повільні показники.

У журналах немає помилок (/ var / logs)

Які додаткові кроки потрібно зробити, щоб вирішити цю проблему?

Відповіді:


48

Це також трапляється, якщо домен файлів cookie у Системі> Конфігурація> Веб> Файли cookie відрізняється від фактичного домену сайту.

Щоб видалити налаштування без доступу до панелі адміністратора:

  1. використовувати наступний запит SQL на консолі MySQL або в такому клієнті, як phpMyAdmin:

    DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain';
  2. очистити кеш. Якщо ви використовуєте резервний файл кешу за замовчуванням, видаліть усі каталоги нижче var/cache.

Потім, як тільки ви зможете знову увійти в систему, встановіть правильний домен файлів cookie для кожного веб-сайту чи магазину (Приклад: наприклад.com .example.com, www.example.com та всі інші субдомени)

Якщо ви використовуєте n98-magerun (і вам слід!), Те ж саме можна зробити з:

n98-magerun config:delete web/cookie/cookie_domain
n98-magerun cache:clean config

Привіт @fschmengler, будь ласка, додайте більше інформації про те, як перевірити цей параметр у phpmyadmin, оскільки користувач не може увійти до панелі адміністратора, а деякі розробники, які не знайшли розробку Magento, не знають, де перевірити такі налаштування в базі даних. Вибачте, але тільки для допомоги нових членів :)
Мохіт Кумар Арора

@MohitKumarArora ви праві, я оновив відповідь
Фабіан Шменглер

Тепер я відмовив. :)
Мохіт Кумар Арора

N98 спосіб працює фантастично. Дякуємо за інформацію.
Енді Джонс

@FabianSchmengler, я перевірив core_config_data і це правильне значення для мого сайту. Чи потрібно мені ще пройти всі кроки, які ви надали? Чи все-таки працює ваш підхід у цьому випадку?
datasn.io

18

Я публікую запитання / відповідь, тому що я не зміг знайти щось відповідне.

Проблема полягала в тому, що накопичувач, на якому знаходиться моя установка magento, був повний. Я звільнив деяку кімнату, очистив / var / сесію та / var / cache, і все повернулося до норми.


1
Попередження: Якщо видалити, усі var/sessionвийдуть із системи та очистять усі гості. Тут ви знайдете рішення, яке видаляє лише старі сеанси: magento.stackexchange.com/a/58167/243
Fabian Schmengler

@fschmengler так, але чи справді ви хочете ризикнути, щоб почати сеанси, які не були належним чином створені? Коли я перевірив / var / сесію, були всі види 0kb файлів, що не є нормальним.
SR_Magento

1
Абсолютно перше, що потрібно перевірити. Про це годинами ламали голову. Спасибі!
Брайант Джексон

Для мене це був простір на диску. Я виявив це, намагаючись витягнути git, оскільки це не вдалось із помилкою, пов'язаною з дисковим простором.
Дамодар Башіял

@SR_Magento Сер. Я стільки разів видаляв папку кешу і папку сеансу, вона працює лише деякий час, через якийсь час з’являється та сама проблема
Amaresh Tiwari

3

Є 3 рішення:

  1. Використовуйте ці команди в phpmyadmin

    ВИДАЛИТИ З core_config_data WHERE path = 'web / cookie / cookie_domain';

    ВИДАЛИТИ З core_config_data WHERE path = 'web / cookie / cookie_path';

Тепер спробуйте увійти.

2.Виберіть все в папці var і перевірте, чи працює воно.

3.Замініть файл .htaccess на зразок .htaccess-файлу, а потім спробуйте увійти в систему адміністратора.

Сподіваюся, це допоможе вам.


1

Ще одна можлива, дещо очевидна, проблема, яку слід перевірити спочатку: якщо ваш сайт використовує SSL, переконайтеся, що ви не використовуєте протокол http для своєї сторінки адміністратора; ви повинні використовувати https . наприклад https://example.com/admin


1

У моєму випадку проблема, здається, полягає в тому, що я створив користувача адміністратора за допомогою n98-magerun з користувачем, який не може писати на magentofolder / var і використовував замість цього папку / tmp / magento.

Я щойно видалив свого адміністратора і виконав sudo -iu OTHERUSER(користувач, який володіє папкою magento) і побіг n98-magerun admin:user:createзнову, щоб створити свого користувача.


ОНОВЛЕННЯ: В іншому випадку URL-адреса адміністратора відвідується без www. синтаксису, а в налаштуваннях cookie використовували www. Просто розміщуючи www. в URL-адресі адміністратора вирішено проблему. ;)


Чи не повинно бути цього admin:user:create?
sr9yar

1
@ sr9yar nope - це Magento2 - це M1
treyBake

0

Поряд з вищевказаним кроком очищення кешу, я також повинен був дотримуватися статті нижче та встановити правильну інформацію про дані сеансу, дотримуючись наведених нижче кроків

Посилання статті

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

Я виправив це, змінивши session.save_path, щоб розмістити його у вікні.

Змініть файл-файл / etc / local.xml

замінено нижче

Потім воно почало працювати. Також іноді ви не можете вирішити проблему, тому важливо включити реєстрацію помилок. Увімкніть це, посилаючись на наступну статтю

https://www.thecreativedev.com/how-to-enable-system-log-and-errorswarning-in-magento/


0

Очистити файли cookie та кеш. Відкрийте панель адміністратора в режимі анонімного перегляду.


-3

Ця відома проблема, як правило, виникає після застосування патчу SUPEE-7405, що входить до випуску Magento 1.9.2.3. Це можна вирішити, додавши нижче код у файл - app / code / local / Mage / Core / Model / Session.php

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

Цей файл може не існувати у вашому сховищі, тому скопіюйте його app/code/core/Mage/Core/Model/Session.phpта вставте в нього. app/code/local/Mage/Core/Model/Session.phpПісля цього додайте вищевказану функцію у файл, оскільки він може бути відсутнім у основному файлі.

Очистіть також кеш браузера та файли cookie. Очистити всі файли у вмісті Magento var/cacheта var/sessionвмісті папок. Потім увійдіть на панель адміністратора.


Ermm .. Не було б кращим рішенням додати вихідний блок клавіші форми до перекритого шаблону адміністратора? (Таким чином, захист ЦСРР буде працювати за призначенням).
Лука А. Лебер

2
Ніколи не слід редагувати основні файли.
Макс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.