無効なフォームキー。ページを更新してください。製品の保存エラー


14

こんにちはすべて、管理パネルで製品を保存しようとするたびに
このエラーがInvalid Form Key. Please refresh the page.表示されます。
私が通過したこのここにリンクが、成功しません。
ログファイルを見ると、これが表示されました

2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: httponly  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 94
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: secure  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 96
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: domain  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 98

この記事で提案されているように、ファイル内の行をコメントアウトしました。そして、ログファイルのエラーはなくなりました。それでも、製品を保存できず、「フォームキーが無効です。ページを更新してください」というエラーが表示されます。そのままです。
firebugで投稿データを確認したところ、

form_key    THJDhxajLIZnzrHt
form_key    {{formKey}}

製品を保存するときに渡すフォームのキー変数として。ローカルマシンでチェックすると、表示されます

form_key    prvOwOCGjSKG6DpF
form_key    {{formKey}}
form_key    prvOwOCGjSKG6DpF

このようなもの。
ここで何が間違っているのか誰にも分かりませんか?ここでform_key、ライブで渡す「」の最後の値は「{{formkey}}」であり、ローカルでは「prvOwOCGjSKG6DpF」であることがわかります。どんな助けも大歓迎です。

回答:


11

このエラーの原因はもう1つありcookie_domainます。構成の誤りです。管理領域にログインできないため、mysqlから直接確認できます。

SELECT * FROM core_config_data WHERE path LIKE '%cookie_domain%';

mysqlの値も直接変更できます。後でキャッシュをクリアすることを忘れないでください。



4

最初に、インストールしたカスタムモジュールを無効にし、問題が解決するかどうかを確認してください。

メディアアップローダーや製品編集ページの他の部分がナンスとして使用するform_keyパラメーターと衝突している製品ページに何か追加のフィールドが挿入されているようです。


こんにちはRoscius、私が提案したように、magento jsフォルダー内のメディアアップロードファイルに問題があるはずです。jsフォルダーを置き換えたところ、すべて正常に動作するようになりました。ありがとう..
ジャイミンスタリヤ

2

コアファイルに問題があります。以下のパスとコードを確認してください。Chromeログインの問題については、コードの下にコメントが必要です。

 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:87
// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath(),
    'domain'   => $cookie->getConfigDomain(),
    'secure'   => $cookie->isSecure(),
    'httponly' => $cookie->getHttponly()
);

if (!$cookieParams['httponly']) {
    unset($cookieParams['httponly']);
    if (!$cookieParams['secure']) {
        unset($cookieParams['secure']);
        if (!$cookieParams['domain']) {
            unset($cookieParams['domain']);
        }
    }
}

1

.htaccessファイルをよく見てください。1.7.0 Magentoストアを別のサーバーに移行するときに、古いサーバーの.htaccessファイルを含めて、「フォームキーが無効です。ページを更新してください」というメッセージが画面に表示されます。解決策は、新しいmagentoをインストールしてから、.htaccessを除くMagentoルートにMy Storeファイルをコピーすることでした。新規インストールから.htaccessを使用すると、すべてが正常に動作し始めます。正確に何が起こるかはわかりませんが、各サーバー構造には異なる特定の.htaccessエントリとルールがあるかもしれません。それは私に役立ちます。


1

私は問題が何だったのか正確にはわかりませんが、それは私のApacheサーバーのServerNameディレクティブの結果であったようです。

ServerNameMagentoのインストールと同じグローバルをサーバーに与えました。フォームキー(私は思う)の全体的な目的は、ドメイン名(XSRFなど)のセキュリティに関係しているため、それが理由である可能性があります。

グローバルServerNameを文字通り「example.com」に変更しました。

その後、Magentoキャッシュとリモートサーバー上のすべてのセッションをクリアし、ブラウザーのCookieを削除しました。

そして今、それは機能しています。

max_input_varsこの場合、PHPとは何の関係もありませんでした。しかし、かなり以前にそれらに関連する別の問題がありました。カテゴリ製品を保存すると、最初のmax_input_vars数の製品のみが保存され、残りはそのため、カテゴリにはすでに10,000個の製品がありますが、管理者にさらに1個追加しようとすると、最終的には1,000個になります。)


1

このバグは、php.ini変数「max_input_vars」が原因で発生します。php関数の下で10000に増やします。

ini_set('max_input_vars', 10000);

またはLinuxコマンドラインを使用

cd /etc/php/7.0/apache2/
vi php.ini (Open for edit and set max_input_vars=10000)
:wq(Press esc and write the mentioned command to save and exit)
sudo /etc/init.d/apache2 restart(Restart Server)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.