「無効なフォームキー。ページを更新してください」-管理パネルにログインできません


18

私は定期的に自分のサイトにアクセスしてその動作を確認し、製品の画像が表示されていないことに気づきました。インデックス作成キャッシュの問題だと思い、管理パネルにログインしてエラーを受け取りました。

「無効なフォームキーです。ページを更新してください」

または

他の症状は、顧客が製品をカートに追加できず、パフォーマンスが極端に低下することです。

ログ(/ var / logs)にエラーはありません

この問題を解決するには、どのような追加手順を実行する必要がありますか?

回答:


48

また、[ システム]> [構成]> [Web]> [Cookie]のCookieドメインが実際のサイトドメインと異なる場合にも発生します。

管理パネルにアクセスせずに設定を削除するには:

  1. MySQLコンソールまたはphpMyAdminなどのクライアントで次のSQLクエリを使用します。

    DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain';
  2. キャッシュをクリアします。デフォルトのファイルベースのキャッシュバックエンドを使用している場合は、以下のすべてのディレクトリを削除してくださいvar/cache

その後、再度ログインできるようになったらすぐに、各Webサイトまたはストアに正しいCookieドメインを設定します(例:.example.comexample.com、www.example.comおよびその他すべてのサブドメイン)

n98-magerunを使用している場合(そしてそうすべきです!)、同じことを次の方法で実行できます。

n98-magerun config:delete web/cookie/cookie_domain
n98-magerun cache:clean config

こんにちは、@ fschmengler、ユーザーは管理パネルにログインできず、Magento開発に慣れていない一部の開発者はデータベース内のそのような設定を確認する場所を知らないため、phpmyadminからこの設定を確認する方法の詳細を追加してください。申し訳ありませんが、新しいメンバーの支援のみ:)
Mohit Kumar Arora

@MohitKumarAroraあなたは正しいです、私は答えを更新しました
ファビアンシュメングラー

今、私は賛成しました。:)
Mohit Kumarアローラ

n98の方法は素晴らしい。情報をありがとう。
アンディジョーンズ

@ FabianSchmengler、core_config_dataを確認しましたが、これは私のサイトにとって正しい値です。提供したすべての手順を実行する必要がありますか?この場合、あなたのアプローチはまだ機能しますか?
datasn.io

18

関連するものが見つからなかったため、質問/回答を投稿しています。

問題は、私のmagentoインストールが存在するドライブがいっぱいだったことです。いくつかの部屋を解放し、/ var / sessionと/ var / cacheをクリアすると、すべてが正常に戻りました。


1
警告:削除するvar/sessionと、全員がログアウトされ、すべてのゲストカートが消去されます。唯一の古いセッションを削除するソリューションについてはこちらをご覧ください:magento.stackexchange.com/a/58167/243
ファビアンSchmengler

@fschmenglerはい、しかし、最初から適切に作成されなかったセッションで本当にチャンスを取りたいですか?/ var / sessionをチェックしたとき、すべての種類の0kbファイルがありましたが、これは正常ではありません。
SR_Magento

1
絶対に最初に確認すること。何時間も頭を悩ませています。ありがとう!
ブライアントジャクソン

私にとってはディスクスペースでした。ディスクスペース関連のエラーで失敗したので、git pullを試みた後に見つけました。
ダモダールバシャール

@SR_Magento卿私は、キャッシュフォルダとセッションフォルダを削除されたので、同じ問題がありますいくつかの時間後にいくつかの時間のために多くの時間、それの作品
Amaresh Tiwariさん

3

3つの解決策があります。

  1. phpmyadminでこれらのコマンドを使用します

    DELETE FROM core_config_data WHERE path = 'web / cookie / cookie_domain';

    DELETE FROM core_config_data WHERE path = 'web / cookie / cookie_path';

ここでログインしてみてください。

2. varフォルダー内のすべてを削除し、動作するかどうかを確認します。

3. .htaccessファイルをサンプルの.htaccessファイルに置き換えて、管理者にログインしてみます。

お役に立てば幸いです。


1

最初に確認する可能性のあるもう少し明白な問題:サイトでSSLを使用している場合、管理ページにhttpプロトコルを使用していないことを確認してください。httpsを使用する必要があります。例:https : //example.com/admin


1

私の場合、magentofolder / varに書き込むことができないユーザーでn98-magerunを使用してadminユーザーを作成し、代わりにフォールバックフォルダー/ tmp / magentoを使用したために問題が発生したようです。

adminユーザーを削除してsudo -iu OTHERUSER(magentoフォルダーを所有するユーザー)を実行し、n98-magerun admin:user:create再度実行してユーザーを作成しました。


更新:別のケースでは、管理URLがwwwなしでアクセスされています。構文、およびCookie設定はwwwを使用していました。wwwを置くだけ。管理者のURLで問題を解決しました。;)


これじゃないadmin:user:create
-sr9yar

1
@ sr9yar nope-それはMagento2です-これはM1です
treyBake

0

キャッシュをクリアする上記の手順に加えて、以下の記事に従って、以下の手順に従ってセッションデータ情報を正しいパスに設定する必要もありました。

参照記事

/programming/26123081/failed-to-write-session-data-magento

session.save_pathを変更してVMに配置することで修正しました。

ファイルapp / etc / local.xmlを変更します

以下に置き換え

その後、動作し始めました。また、実際に問題を特定できない場合もあるため、エラーログを有効にすることが重要です。これを有効にするには、次の記事を参照してください

https://www.thecreativedev.com/how-to-enable-system-log-and-errorswarning-in-magento/



-3

これは、Magento 1.9.2.3リリースに含まれるパッチSUPEE-7405を適用した後に発生する既知の問題です。ファイルに以下のコードを追加することで解決できます-app / code / local / Mage / Core / Model / Session.php

public function validateFormKey()
{
    if (!($formKey = $_REQUEST['form_key']) || $formKey != $this->getFormKey()) {
        return false;
    }
    return true;
}

このファイルはリポジトリに存在しない可能性があるため、コアファイルにない可能性があるため、上記の関数をファイルにコピーしてからapp/code/core/Mage/Core/Model/Session.php貼り付けapp/code/local/Mage/Core/Model/Session.phpます。

ブラウザのキャッシュとCookieもクリアします。Magento 内のすべてのファイルvar/cachevar/sessionフォルダーの内容を消去します。次に、管理パネルにログインします。


えーと。フォームキーブロックの出力をオーバーライドされたadminhtmlテンプレートに追加する方が良いでしょうか?(これにより、CSRF保護は意図したとおりに機能します)。
ルークA.レーバー

2
コアファイルを編集しないでください。
マックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.