Magento 2検索設定ガイドで詳細情報をご覧ください。
これは、Magento開発者が直面する最も一般的な問題の1つです。具体的には、Magento管理画面にログインできず、画面に「無効なフォームキー。ページをリフレッシュしてください」と表示されます。こちらがその解決策です。
解決策:
この問題に対処する方法はいくつかあります:
1つ目の方法: ‘max_input_vars’を1000より大きく設定し、サーバー設定を変更する
まず、サーバーがDDOS攻撃にさらされないようにするため、このサーバー設定を変更せず、他の提案を適用してMagentoコントローラーを拡張します。ただし、この問題はコントローラーのカテゴリ保存メソッドだけを修正することでは解決できません。
数か月後、別の問題が発生しました – カテゴリを検索できなくなります。例えば、製品の位置を変更した場合など、カテゴリを検索しようとすると「無効なフォームキー。ページをリフレッシュしてください」というエラーが表示されます。
このエラーは、Ajaxを介した検索で渡されるはずのノンスキーが1k POST制限のために切り捨てられてしまうために発生します。そのため、キーのチェックを行うと存在しないと見なされ、検索を続行できません。結果として、検索を別のコントローラーのオーバーライドで修正するだけでなく、管理パネルのサーバー設定も変更する必要があります。
最終的に、Magentoのオーバーライドを実装する代わりに、WHMの.confに次の設定を追加して、管理用のmax_input_varを増やすことに決定しました:
<LocationMatch "/(index\.php/)?admin/"> <IfModule mod_php5.c> php_value max_input_vars 75000 </IfModule> </LocationMatch>
2つ目の方法: 管理パネルにアクセスできない場合の設定削除
このエラーは、System > Configuration > Web > Cookiesのクッキー ドメインが実際のサイト ドメインと異なる場合にも発生する可能性があります。
管理パネルにアクセスできない場合に設定を削除するには、MySQLコンソールまたはphpMyAdminなどのクライアントで次のSQLクエリを使用します:
DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain';
その後、キャッシュをクリアします。デフォルトのファイルベースのキャッシュバックエンドを使用している場合は、var/cache以下のすべてのディレクトリを削除してください。
管理パネルに再ログインできるようになったら、各ウェブサイトまたはストアの正しいクッキー ドメインを設定します(例:abc.com、www.abc.com、その他のサブドメインには .abc.com)。
n98-mage run(推奨)を使用している場合、次のコマンドでも同じことが実行できます:
n98-magerun config:delete web/cookie/cookie_domain n98-magerun cache:clean config
Magento 2.3 無効なフォームキーに関連する検索