Magento — це величезна платформа з великою кількістю функцій і коду відповідно. Отже, як і на будь-якій іншій платформі електронної комерції, ви зіткнетеся з помилками.
Magento Invalid Form Key. Please refresh the page – це одна з найпоширеніших помилок Magento, з якою ви, ймовірно, стикалися. Вона може з'явитися, коли ви:
- встановлюєте розширення Magento 2;
- оновлюєте Magento;
- створюєте обліковий запис на локальному хості;
- створюєте конфігурований продукт з багатьма дочірніми продуктами (child products);
- додайте багато пов'язаних, перехресних і додаткових (related, cross-sale, and upsell) продуктів до будь-якого з продуктів;
- зберігаєте атрибут з кількома параметрами;
- призначаєте багато пов’язаних продуктів і публікацій до статті в блозі.
Отже, в основному, помилка "Magento Invalid Form Key. Please refresh the page" з’являється, коли велика кількість даних передається на сервер під час надсилання форми.
Ця стаття допоможе вам зрозуміти причини помилки сторінки "Invalid Form Key. Please refresh the page" в Magento і як ви можете легко її виправити.
Чому з'являється помилка "Invalid Form Key. Please refresh the page"?
Хоча ви можете зіткнутися з цією помилкою під час виконання різних завдань на вашій Magento, завжди є лише 3 причини чому вона стається.
Платформа Magento має певні вимоги до сервера для значення PHP max_input_vars. Це максимальна кількість змінних, які сервер використовує для однієї функції, щоб уникнути перевантаження.
За замовчуванням задано значення 1000, що є недостатнім для Magento і викликає помилку.
Крім того, ви можете отримати цю проблему на локальному хості. Вона з’являється, лише якщо ви використовуєте «localhost» для базової URL-адреси замість «127.0.0.1», і Magento просто не розпізнає її. Це викликає помилку системи cookie та, відповідно, помилку "Magento Invalid Form Key. Please refresh the page".
Нарешті, ви також можете отримати цю помилку на вітрині магазину, коли ви намагаєтеся надіслати деякі форми. Ця проблема виникає, якщо у вас є стара версія Magento або стара форма, і не весь javascript завантажено для виконання запитуваної дії (напр., додавання товару в кошик).
У нових версіях Magento кнопка add to cart вимкнена, доки значення form _key не стане доступним після завантаження всього JS-коду.
Відповідно до причин, чи знаєте ви, як виправити помилку "Invalid Form Key. Please refresh the page"?
Щоб виправити "Invalid Form Key. Please refresh the page":
Визначивши причини появи помилки "Magento Invalid Form Key. Please refresh the page" у вашому магазині, перейдіть до відповідного рішення.
Рішення 1. Збільште max_input_vars через SSH.
Для цього потрібно відредагувати файл php.ini. Будь ласка, внесіть ці зміни лише у випадку, якщо ви знайомі з редагуванням файлу php.ini. В іншому випадку, попросіть свого хостинг провайдера або сервер адміна змінити це значення.
- Увійдіть на сервер свого веб-сайту за допомогою SSH.
- Знайдіть папку з файлом php.ini і відкрийте її через редактор vi.
- Відредагуйте значення max_input_vars до щонайменше 5000 або 10000 та збережіть файл.
- Перезавантажте веб-сервер.
Рішення 2. Змініть базову URL-адресу вашого локального середовища на 127.0.0.1.
Ви можете виконати таку команду, щоб змінити її:
php bin/magento setup:store-config:set --base-url="http://127.0.0.1:8080/
Якщо ви запускаєте Magento на HTTPS, ви також можете змінити захищену базову URL-адресу
php bin/magento setup:store-config:set --base-url-secure="https://127.0.0.1:8080/
Щоб змінити базову URL-адресу на локальному хості вручну:
- Знайдіть таблицю core_config_data у своєму PHPAdmin.
- Змініть значення web/unsecure/base_url на 127.0.0.1.
- Очистіть кеш, щоб задіяти зміни:
php bin/magento cache:flush
Рішення 3. Оновіть Magento або покращте її швидкість, щоб усі Javascript завантажувалися достатньо швидко.
Якщо ви зіткнулися з помилкою "Invalid Form Key. Please refresh the page", яка з’являється на вітрині в останній версії Magento, попросіть розробників перевірити її. Вони повинні відредагувати шаблон кнопки Add to Cart, щоб зробити її доступою лише після завантаження всіх скриптів JS.
Примітка: якщо ви використовуєте кастомне розширення або тему, причин може бути багато і відповідно виправлень також. Зверніться до розробників теми або кастомного модуля.
Magento "Invalid Form Key. Please refresh the page" — це поширена помилка, і на певному етапі ви зіткнетеся з нею. Принаймні, тепер ви знаєте, як її виправити, щоб ваш магазин Magento працював безперебійно.