Неверный Ключ Формы. Пожалуйста, обновите страницу. ошибка при сохранении продукта
Всем привет
Я получаю эту ошибку "Invalid Form Key. Please refresh the page.
" всякий раз, когда пытаюсь сохранить свой продукт на панели администратора.
Я прошел через эту ссылку здесь, но безуспешно.
Когда я посмотрел на свой файл журнала, он показал мне это
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
Я прокомментировал строки в файле, как было предложено в этой статье здесь. И ошибки в файлах журналов исчезли. Но все равно не удалось сохранить мой продукт и ошибку "Неверный ключ формы. Пожалуйста, обновите страницу". так оно и есть есть.
Я проверил данные по почте в firebug, и они показали мне
form_key THJDhxajLIZnzrHt
form_key {{formKey}}
В качестве ключевых переменных формы, передаваемых при сохранении моего продукта. Когда я проверил его на своем локальном компьютере, он отображает меня
form_key prvOwOCGjSKG6DpF
form_key {{formKey}}
form_key prvOwOCGjSKG6DpF
Что-то вроде этого.
Кто-нибудь знает, что здесь не так? Здесь я вижу, что последнее значение для "form_key
", передаваемое в реальном времени, - "{{formkey}}
", в то время как в локальном это "prvOwOCGjSKG6DpF
". Любая помощь приветствуется.
7 answers
Существует еще один источник этой ошибки: неправильный cookie_domain
в конфигурации. Поскольку вы не можете войти в административную область, вы можете проверить это напрямую через mysql:
SELECT * FROM core_config_data WHERE path LIKE '%cookie_domain%';
Вы также можете изменить значение в mysql напрямую. Не забудьте после этого очистить кэш.
Проблема заключалась в конфигурации сервера, я изменил параметр max_input_vars, и сообщение исчезло. Я видел решение в http://www.webcroppers.com/magento-invalid-form-key-please-refresh-the-page/
Сначала попробуйте отключить все установленные вами пользовательские модули и посмотрите, сохраняется ли проблема.
Похоже, что что-то вводит дополнительное поле на страницу продукта, которое вступает в противоречие с параметром form_key, который используется загрузчиком мультимедиа и другими частями страницы редактирования продукта как nonce.
Проблема с вашим основным файлом.Пожалуйста, проверьте ниже путь и код.вы, должно быть, прокомментировали ниже код проблемы с входом в 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']);
}
}
}
Эта ошибка возникает из-за переменной php.ini "max_input_vars" Увеличьте его до 10000 с помощью приведенной ниже функции php:
ini_set('max_input_vars', 10000);
ИЛИ Использование командной строки 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)
Внимательно посмотрите на свой файл .htaccess. Когда я переношу свой магазин 1.7.0 Magento на другой сервер, я включил файл .htaccess со старого сервера, а затем сообщение: "Неверный ключ формы. Пожалуйста, обновите страницу "всплывающее окно на экране, и ничего не произойдет, даже изменения конфигурации не повлияли. Решение состояло в том, чтобы установить новый magento, а затем скопировать файлы My Store в корневой каталог Magento, исключая.htaccess. Когда я использовал .htaccess из новой установки, все начинает работает нормально. Я не знаю, что именно происходит, возможно, каждая структура сервера имеет разные и особые записи и правила.htaccess. Это работает для меня.
Я не совсем уверен, в чем была проблема, но, похоже, это было результатом директив моего сервера Apache ServerName
.
Я дал серверу тот же глобальный ServerName
, что и при установке Magento. Поскольку вся цель ключей формы (я думаю) связана с безопасностью доменных имен (XSRF и т. Д.), Это может быть причиной.
Я изменил свой глобальный ServerName
буквально на "example.com ".
Затем я очистил кэш Magento и все сеансы на удаленном сервере, и удалил файлы cookie в моем браузере.
И теперь это работает.
(В данном случае это не имело никакого отношения к PHP max_input_vars
. Однако у меня давным-давно была другая проблема, связанная с ними. При сохранении продуктов категории будет сохранено только первое max_input_vars
количество продуктов, а остальные будут отделены от категории. Таким образом, у вас уже может быть 10 000 товаров в категории, но когда вы пытаетесь добавить еще 1 в администраторе, в итоге получается только 1000.)