“Kunci formulir tidak valid. segarkan halaman ”- tidak dapat masuk ke panel admin

18

Saya secara teratur mengunjungi situs saya untuk memastikan situsnya berfungsi dan memperhatikan bahwa gambar untuk produk tidak muncul, mengira itu adalah masalah dengan cache pengindeksan. Saya mencoba masuk ke panel admin dan menerima kesalahan:

"kunci formulir tidak valid. segarkan halaman"

atau

Gejala lainnya adalah pelanggan tidak dapat menambahkan produk ke troli dan kinerja sangat lambat.

Tidak ada kesalahan dalam log (/ var / log)

Langkah tambahan apa yang harus saya lakukan untuk mengatasi masalah ini?

SR_Magento
sumber

Jawaban:

48

Itu juga terjadi jika domain cookie di System> Configuration> Web> Cookies berbeda dari domain situs yang sebenarnya.

Untuk menghapus pengaturan tanpa akses ke panel admin:

  1. gunakan query SQL berikut di konsol MySQL atau di klien seperti phpMyAdmin:

    DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain';
  2. bersihkan cache. Jika Anda menggunakan backend cache berbasis file default, hapus semua direktori di bawah ini var/cache.

Kemudian segera setelah Anda dapat login lagi, tetapkan domain cookie yang benar untuk setiap situs web atau toko (Contoh: .example.comuntuk example.com, www.example.com dan semua subdomain lainnya)

Jika Anda menggunakan n98-magerun (dan Anda harus!), Hal yang sama dapat dilakukan dengan:

n98-magerun config:delete web/cookie/cookie_domain
n98-magerun cache:clean config
Fabian Schmengler
sumber
Hai @fschmengler, silakan tambahkan rincian lebih lanjut tentang cara memeriksa pengaturan ini dari phpmyadmin, karena pengguna tidak dapat masuk ke panel admin dan beberapa pengembang yang baru mengenal pengembangan Magento tidak tahu harus memeriksa di mana pengaturan dalam database. Maaf, tetapi hanya untuk bantuan anggota baru :)
Mohit Kumar Arora
@MohitKumarArora Anda benar, saya memperbarui jawabannya
Fabian Schmengler
Sekarang saya telah tervvotasikan. :)
Mohit Kumar Arora
Cara n98 bekerja fantastis. Terimakasih atas infonya.
andy jones
@FabianSchmengler, saya memeriksa core_config_data dan itu nilai yang benar untuk situs saya. Apakah saya masih harus melalui semua langkah yang Anda berikan? Apakah pendekatan Anda masih berfungsi dalam kasus ini?
datan.io
18

Saya memposting pertanyaan / jawaban karena saya tidak dapat menemukan yang relevan.

Masalahnya adalah drive tempat instalasi magento saya berada penuh. Saya membebaskan beberapa ruang, menghapus / var / session dan / var / cache dan semuanya kembali normal.

SR_Magento
sumber
1
Peringatan: menghapus var/sessionakan mengeluarkan semua orang dan menghapus semua kereta tamu. Lihat di sini untuk solusi yang hanya menghilangkan sesi lama: magento.stackexchange.com/a/58167/243
Fabian Schmengler
@fschmengler ya tapi apakah Anda benar-benar ingin mengambil kesempatan dengan sesi yang tidak diciptakan dengan benar untuk memulai? Ketika saya memeriksa / var / sesi ada semua jenis file 0kb yang tidak normal.
SR_Magento
1
Benar-benar hal pertama yang perlu diperiksa. Telah memeras kepalaku selama berjam-jam. Terima kasih!
Bryant Jackson
Bagi saya itu adalah ruang disk. Saya menemukan setelah mencoba git pull, karena gagal dengan kesalahan terkait ruang disk.
Damodar Bashyal
@SR_Magento Pak Saya telah dihapus folder cache dan folder sesi berkali-kali itu hanya berfungsi untuk beberapa waktu setelah beberapa waktu ada masalah yang sama
Amaresh Tiwari
3

Ada 3 solusi:

  1. Gunakan perintah ini di phpmyadmin

    HAPUS DARI core_config_data WHERE path = 'web / cookie / cookie_domain';

    HAPUS DARI core_config_data WHERE path = 'web / cookie / cookie_path';

Sekarang Coba login.

2. Hapus semua dalam folder var dan kemudian periksa apakah itu berfungsi.

3. Ganti file .htaccess dengan sampel .htaccess file lalu coba login admin.

Semoga ini bisa membantu Anda.

Lokranjan
sumber
1

Kemungkinan lain, agak jelas, masalah untuk diperiksa terlebih dahulu: jika situs Anda menggunakan SSL, pastikan Anda tidak menggunakan protokol http untuk halaman admin Anda; Anda harus menggunakan https . mis. https://example.com/admin

voidoid
sumber
1

Dalam kasus saya masalahnya sepertinya karena saya telah membuat pengguna admin menggunakan n98-magerun dengan pengguna yang tidak dapat menulis di magentofolder / var dan menggunakan folder fallback / tmp / magento sebagai gantinya.

Saya baru saja menghapus pengguna admin saya dan mengeksekusi sudo -iu OTHERUSER(pengguna yang memiliki folder magento) dan berlari n98-magerun admin:user:createlagi untuk membuat pengguna saya.


UPDATE: Dalam kasus lain, url admin telah dikunjungi tanpa www. sintaks, dan pengaturan cookie menggunakan www. Hanya dengan menempatkan www. di admin url menyelesaikan masalah. ;)

Ricardo Martins
sumber
Bukankah ini seharusnya admin:user:create?
sr9yar
1
@ sr9yar nggak - itu Magento2 - ini M1
treyBake
0

Seiring dengan langkah membersihkan cache di atas, saya juga harus mengikuti artikel di bawah ini dan mengatur informasi data sesi di jalur yang benar dengan mengikuti langkah-langkah di bawah ini

Artikel ref

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

Saya memperbaikinya dengan mengubah session.save_path untuk meletakkannya di VM.

Ubah aplikasi file / etc / local.xml

diganti dengan di bawah ini

Kemudian mulai bekerja. Juga kadang-kadang Anda tidak dapat benar-benar memberi tahu masalah ini, oleh karena itu penting Anda mengaktifkan pencatatan kesalahan. Aktifkan ini dengan merujuk ke artikel berikut

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

Abhishek Chowla
sumber
0

Hapus cookie dan cache. Buka panel admin dalam mode penyamaran.

Abdul Rafay
sumber
-3

Masalah ini diketahui umumnya muncul setelah menerapkan patch SUPEE-7405 termasuk dalam rilis Magento 1.9.2.3. Ini dapat diselesaikan dengan menambahkan kode di bawah ini dalam file - app / code / local / Mage / Core / Model / Session.php

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

File ini mungkin tidak ada di repositori Anda jadi salin app/code/core/Mage/Core/Model/Session.phpdan tempel di app/code/local/Mage/Core/Model/Session.phpsetelah itu tambahkan fungsi di atas dalam file karena mungkin tidak ada dalam file inti.

Bersihkan juga cache dan cookie browser Anda. Hapus semua file dalam konten Magento var/cachedan var/sessionfolder. Kemudian masuk ke panel admin Anda.

InfoBeans
sumber
Ermm..bukankah solusi yang lebih baik adalah menambahkan output blok kunci form ke template adminhtml yang diganti? (Dengan begitu perlindungan CSRF akan berfungsi sebagaimana dimaksud).
Luke A. Leber
2
Seseorang seharusnya tidak pernah mengedit file inti.
Maks