3

我只是将我的 Magento 存储移动到我的本地环境以进行测试使用,我也使用 Git 来维护代码,但是在将所有文件移动到本地环境后,我无法登录我的管理页面,但我仍然可以看到我的前端页面和 git 数据库似乎运行良好。

当我在管理页面输入错误的管理员/密码时,它仍然给我“无效密码”。但是当我输入正确的时候,它只是刷新页面并停留在登录页面,没有任何反应。

有没有人遇到过这个问题?有什么想法吗?

提前致谢!

4

8 回答 8

5

尽管这个问题很老,但在我做了一件额外的事情之前,上述所有答案都对我不起作用。

按照已经发布的非常有用的答案(摘要):

  1. 将您的 base_url 更改http://127.0.0.1/为安全和不安全的路径。
  2. 删除 var/session 和 var/cache 中的文件
  3. 相应地更改您的 Varien.php 文件 - 取决于您的 Magento 版本。

接着:

  1. 最后,使用http://127.0.0.1/your/site/folder/name/index.php/admin

这是缺少index.php /admin (而不是 using http://127.0.0.1/site/admin)。

我希望这对其他人有帮助。

于 2014-11-21T17:04:23.910 回答
3

最近开始在一个项目中使用 Magento 并遇到了这个问题。网上至少有十种或更多不同的解决方法建议让我感到沮丧,并且需要大量的试验和错误才能找到一个可以完成这项工作的方法。似乎一些变通办法适用于某些版本,而不适用于其他版本。没有人解释问题发生的原因或方式,最流行的解决方案涉及破解代码库或使用不同的 url,这不应该是必要的。

我为 Community Edition 1.9.1.1 找到的最干净的解决方案是在数据库中编辑两个配置值:

update core_config_data set value = NULL where path = "web/cookie/cookie_path";
update core_config_data set value = 0 where path = "web/cookie/cookie_httponly";

在全新安装中,cookie 路径实际上默认为 NULL,但它必须为 NULL 或空字符串。

出现这种行为是因为包括 Chrome 在内的一些浏览器在使用localhost域创建 cookie 时遇到问题,这意味着当 Magento 调用 session_start() 时,会话标识符 cookie 永远不会被创建,因此信息无法在页面之间传递。登录过程实际上是成功的,但下一个请求不知道它,因此您被重定向回登录屏幕。没有错误,因为 Magento 没有考虑这种边缘情况的可能性。

如果在 localhost 上创建 cookie 时没有提供域值,则浏览器没有问题。不幸的是,仅仅将web/cookie/cookie_path设置为 NULL 是不够的,因为 Magento 的配置类将其解析为一个空字符串,这足以在后面的代码中设置一个真实的域:

if (isset($cookieParams['domain'])) {
    $cookieParams['domain'] = $cookie->getDomain();
}

这种方法最终使用当前的 HTTP 主机来为 cookie 解析一个真实的域,因此浏览器不想与它有任何关系。但是,如果我们禁用web/cookie/cookie_httponly,那么 Magento 将不会执行此附加步骤,$cookieParams['domain']未设置,并且没有域作为会话参数传递,因此允许创建会话 cookie 并且可以作为他们应该。

请注意,无论何时修改数据库配置,都必须删除 /var/cache/ 的内容才能反映更改。

如果您像我一样不想注释掉代码,甚至不想进行配置更改,那么我创建了一个扩展,它覆盖了上面显示的getDomain()方法,如果我们在本地主机上,则返回 null,这应该会更未来证明并不会造成附带损害。

http://www.mediafire.com/download/q39p4k95s5tlght/LocalCookie.zip

于 2015-06-12T10:52:48.380 回答
1

尝试删除缓存文件夹 /var/cache 的内容。清除您的浏览器 cookie 并尝试。此外,如果您从服务器复制了数据库,您可能需要手动更改基本 url(安全和非安全)以及 core_config_data 表中的 cookie 域。如果需要,请手动执行此操作。例如,生产值为http://www.mywebsite.com/的 web/unsecure/base_url变为“http://localhost/”

我曾经有过这个是因为这个或缓存。确保缓存文件夹在 git hub 中被忽略(如果还没有的话)。

于 2013-10-23T21:52:24.677 回答
0

1.你需要删除缓存

rm -rf var/cache/* var/session/*

2.更改域形式 core_config_data

update core_config_data set value="http://127.0.0.1/" where path="web/unsecure/base_url";
update core_config_data set value="http://127.0.0.1/" where path="web/secure/base_url";
于 2013-10-25T07:17:40.557 回答
0

执行以下步骤:
1:通过:xampp\htdocs\magento\app\code\core\Mage\Core\Model\Session\Abstract**
2:打开 **Varien.php
文件
3:将注释行号从87 改为104保存并尝试登录...

于 2014-03-07T11:40:50.733 回答
0

有同样的问题,但修复是改变数据库值:

UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/unsecure/base_url';
UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/secure/base_url';

然后在浏览器中http://127.0.0.1/example/admin

于 2014-09-29T07:18:54.607 回答
0

同样的问题!我在 core_config_data 表中删除/替换静态域后解决了我的问题

网络/安全/base_url

网络/安全/base_link_url

网络/安全/base_skin_url

网络/安全/base_media_url

于 2016-04-29T08:22:51.253 回答
0

对我来说,在 IIS 上运行它(我知道,没有官方支持):

虽然其他建议有点用,但我发现最好的解决方案是为我的域输入一个新的 A 记录,例如

127.0.0.1 local.example.com

然后在 IIS 中添加绑定

local.example.com

到我的网站,它运行良好。

我发现实际尝试登录客户帐户而不是管理员帐户时出现错误,但相信它仍然适用。

于 2017-03-19T16:06:55.867 回答