3

テスト用に Magento ストアをローカルホスト環境に移動し、Git を使用してコードを維持していますが、すべてのファイルをローカル環境に移動した後、管理ページにログインできませんが、フロントエンドは引き続き表示されますページ、およびデータベースである git はうまく機能しているようです。

管理ページに間違った管理者/パスワードを入力すると、「無効なパスワード」が表示されます。しかし、正しいものを入力すると、ページが更新されてログインページにとどまり、何も起こりません。

以前にこの問題に遭遇した人はいますか? アイデアはありますか?

前もって感謝します!

4

8 に答える 8

3

最近、プロジェクトに Magento の使用を開始し、この問題に遭遇しました。ネット上には少なくとも 10 種類以上の異なる回避策が提案されており、うまく機能する回避策を見つけるのに多くの試行錯誤が必要だったという事実に、私は苛立ちを覚えました。一部の回避策は、一部のバージョンでは機能し、他のバージョンでは機能しないようです。問題が発生する理由や方法について誰も説明していません。最も一般的な解決策は、コード ベースをハッキングするか、別の URL を使用することですが、これは必要ありません。

Community Edition 1.9.1.1 で見つけた最もクリーンな解決策は、データベース内の 2 つの構成値を編集することでした。

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()メソッドをオーバーライドし、localhost にいる場合は null を返す拡張機能を作成しました。立証し、巻き添え被害を発生させません。

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

于 2015-06-12T10:52:48.380 に答える
1

キャッシュ フォルダー /var/cache の内容を削除してみてください。ブラウザの Cookie をクリアして試してみてください。また、サーバーからデータベースをコピーした場合は、core_config_data テーブルのベース URL (セキュアおよび非セキュア) と Cookie ドメインを手動で変更する必要がある場合があります。必要に応じて手動で行ってください。たとえば、http://www.mywebsite.com/ の製品値を持つ web/unsecure/base_url は、 「 http ://localhost/」になります。

私がこれを持ったことがあるときはいつでも、これまたはキャッシュが原因です。git ハブでキャッシュ フォルダーがまだ無視されていない場合は、無視されるようにします。

于 2013-10-23T21:52:24.677 に答える
0

同じ問題!core_config_data テーブルの静的ドメインを削除/置換した後、問題を解決しました

ウェブ/セキュア/base_url

ウェブ/セキュア/base_link_url

ウェブ/セキュア/base_skin_url

ウェブ/セキュア/base_media_url

于 2016-04-29T08:22:51.253 に答える
0

同じ問題がありましたが、修正により DB 値が変更されました。

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

次の手順を実行します:
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

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 に答える