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" на "нет."

http://xbfish.com/tag/auto-logout/


Я использую 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 и