7

几天前,我无法访问基于 prestashop 平台的网站上的管理面板。输入登录名和密码后,我再次被重定向到登录页面,一切都重复了。

该站点托管在专用服务器上,我正在开发的其他一些 prestashop 站点也托管在该服务器上。在尝试访问这些站点上的管理面板后,我得到了相同的“错误”。

你怎么看,有什么问题?

Prestashop 版本:1.4.7.3 和 1.4.8.2

服务器:CentOs,PHP

4

12 回答 12

23

以下是您可以尝试的一些事情:

1/ 清除浏览器缓存和 cookie

2/ 尝试使用 Firefox 而不是 Chrome(这似乎有一些意想不到的问题)

3/检查PS_SHOP_DOMAINPS_SHOP_DOMAIN_SSLps_configuration表中

tools/smarty/compile4 /手动清除 smarty 缓存:删除所有文件tools/smarty/cache

5/禁用IP签classes/Cookie.php(这可能会导致动态IP出现许多问题):在isLoggedBack(),删除或注释第四个条件:

AND (!isset($this->_content['remote_addr']) OR $this->_content['remote_addr'] == ip2long(Tools::getRemoteAddr()) OR !Configuration::get('PS_COOKIE_CHECKIP'))

6/ 缩短 cookie 的过期时间(IE 可能会遇到最长 cookie 的问题):在classes/Cookie.php构造函数中,

放 :$this->_expire = isset($expire) ? (int)($expire) : (time() + 3600);

代替$this->_expire = isset($expire) ? (int)($expire) : (time() + 1728000);

于 2012-07-05T14:17:51.267 回答
6

在我的 Apache Web 服务器前面添加 NGINX 作为反向代理后,我遇到了同样的问题。

问题出在“检查 cookie 上的 IP 地址”参数设置为“”。由于我被管理员锁定并且无法更改它,因此我使用此 SQL 请求直接在数据库中进行了操作:

UPDATE ps_configuration SET value = 0 WHERE name='PS_COOKIE_CHECKIP';

PS:ps_是我的表前缀,你可以根据你的设置进行调整。

于 2016-09-11T14:46:59.573 回答
4

I spent a lot of time debugging this. Installed prestashop locallly on my computer. I my case the following, you should manually navigate to the following:

< domain >/admin/index.php
于 2016-10-26T07:54:02.273 回答
1

我和其他人有同样的问题。

我可以通过 IE 登录,但不能通过 Firefox 登录。

我为解决这个问题所做的就是进入 cookie 管理器并删除所有 cookie。

我知道这听起来很陈词滥调,但没有其他效果。

我搜索了我的站点名称并查看了 cookie,它的日期很长但不再有效。我的猜测是我损坏了 cookie 或者他们进行了 IP 匹配,因为在使用管理面板的过程中,我切换到手机浏览器进行检查。返回时,它只会循环登录页面,没有错误。

我认为他们需要从软件的角度解决问题。

无论如何,在我删除了与我的网站相关的所有 cookie 后,我马上就没有问题了。它还解决了我在使用 www.mysite.com 和 mysite.com 时遇到的问题。我正在与技术支持人员交谈,因为有时它会起作用,而有时它不会。也许 cookie 还存储了用于动态链接的 www/non 的哪个变体。我的 DNS 被允许有时间来解决,技术支持将其归咎于此,但事实并非如此。

不要只是清除cookies,而是手动删除您网站的cookies。当我使用清除 cookie 时,它​​并没有删除很多 cookie。我发现在清除 cookie 之后,我的网站仍然设置了 9 个 cookie。这是我的错误还是其他原因,我不知道。

祝大家好运,并感谢其他建议。如果它返回,我将进入其他建议并报告。

于 2014-09-07T05:43:16.067 回答
1

这对我有用:在管理>首选项控制面板中,将“检查 Cookies IP 地址”设置为“否”。

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

于 2014-11-25T20:57:30.643 回答
1

我使用 prestashop 1.4.8.2 我只是通过更改 admin/login.php 来调试我的后台登录循环只需删除以下代码中看似无用的条件。

if ((empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) == 'off')
     AND Configuration::get('PS_SSL_ENABLED'))

改变

 if (!Configuration::get('PS_SSL_ENABLED'))

我还清除了 cookie 并成功了。我不知道它是否会弄乱其他东西,但我终于可以进入我的后台了。和平!!

于 2016-02-12T16:54:33.610 回答
0

有一些可能发生的事情会阻止您的旧密码正常工作。一种可能是您的 _COOKIE_KEY_ 已更改。

您可以尝试使用以下脚本生成新的密码哈希。然后,您可以在 xxxx_employee 表中的数据库中替换它(其中 xxxx_ 是您的表前缀)。我希望这对你有用。无论如何:保留旧哈希的备份。

这是小脚本:

<?php
require(dirname(__FILE__).'/config/config.inc.php');
echo Tools::encrypt($_REQUEST["pw"]);

完成后不要忘记从服务器中删除脚本!

于 2012-07-05T14:09:26.750 回答
0

For solution try this:

  • Open; phpMyAdmin, ps_configuration table

  • Find, PS_COOKIE_CHECKIP and set it as 0

  • Clear all cache then try again, probably it will be solved.

You can think that it is related to IP/network issue.

于 2019-12-18T18:53:22.593 回答
-1

如果您有一个工作站点,您可以在其中登录。也许您可以将用户从工作复制到非工作,然后确定是否可行。

于 2012-07-05T13:49:21.920 回答
-1

我知道这是旧的,但它可以帮助某人,通过打开 /config/config.inc.php 打开错误。

寻找线:

ini_set('display_errors', 'off');

将其更改为:

ini_set('display_errors', 'on');

编辑:更改了一个看似错字

于 2012-08-02T12:59:14.123 回答
-1

例如,当我使用非 www 配置商店域并尝试使用 www 访问时,有时会出现此错误。我喜欢强制所有用户使用相同的 url,所以我强制在 .htaccess 中输入 www:

RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
于 2015-05-05T19:54:49.233 回答
-1

如果您从本地版本或其他域中移动了 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,更新domaindomain_ssl字段的表,physical_url以及。

例子:

update ps_shop_url set domain='www.myshop.com', domain_ssl='www.myshop.com', physical_url='/';
于 2015-07-04T15:21:09.403 回答