Can';t登录到Magento管理员

Can';t登录到Magento管理员,magento,admin,Magento,Admin,我在一个子目录中安装了magento。www.domain.com/subdir/magento 这个网站曾一度运作良好。我什么也没改,直到我的客户说他不能登录到magento管理员 我从我的计算机上很好地登录,但在他的计算机上,它只是重定向回magento管理员登录,没有错误消息和看起来像这样愚蠢的url: http://domain.com/subdir/magento/index.php/admin/index/index/key/3097210b826ac4a86d7531cb4089c

我在一个子目录中安装了magento。www.domain.com/subdir/magento

这个网站曾一度运作良好。我什么也没改,直到我的客户说他不能登录到magento管理员

我从我的计算机上很好地登录,但在他的计算机上,它只是重定向回magento管理员登录,没有错误消息和看起来像这样愚蠢的url:

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,它有大量的可用空间

所以我几乎迷路了,想知道为什么在它以前工作的时候会发生这种情况(没有改变任何事情),为什么它如此复杂

如果没有显示登录错误消息(“无效密码”等),则几乎总是会话cookie问题。为了完全控制它,请使用浏览器的cookie查看器和/或您最喜欢的HTTP流量嗅探器并进行检查

  • 所有cookie在设置后都有正确的过期日期

  • 会话cookie对于每个请求具有一致的令牌名称/值

  • 当PHP在Magento中运行时,它的各种会话生存期ini设置值都是合理的

  • PHP可以写入它用作cookie存储介质的任何内容

  • 服务器的时间与实时相匹配,并且PHP本身有一个时区集


  • 您是否删除了var目录中的会话存储

    在我的例子中,当我在子域上玩multistore的自动化时(像您一样更改了cookie的路径和域),此方法帮助我删除“坏”cookie并成功登录到admin:

    在apppath/var/session目录中,我在shell中发出了命令(注意path,这可能会删除目录中的所有文件)


    然后在浏览器中清除域的cookie。

    我从未解决过这个问题。但我擦去了客户端的电脑,重新安装了Windows7,一切正常。非常奇怪的是,它以前不起作用,因为他没有代理,没有广告或病毒。这个问题在他的每一款浏览器(chrome firefox和IE)中都有再现。这不是路由器的问题。这是一个windows问题,但我不能告诉你到底是什么原因造成的。正如我检查的那样,这也不是互联网安全设置。还检查了主机文件。正如我之前所说,非常令人困惑的是,我也遇到了同样的问题,但我正在windows 7 x64上开发XAMPP

    在Magento system-configuration-web-session cookie management中,将仅使用HTTP更改为
    no
    ,并将cookie生存期更改为
    86400

    我只是改变了Cookie的生存期,以防夏令时不必改变

    在更改之前,我只能使用Firefox登录,更改之后,所有浏览器都可以工作


    Cookie路径和Cookie域保留为空。

    查找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中的缓存 做出改变

    • 确保您的文件权限设置为EVERYONE-Windows的完全控制和Mac/Linux环境的777如果所有这些仍然不起作用,您可以尝试以下方法:(我不建议将此解决方案用于Magento的生产版本,但对于您的本地测试环境,这将起作用。)

    • 检查您正在使用的php版本。如果您使用的是最新的Magento,请尝试查找PHP和扩展需要的版本

    检查核心配置数据表中的cookie配置,并检查会话是否保存在数据库中。在我的例子中,有人刚刚用错误的值更改了cookie域和cookie路径

    您还可以在app/etc/local.xml中的节点上检查这一点。
    如果它在db上,也许您应该更改do文件,以便能够直接在var/session dir上清理会话数据。

    我今天在本地服务器上解决了这个问题。我无法使用任何浏览器登录。我真的不想注释掉核心文件中的任何行,也不想做任何其他“肮脏”的解决方案

    首先,我检查了浏览器设置的cookie。它的过期时间设置为1970年,所以很明显这是一个cookie问题

    我检查了magento数据库中的Cookie值。在phpmyadmin中,我找到了表核心配置数据,然后是值为web/cookie/cookie\u域web/cookie/cookie\u路径的字段。他们都是空白的

    我的解决方案是:

    web/cookie/cookie\u域到我的域名

    web/cookie/cookie\u指向/的路径

    示例:

    运行magento的域是magento.local 设置:

    web/cookie/cookie\u domain=magento.local


    web/cookie/cookie\u path=/

    从浏览器设置中删除cookie(与您的域相关)。

    我也面临同样的问题,最后我发现这是由于磁盘空间和
    //        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();
    //        }
    
    UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;