Saya baru saja melakukan instalasi baru Magento 1.9.0.1 dan saya melihat beberapa perilaku yang sangat aneh dengan formulir login pelanggan.
Di Chrome (versi 36) formulir masuk tidak berfungsi. Saya baru saja diarahkan ke halaman login. Tidak ada pesan kesalahan. Namun, ketika saya membuka Jendela Penyamaran baru, saya dapat masuk dengan baik. Mengira ini adalah masalah cookie, saya menghapus semua cookie dari browser dan mencoba lagi dan saya mendapatkan hasil yang sama. Dalam kedua kasus, saya dapat masuk ke panel admin tanpa masalah.
Saya juga sudah mencoba ini di Firefox dan Safari. Firefox Saya akan melihat hal yang sama terjadi (tetapi tidak secara konsisten dan saya bisa memperbaikinya dengan menghapus cookie) dan saya tidak bisa meniru di Safari.
Saya tidak pernah memiliki masalah dengan ini di versi Magento lainnya. Apakah ada semacam perubahan mendasar dalam cara Magento menangani cookie di versi 1.9 dan / atau ada yang bisa saya lakukan untuk membuatnya lebih stabil?
sumber
www
misalnyaabc.com
itu kemudian dialihkan kewww.abc.com
. Dalam hal ini, browser sedang mengatur cookie untuk keduanya dan login khusus berhenti berfungsi, tetapi jika saya menghapus cookie secara manual yang tanpawww
login mulai bekerja lagi. Dapatkah Anda memeriksa apakah hal yang sama juga terjadi pada Anda?Jawaban:
Saya punya masalah yang sama ....
Jawabannya adalah bahwa tema Anda tidak menyediakan variabel yang disebut
form_key
.Sama seperti yang disebutkan di atas saya harus menambahkan:
Anda menambahkannya setelah itu
<ul class="form-list">
ke masing-masing
login.phtml
file saya untuk tema.Anda juga mungkin mengalami masalah dengan memperbarui jumlah item kereta
Inilah pentingnya
form_keys
:Sejak awal waktu, backend Magento berisi kunci formulir yang dilindungi terhadap serangan XSS [1]. Dengan Magento 1.8 kunci form telah memasuki frontend dengan alasan yang hampir sama: untuk melindungi terhadap pengiriman formulir dari situs web lain, menggunakan browser Anda. seorang penyerang jahat dapat menambahkan barang ke keranjang Anda saat Anda berada di tab browser yang berbeda atau bahkan menyelesaikan pesanan untuk Anda. Ini bergantung pada URL yang dapat diprediksi, karena situs tidak akan memiliki akses ke konten HTML aktual di tab browser tempat Anda menunggu pesanan Magento. Segala sesuatu yang dikirim ke toko Magento akan mengirimkan cookie Anda dan karenanya menggunakan sesi Anda.
Dengan menambahkan kunci unik ke setiap formulir atau ke setiap tautan yang menghasilkan tindakan di server, URL atau konten formulir tidak lagi dapat diprediksi. Kunci formulir disimpan dalam data sesi dan divalidasi setelah diserahkan ke server. Jika tidak cocok, Anda mendapatkan kesalahan kunci formulir dan tindakan tidak selesai.
sumber
<?php echo $this->getBlockHtml('formkey'); ?>
daripada input besar.Itu mungkin:
cookie setting issue in Chrome browser
ATAU
Magento 1.9 sedang menggunakan
form key validation at customer loggin and register
halaman.Di
Post action
atasnya periksa kunci formulirusing function _validateFormKey()
di controllerform key issue: form key missing
jadi tambahkan kode ini di formulir AndaATAU
Cookie domain setting issue
Pengaturan goto check sudah tepat atau tidakdi
Admin>System>configuration>General>Web>Session Cookie Management
sumber
if (!$this->_validateFormKey()) {
mengembalikan false yang berarti Magento tidak dapat memvalidasi kunci yang disediakan. Gagasan saya mengapa itu terjadi?Karena masalah ini tampaknya terkait dengan cookie, coba tambah waktu hidup cookie menjadi 86400 di bawah
Alasannya mungkin, secara default cookie seumur hidup diatur ke 3600 (1 jam). Tetapi jika komputer pengguna akhir berjalan lebih cepat dari waktu server, cookie tidak akan ditetapkan untuk frontend Magento serta backend. Misalnya, waktu komputer pengguna akhir adalah 1 jam lebih maju dari waktu server, itu berarti cookie (memegang id sesi pengguna) akan kedaluwarsa begitu pengguna masuk atau mencoba menambahkan item.
sumber
Untuk pembaca di masa mendatang: Ada banyak kemungkinan penyebab masalah ini. Selama login, beberapa pengecualian logging ditekan untuk alasan keamanan, jadi masalah Anda tidak akan muncul
var/log/exception.log
.Untuk mendiagnosis masalah Anda:
app/code/core/Mage/Customer/controllers/AccountController.php
dan bukaloginPostAction
metode.Mage::logException($e);
panggilan dan simpan perubahanJangan lupa untuk membatalkan perubahan
app/code/core/Mage/Customer/controllers/AccountController.php
!Penyebab masalah saya adalah kelas gagal memuat secara otomatis karena modul (salah)
<codePool>community</codePool>
bukan<codePool>local</codePool>
.sumber
Saya memperbaiki masalah dengan hanya menambahkan baris kode di bawah ini dalam file phtml login persisten.
sumber
ok setelah berjuang selama setengah jam saya menemukan persis di folder mana login.phtml saya harus berubah. Jadi pergilah ke
dan tempel
setelah
itu dia.
sumber
Jika Anda menggunakan tembolok pernis, mungkin ada masalah yang berbeda. Saya mengutip solusi yang saya temukan di tempat lain. https://github.com/nexcess/magento-turpentine/issues/169
sumber
Alasan untuk masalah ini adalah form login kustom tidak mengandung form_key dan ada validasi kunci form yang terjadi di loginPostAction of Magento.
Anda dapat memperbaikinya seperti di bawah ini:
Menemukan:
dan rekatkan ini tepat setelah kode di atas:
sumber
Di atas bekerja untuk saya benar-benar baik-baik saja tetapi saya meningkatkan dari Magento 1.4.1 ke 1.9.1 jadi lompatan besar. File tidak ditemukan di lokasi di atas tetapi berada di folder app / design / frontend / BASE.
Folder dasar ini menyimpan banyak file umum sejak Magento 1.4, jadi saya membaca ... Semoga ini akan menghemat seseorang dari berjam-jam pekerjaan yang saya butuhkan ..
sumber
Jika Anda menggunakan ekstensi login sosial apa pun kemudian juga menambahkan kunci formulir di file login.phtm itu
sumber
Pastikan php-mbstring diinstal dan diaktifkan di server Anda.
Jika tidak maka login admin akan berfungsi sementara pelanggan tidak akan.
Pemeriksaan ini dapat dilakukan dengan melihat ke output
phpinfo()
atau dengan mengaktifkan sementara pengecualian login di sekitar baris177
dalam:app/code/core/Mage/Customer/controllers/AccountController.php
Sadarilah bahwa operasi dapat mengungkapkan kata sandi pelanggan dalam jejak pengecualian yang dicatat.
sumber
Saya memiliki masalah yang sama dan menyelesaikannya dengan menghapus semua cookie. Masalahnya tampaknya terjadi jika Anda memiliki beberapa toko magento yang berbeda dan masuk ke mereka secara bersamaan.
sumber