几天前,我无法访问基于prestashop平台的网站管理面板。 输入登录名和密码后,我再次被重定向到登录页面,一切都重复了。
该网站托管在专用服务器上,我正在开发的其他一些prestashop网站也是托管的。在尝试访问这些网站上的管理面板后,我得到了相同的“错误”。
您如何看待,有什么问题?
Prestashop ver。:1.4.7.3和1.4.8.2
服务器:CentOs,PHP
答案 0 :(得分:19)
以下是您可以尝试的一些事项:
1 /清除浏览器缓存和Cookie
2 /尝试使用Firefox而不是Chrome (这似乎有一些意想不到的问题)
3 /检查PS_SHOP_DOMAIN
表格中的PS_SHOP_DOMAIN_SSL
和ps_configuration
4 /手动清除智能缓存:删除tools/smarty/compile
和tools/smarty/cache
classes/Cookie.php
中的 5 /禁用IP检查(这会导致动态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);
答案 1 :(得分:3)
我花了很多时间调试这个。我的计算机上安装了prestashop。我的情况如下,您应手动导航到以下内容:
< domain >/admin/index.php
答案 2 :(得分:1)
我遇到了和其他人一样的问题。
我能够通过IE登录但不能登录Firefox。
我为纠正这个问题所做的是进入cookie管理器并删除所有cookie。
我知道这听起来有些陈词滥调,但没有其他工作。
我搜索了我的网站名称并查看了该Cookie,它的日期很长但不再有效。我的猜测是我损坏了cookie或者他们进行了IP匹配,因为在使用管理面板的过程中,我切换到我的手机浏览器检查一下。返回后,它只会循环登录页面,没有错误。
我认为他们需要从软件角度解决问题。
无论如何,在我删除了与我的网站相关的所有cookie之后,我立刻就回来了。它还解决了我在www.mysite.com和mysite.com上遇到的一个问题。我正在与技术支持人员交谈,因为有时它会起作用,而其他时候却不会。也许cookie还存储了www / non的哪个变体用于动态链接。我的DNS有时间解决,技术支持指责但不是那样。
不要只清除Cookie,手动删除您网站的Cookie。当我使用明确的cookie时,它没有删除很多cookie。我发现我的网站在清除cookie后仍然有9个cookie。无论是我的错误还是别的什么,我都不会知道。
祝所有人好运,并感谢其他建议。如果它返回,我会进入其他建议并报告回来。
答案 3 :(得分:1)
这对我有用:在adminstration&gt;偏好设置控制面板中,将“检查Cookie IP地址”设置为“否”。
答案 4 :(得分: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并且bam工作了。我不知道它是否会弄乱其他东西,但我可以最后进入我的后台办公室。 和平!!
答案 5 :(得分:1)
在我的Apache Web服务器前面添加NGINX作为反向代理后,我遇到了同样的问题。
问题来自«检查cookie上的IP地址»参数设置为«是»。由于我被管理员锁定而无法更改,因此我使用此SQL请求直接在数据库中执行此操作:
UPDATE ps_configuration SET value = 0 WHERE name='PS_COOKIE_CHECKIP';
PS:ps_
是我的表格前缀,您可以根据自己的设置进行调整。
答案 6 :(得分:0)
可能会发生一些可能阻止旧密码工作的事情。一个可能是你的_COOKIE_KEY_改变了。
您可以尝试使用以下脚本生成新密码哈希。然后,您可以在xxxx_employee表中的数据库中替换它(其中xxxx_是您的表前缀)。我希望这对你有用。在任何情况下:保留旧哈希的备份。
这是一个小脚本:
<?php
require(dirname(__FILE__).'/config/config.inc.php');
echo Tools::encrypt($_REQUEST["pw"]);
完成后不要忘记从服务器中删除脚本!
答案 7 :(得分:0)
对于解决方案,请尝试以下操作:
打开; phpMyAdmin,ps_configuration表
找到PS_COOKIE_CHECKIP并将其设置为0
清除所有缓存,然后重试,可能会解决。
您可以认为这与IP /网络问题有关。
答案 8 :(得分:-1)
如果您有工作网站,可以登录。也许你可以将用户从工作复制到非工作,如果可行,则可以复制。
答案 9 :(得分:-1)
我知道这已经过时了,但它可以帮助某人,打开/config/config.inc.php来打开错误。
寻找这一行:
ini_set('display_errors', 'off');
将其更改为:
ini_set('display_errors', 'on');
编辑:改变了看似错字
答案 10 :(得分:-1)
有时,当我使用非www配置商店域名时,我会收到此错误,例如,我尝试使用www访问。我想强迫所有用户拥有相同的网址,所以我强迫.htaccess进入www:
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
答案 11 :(得分:-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
的表格,并更新domain
和domain_ssl
字段以及physical_url
。
示例:
update ps_shop_url set domain='www.myshop.com', domain_ssl='www.myshop.com', physical_url='/';