Prestashop 无法以管理员身份登录
Posted
技术标签:
【中文标题】Prestashop 无法以管理员身份登录【英文标题】:Prestashop cant login in admin 【发布时间】:2012-07-05 07:28:00 【问题描述】:几天前,我无法访问基于 prestashop 平台的网站上的管理面板。 输入登录名和密码后,我再次被重定向到登录页面,一切都重复了。
该站点托管在专用服务器上,我正在开发的其他一些 prestashop 站点也托管在该服务器上。在尝试访问这些网站上的管理面板后,我得到了相同的“错误”。
你怎么看,有什么问题?
Prestashop 版本:1.4.7.3 和 1.4.8.2
服务器:CentOs、php
【问题讨论】:
【参考方案1】:解决方法试试这个:
打开; phpMyAdmin、ps_configuration表
找到,PS_COOKIE_CHECKIP,设置为0
清空所有缓存再试,应该会解决的。
您可以认为它与 IP/网络问题有关。
【讨论】:
【参考方案2】:我花了很多时间调试这个。在我的计算机上本地安装 prestashop。我的情况如下,您应该手动导航到以下内容:
< domain >/admin/index.php
【讨论】:
非常感谢,您解决了我的问题...在 Fedora 32 上【参考方案3】:在我的 Apache Web 服务器前添加 nginx 作为反向代理后,我遇到了同样的问题。
问题出在“检查 cookie 上的 IP 地址”参数设置为“yes”。由于我被管理员锁定并且无法更改它,因此我使用此 SQL 请求直接在数据库中进行了操作:
UPDATE ps_configuration SET value = 0 WHERE name='PS_COOKIE_CHECKIP';
PS : ps_
是我的表前缀,你可以根据你的设置进行调整。
【讨论】:
这很快。一个好的解决方案可能是添加一个 if 子句并放置几行代码来检查(例如) $_REQUEST["letmein"] ... 这样您就可以进入面板并启用/禁用该实例的 cookie 检查。永久禁用不是一个好主意。 我没问题 :) 这是最可靠的解决方案,适用于所有场景。当负载均衡器设置到位并且 BO 由多个 IP 访问时,可能会引入此问题。但在安全方面,这可能不是最正确的解决方案,因为安全连接的全部意义是无效的。 谢谢!这对我有用。但我还需要禁用“游戏化 - 客户专业知识”模块。【参考方案4】:您可以尝试以下方法:
1/ 清除浏览器缓存和 cookie
2/ 尝试使用 Firefox 而不是 Chrome(这似乎有一些意想不到的问题)
3/ 在ps_configuration
表中检查PS_SHOP_DOMAIN
和PS_SHOP_DOMAIN_SSL
4/ 手动清除 smarty 缓存 : 删除 tools/smarty/compile
和 tools/smarty/cache
中的所有文件
5/ 在classes/Cookie.php
中禁用 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);
【讨论】:
对于 PS 1.5;5/ Disable the IP check
:你可以代替手动编辑核心文件去Administration > Preferences
并将Check the IP address on the cookie
更改为no
..同样的事情到6/
+1 对 Firefox 的建议!成功登录后,Chrome 似乎什么都不做......
#5 为我解决了这个问题 - 我有 2 个互联网连接,问题只发生在其中一个上,徘徊为什么......
@UnLoCo。事实上,使用其他浏览器可以让您通过管理面板进行更改。
删除我网站的 cookie 解决了我的问题。【参考方案5】:
我使用 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 并且成功了。我不知道它是否会弄乱其他东西,但我终于可以进入我的后台了。 平安!!
【讨论】:
【参考方案6】:如果您已将 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='/';
【讨论】:
这不适用于任何方式【参考方案7】:例如,当我将商店域配置为非 www 并尝试使用 www 访问时,有时会出现此错误。我喜欢强制所有用户使用相同的 url,所以我强制在 .htaccess 中输入 www:
RewriteCond %HTTP_HOST !^www.
RewriteRule ^(.*)$ http://www.%HTTP_HOST/$1 [R=301,L]
【讨论】:
以防域事务不受影响。如果该域无关紧要,这无论如何都不会解决。【参考方案8】:这对我有用:在管理>首选项控制面板中,将“检查 Cookies IP 地址”设置为“否”。
http://xbfish.com/tag/auto-logout/
【讨论】:
【参考方案9】:我和其他人有同样的问题。
我可以通过 IE 登录,但不能通过 firefox 登录。
我解决这个问题的方法是进入 cookie 管理器并删除所有 cookie。
我知道这听起来很陈词滥调,但没有其他方法。
我搜索了我的站点名称并查看了 cookie,它的日期很长但不再有效。我的猜测是我损坏了 cookie 或者他们进行了 IP 匹配,因为在使用管理面板的过程中,我切换到手机浏览器进行检查。返回时,它只会循环登录页面,没有错误。
我认为他们需要从软件的角度解决问题。
无论如何,在我删除了与我的网站相关的所有 cookie 后,我马上就恢复了没有问题。它还解决了我在使用 www.mysite.com 和 mysite.com 时遇到的问题。我正在与技术支持人员交谈,因为有时它会起作用,而有时它不会。也许 cookie 还存储了用于动态链接的 www/non 的哪个变体。我的 DNS 被允许有时间来解决,技术支持将其归咎于此,但事实并非如此。
不要只清除 cookie,而是手动删除您网站的 cookie。当我使用清除 cookie 时,它并没有删除很多 cookie。我发现在清除 cookie 之后,我的网站仍然设置了 9 个 cookie。这是我的错误还是其他原因,我不知道。
祝大家好运,感谢其他建议。如果它返回,我将进入其他建议并报告。
【讨论】:
【参考方案10】:我知道这是旧的,但它可以帮助某人,通过打开 /config/config.inc.php 打开错误。
寻找线:
ini_set('display_errors', 'off');
改成:
ini_set('display_errors', 'on');
编辑:更改了一个看似错字
【讨论】:
这并不适用。【参考方案11】:有些事情可能会导致您的旧密码无法正常工作。一种可能是您的 _COOKIE_KEY_ 发生了变化。
您可以尝试使用以下脚本生成新的密码哈希。然后,您可以在 xxxx_employee 表中的数据库中替换它(其中 xxxx_ 是您的表前缀)。我希望这对你有用。在任何情况下:保留旧哈希的备份。
这是小脚本:
<?php
require(dirname(__FILE__).'/config/config.inc.php');
echo Tools::encrypt($_REQUEST["pw"]);
完成后不要忘记从服务器中删除脚本!
【讨论】:
【参考方案12】:如果您有一个工作站点,您可以在其中登录。也许您可以将用户从工作复制到非工作,然后确定是否有效。
【讨论】:
不适用以上是关于Prestashop 无法以管理员身份登录的主要内容,如果未能解决你的问题,请参考以下文章
如何结合 Prestashop (PHP) 和 DjangoCMS (Python)
尝试登录 Prestashop 管理面板时出现严重的 WordPress 错误