Я только что сделал новую установку Magento 1.9.0.1, и я вижу очень странное поведение с формой входа в систему клиента.
В Chrome (версия 36) форма входа не работает. Я просто перенаправлен на страницу входа. Там нет сообщения об ошибке. Тем не менее, когда я открываю новое окно Incognito, я могу войти в систему очень хорошо. Думая, что это проблема с файлами cookie, я удалил все файлы cookie из браузера и попытался снова, и получил те же результаты. В обоих случаях я могу войти в админку без проблем.
Я также пробовал это в Firefox и Safari. Firefox Я видел, как происходило то же самое (но не всегда, и я мог это исправить, удаляя куки), и я не мог копировать в Safari.
У меня никогда не было проблем с этим в любой другой версии Magento. Есть ли какое-то фундаментальное изменение в том, как Magento обрабатывает куки в версии 1.9, и / или я могу что-то сделать, чтобы сделать это более стабильным?
источник
www
например, наabc.com
него перенаправилиwww.abc.com
. В этом случае браузер устанавливал cookie-файлы для обоих, и входы в систему специально перестали работать, но если я вручную удаляю cookie, которые были безwww
входов в систему, снова начинаю работать. Можете ли вы проверить, так ли это и с вами?Ответы:
У меня такая же проблема....
Ответ в том, что ваша тема не содержит переменную с именем
form_key
.Как сказано выше, я должен добавить:
Вы добавляете это сразу после
<ul class="form-list">
каждому из моих
login.phtml
файлов для темы.У вас также могут быть проблемы с обновлением количества товаров в корзине
Здесь важность
form_keys
:С начала времен бэкэнд Magento содержал ключ формы, который защищал от атак XSS [1]. В Magento 1.8 ключ формы вошел в веб-интерфейс практически по той же причине: для защиты от отправки формы с другого веб-сайта с помощью вашего браузера. злоумышленник может добавить данные в вашу корзину, когда вы находитесь на другой вкладке браузера, или даже выполнить заказ для вас. Это зависит от предсказуемых URL-адресов, потому что у сайта не будет доступа к фактическому HTML-содержимому на вкладке браузера, где вы ожидаете заказ Magento. Однако все, что отправлено в магазин Magento, отправит ваши куки и, следовательно, будет использовать ваш сеанс.
При добавлении уникального ключа к каждой форме или каждой ссылке, которая генерирует действие на сервере, URL-адрес или содержимое формы больше не будет предсказуемым. Ключ формы хранится в данных сеанса и проверяется при отправке на сервер. Если они не совпадают, вы получаете ошибку ключа формы, и действие не завершено.
источник
<?php echo $this->getBlockHtml('formkey'); ?>
а не большой ввод.Это может быть:
cookie setting issue in Chrome browser
ИЛИ
Magento 1.9 использует
form key validation at customer loggin and register
страницу.По
Post action
этому проверьте форму ключаusing function _validateFormKey()
у контроллераform key issue: form key missing
так что добавьте этот код в вашу формуИЛИ
Cookie domain setting issue
Перейти к настройке проверки правильная или нетв
Admin>System>configuration>General>Web>Session Cookie Management
источник
if (!$this->_validateFormKey()) {
возвращает false, что означает, что Magento не может проверить предоставленный ключ. Любая идея, почему это происходит?Поскольку проблема связана с файлами cookie, попробуйте увеличить срок службы файлов cookie до 86400 в разделе
Причиной может быть то, что по умолчанию время жизни cookie установлено на 3600 (1 час). Но если компьютерное время конечного пользователя опережает время сервера, файлы cookie не будут установлены для внешнего интерфейса Magento, а также для внутреннего интерфейса. Например, время компьютера конечного пользователя на 1 час больше времени сервера, что означает, что срок действия файла cookie (содержащего идентификатор сеанса пользователя) истечет, как только пользователь войдет в систему или попытается добавить элемент.
источник
Для будущих читателей: Есть много возможных причин этой проблемы. Во время входа в систему некоторые журналы исключений по соображениям безопасности подавляются, поэтому ваша проблема не будет отображаться
var/log/exception.log
.Для диагностики вашей проблемы:
app/code/core/Mage/Customer/controllers/AccountController.php
и перейдите кloginPostAction
методу.Mage::logException($e);
звонок и сохраните измененияНе забудьте отменить изменения
app/code/core/Mage/Customer/controllers/AccountController.php
!Причиной моей проблемы был сбой автозагрузки класса, потому что модуль (неправильно) имел
<codePool>community</codePool>
вместо<codePool>local</codePool>
.источник
Я исправил проблему, просто добавив приведенную ниже строку кода в phtml-файл постоянного входа.
источник
Хорошо, после полчаса я выяснил, в каких именно папках login.phtml я должен измениться. Так что иди в
и вставить
после
вот и все.
источник
Если вы используете кэш Varnish, может быть другая проблема. Я цитирую решение, которое я нашел в другом месте. https://github.com/nexcess/magento-turpentine/issues/169
источник
Причиной этой проблемы является то, что пользовательская форма входа в систему не содержит никаких ключей формы, и в loginPostAction Magento происходит проверка ключа формы.
Вы можете исправить это, как показано ниже:
Найти:
и вставьте это сразу после кода выше:
источник
Вышеописанное работало для меня абсолютно нормально, но я обновлял Magento 1.4.1 до 1.9.1, так что это был огромный скачок. Файлы нигде не были найдены в расположении выше, но были расположены в папке app / design / frontend / BASE.
Эта базовая папка содержит много общих файлов, начиная с Magento 1.4, поэтому я читаю ... Надеюсь, это сэкономит кому-то много часов работ, которые у меня заняли ...
источник
Если вы используете любое расширение для входа в систему, добавьте ключ формы в этот файл login.phtm.
источник
Убедитесь, что php-mbstring установлен и включен на вашем сервере.
Если это не так, логин администратора будет работать, а клиент - нет.
Эта проверка может быть выполнена путем просмотра выходных данных
phpinfo()
или путем временного включения исключения входа в систему вокруг строки177
в:app/code/core/Mage/Customer/controllers/AccountController.php
Имейте в виду, что операция может раскрыть пароль клиента в журнале трассировки исключений.
источник
У меня была такая же проблема, и я решил ее, удалив все куки. Кажется, проблема возникает, если у вас есть несколько разных магазинов magento и вы входите в них одновременно.
источник