我在一个子目录中安装了magento。 www.domain.com/subdir/magento
此网站在某一方面表现完美。我一无所知,直到我的客户说他无法登录magento admin。
我从我的计算机上登录得很好,但是在他的计算机上它只是重定向回magento管理员登录而没有错误消息和一个看起来像这样的傻瓜的网址:
http://domain.com/subdir/magento/index.php/admin/index/index/key/3097210b826ac4a86d7531cb4089c9d0/
我认为他的饼干被封锁了,但事实并非如此。
我的magento设置是安全/不安全的baseurl:http://domain.com/subdir/magento/
web cookie path: (blank)
web cookie domain: (blank)
清除var / cache之后,我发现我自己无法登录管理员,但问题完全相同。
我没有运气就尝试了以下设置:
path: /
domain: domain.com
path: /subdir/magento
domain: vigrond.com
我也尝试在Varien.php
中评论这些行,但这也没有效果。
我的服务器帐户是VPS,并且有足够的可用空间。
所以我几乎迷失了,想知道为什么这种事情发生在它之前的第一位(没有改变任何东西),为什么它如此复杂?
任何帮助表示赞赏
答案 0 :(得分:15)
如果未显示登录错误消息(“无效密码”等),则几乎总是会话cookie问题。为了完全统治它,请使用浏览器的cookie查看器和/或您喜欢的HTTP流量嗅探器并检查
所有Cookie在设置后都有正确的到期日期
会话cookie对每个请求都有一致的令牌名称/值
PHP通过Magento运行时,各种会话生命周期ini设置合理值
PHP可以将其用作cookie存储介质的任何内容写入
服务器的时间与实时相匹配,并且PHP本身设置了时区
答案 1 :(得分:11)
查找app / code / core / Mage / Core / Model / Session / Abstract / Varien.php。在您的Magento安装文件夹中。注释出行(见下文)80到83.行号可能会有所不同。
// set session cookie params
session_set_cookie_params(
$this->getCookie()->getLifetime(),
$this->getCookie()->getPath()//,
//dependes which versin of mage you are using, you may comment these as well
//$this->getCookie()->getDomain(),
//$this->getCookie()->isSecure(),
//$this->getCookie()->getHttponly()
);
这是缓存问题。最近Magento社区确认已经排序,但事实并非如此。 :)
只需清除缓存并执行此步骤即可。
注意这一行
// if (!$cookieParams['httponly']) {
// unset($cookieParams['httponly']);
// if (!$cookieParams['secure']) {
// unset($cookieParams['secure']);
// if (!$cookieParams['domain']) {
// unset($cookieParams['domain']);
// }
// }
// }
//
// if (isset($cookieParams['domain'])) {
// $cookieParams['domain'] = $cookie->getDomain();
// }
确保您的浏览器启用了Cookie,尝试了一些 不同的浏览器,包括Safari或Opera。 Chrome会给一些 问题,您需要记住清除Chrome后的缓存 做出改变!
确保您的文件权限设置为EVERYONE - 适用于Windows的全面控制和适用于Mac / Linux环境的777如果仍然无效,您可以尝试:(我不建议使用此解决方案Magento的生产版本,但对于您本地的测试环境,这将有效。)
答案 2 :(得分:4)
您是否删除了var目录中的会话存储?
在我的情况下,当我在子域上玩多线圈的自动化(更改路径和域的cookie)时,这种方法帮助我删除了“坏”cookie并成功登录admin:
在apppath / var / session目录下我在shell中创建了命令(小心路径,这可能会删除目录中的所有文件)
rm -rf /path/to/magento/var/session/*
然后在浏览器中清除域中的cookie。
答案 3 :(得分:1)
我从未解决过这个问题。但我擦除了客户端计算机并重新安装了Windows 7,它运行良好。很奇怪之前它没有工作,因为他没有代理,没有广告或病毒。并且在他的每个浏览器(chrome firefox和IE)中重现了这个问题。这不是路由器问题。这是一个Windows问题,但我无法告诉你究竟是什么造成了它。当我检查那些时,它也不是互联网安全设置。还检查了主机文件。正如我之前所说,非常莫名其妙
答案 4 :(得分:1)
我今天在本地服务器上正在与这个问题作斗争。我无法使用任何浏览器登录。我真的不想评论核心文件中的任何行或做任何其他“脏”的解决方案。
首先我检查了浏览器设置的cookie。它的到期时间设定为1970年,显然这是一个cookie问题。
我在magento数据库中检查了cookie的值。在phpmyadmin中,我找到了表 core_config_data ,然后是值为 web / cookie / cookie_domain 和 web / cookie / cookie_path 的字段。他们都是空白的。
我的解决方案是设置:
web / cookie / cookie_domain 到我的域名
和
web / cookie / cookie_path 到/。
示例:强>
运行magento的域名是 magento.local 设置:
web / cookie / cookie_domain = magento.local
和
web / cookie / cookie_path = /
答案 5 :(得分:0)
我遇到了同样的问题,但我正在 Windows 7 x64 上进行 XAMPP 。
在Magento系统中 - 配置 - 网络会话Cookie管理更改仅使用HTTP 至no
和 Cookie生命周期至86400
。
我只更改了Cookie Lifetime,以防夏令时间可能无需更改。
在更改之前,我只能使用Firefox登录,并且在更改后所有浏览器都能正常工作。
将 Cookie路径和 Cookie Domain 留空。
答案 6 :(得分:0)
检查 core_config_data 表中的Cookie配置,并检查您的会话是否保存在 db 上。就我而言,有人刚刚用错误的值更改了cookie域和cookie路径。
您还可以在app / etc / local.xml中的节点上进行检查。 如果它在db上,也许您应该更改do 文件以便能够直接在var / session目录上清理会话数据。
答案 7 :(得分:0)
从浏览器设置中删除Cookie(与您的域名相关)。
答案 8 :(得分:0)
我遇到了同样的问题,最后我发现它是由于完整的磁盘空间而导致Magento无法在var var / session文件夹中创建会话文件。清理完问题后的日志文件已解决。
答案 9 :(得分:0)
此外,如果上面的其他内容都不起作用且你需要绝望的访问权限,你可以更新数据库中的密码:
UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;
根据您的需要更换用户和密码字。
答案 10 :(得分:0)
如果无效,请确保未超过磁盘配额。如果超出用户的磁盘配额,则在./var/session下创建的新会话cookie将为零字节长度。
答案 11 :(得分:-1)
如果你没有看到任何名为“frontend”或“adminhtml”的cookie,当你重新加载页面时,没有设置Magento cookie。在我的情况下,我有一个错误的cookie_domain。 我使用“null”而不是“NULL”。
当我在cookie_domain
中将NULL
设置为core_config_data
时,问题就解决了