Prestashop не может войти в admin
несколько дней назад я не мог получить доступ к панели администратора на моем сайте на основе платформы prestashop. После ввода логина и пароля, я был перенаправлен на страницу входа снова и все повторилось.
сайт размещен на выделенном сервере, где также размещены некоторые другие сайты prestashop, которые я разрабатываю. После попытки доступа к панели администратора на этих сайтах я получаю ту же"ошибку".
Как вы думаете, в чем проблема?
Prestashop ver.: 1.4.7.3 и 1.4.8.2
сервер: CentOs, PHP
11 ответов
вот некоторые вещи, которые вы можете попробовать :
1/ очистите кэш браузера и файлы cookie
2 / Попробуйте использовать Firefox вместо Chrome (который, кажется, имеет некоторые неожиданные проблемы)
3/ проверить PS_SHOP_DOMAIN
и PS_SHOP_DOMAIN_SSL
на ps_configuration
таблица
4 / вручную очистить кэш smarty : удалить все файлы из tools/smarty/compile
и tools/smarty/cache
5 / отключить IP проверка на classes/Cookie.php
(это может вызвать много проблем с dynamics IP) :
в isLoggedBack()
, удалить или прокомментировать четвертое условие:
AND (!isset($this->_content['remote_addr']) OR $this->_content['remote_addr'] == ip2long(Tools::getRemoteAddr()) OR !Configuration::get('PS_COOKIE_CHECKIP'))
6 / сократите срок действия файлов cookies (IE может иметь проблемы с куки-файлами длительного времени): in classes/Cookie.php
строитель,
set:$this->_expire = isset($expire) ? (int)($expire) : (time() + 3600);
вместо $this->_expire = isset($expire) ? (int)($expire) : (time() + 1728000);
Я потратил много времени на отладку этого. Установлен prestashop locallly на моем компьютере. В моем случае следующее, Вы должны вручную перейти к следующему:
< domain >/admin/index.php
У меня была та же проблема, что и у всех остальных.
Я смог войти в систему через IE, но не firefox.
то, что я сделал, чтобы исправить проблему, было перейти в cookie manager и удалить все куки.
Я знаю, что это звучит клише, но больше ничего не сработало.
Я искал свое имя сайта и посмотрел на cookie, он был датирован долго, но больше не активен. Я предполагаю, что я испортил cookie или, возможно, они делают IP-сопоставление, потому что в середине использования администратора панель, я переключился на свой браузер телефона, чтобы что-то проверить. По возвращении он просто зациклит страницу входа в систему, без ошибок.
Я думаю, что им нужно исправить проблему с точки зрения программного обеспечения.
независимо от того, после того, как я удалил все куки, связанные с моим сайтом, Я вернулся без проблем. Это также решило проблему, с которой у меня был www.mysite.com и mysite.com - ... Я разговаривал с техподдержкой, потому что иногда это работало, а иногда нет. Может быть, cookie также хранит, какой вариант www / non использовался для динамической компоновки. Моему DNS было разрешено время для решения, и техническая поддержка обвинила это, но это было не так.
не просто очистить куки, перейдите вручную удалить те, для вашего сайта. Когда я использовал чистые куки, он не удалял много куки. Я обнаружил, что на моем сайте все еще было 9 cookies, установленных после чистых cookies. Было ли это моя ошибка или что-то еще, я не знаю.
удачи всем и спасибо за другие предложения. Если он вернется, я перейду к другим предложениям и отчитаюсь.
Это то, что сработало для меня: в панели управления adminstration>preferences установите "проверить IP-адрес Cookies" на "нет."
Я использую prestashop 1.4.8.2 Я просто debuged мой бэк-офис войти цикла, изменяя админ/логин.РНР Просто удалите кажущиеся бесполезными условия в следующем коде.
if ((empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) == 'off')
AND Configuration::get('PS_SSL_ENABLED'))
изменить с
if (!Configuration::get('PS_SSL_ENABLED'))
Я также очистил cookie и bam, это сработало. Я не знаю, будет ли это беспорядок в других вещах, но я, наконец, могу попасть в свой бэк-офис. Мир!!
у меня была та же проблема после добавления NGINX в качестве обратного прокси перед моим веб-сервером Apache.
проблема была с " Проверьте IP-адрес на cookie Параметр "Значение" да ". Поскольку я был заблокирован от администратора и не мог его изменить, я сделал это прямо в базе данных с помощью этого SQL-запроса:
UPDATE ps_configuration SET value = 0 WHERE name='PS_COOKIE_CHECKIP';
PS:ps_
Это мой префикс таблицы, вы можете адаптировать его к своим настройкам.
есть некоторые возможные вещи, которые могли бы произойти, чтобы предотвратить работу ваших старых паролей. Можно предположить, что ваш _COOKIE_KEY_ изменился.
вы можете попробовать использовать следующий скрипт для создания нового хэша пароля. Затем вы можете заменить его в базе данных в таблице xxxx_employee (где xxxx_-префикс таблицы). Надеюсь, это сработает. В любом случае: сохраните резервную копию своих старых хэшей.
вот небольшой скрипт:
<?php
require(dirname(__FILE__).'/config/config.inc.php');
echo Tools::encrypt($_REQUEST["pw"]);
не забудьте удалить скрипт с вашего сервера, как только вы закончите!
Если у вас есть рабочий сайт, где вы можете войти. Возможно, вы можете скопировать пользователя из рабочего в нерабочее и se, если это работает.
Я знаю, что это старый, но это может помочь кому-то, включите ошибки, открыв /config/config.Инк.РНР.
ищем строку:
ini_set('display_errors', 'off');
меняем его на:
ini_set('display_errors', 'on');
EDIT: изменен, казалось бы, опечатка
иногда я получаю эту ошибку, когда я настроил домен магазин с www и я пытаюсь получить доступ с www, например. Мне нравится заставлять всех пользователей иметь один и тот же url, поэтому я заставляю .htaccess для входа с www:
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/ [R=301,L]
в случае, если вы переместили prestashop из локальной версии или из другого домена, в дополнение к классическому.
update ps_configuration table set value="www.myshop.com" where name ="PS_SHOP_DOMAIN";
update ps_configuration table set value="www.myshop.com" where name ="PS_SHOP_DOMAIN_SSL";
Проверьте таблицу под названием ps_shop_url
, и обновление domain
и