Di situs magento saya, saya telah mengaktifkan Captcha untuk bentuk akun Buat tema khusus yang saya buat dari awal (bukan "rwd"), tetapi ketika saya mencoba mendaftarkan pelanggan dengan memberikan kode captcha yang benar di lapangan, bahkan kemudian ditampilkan "Tidak Benar Captcha "setelah menyegarkan & mengarahkan ke halaman yang sama.
Tidak ada peringatan / kesalahan baik di klien atau server.
Adakah yang bisa membimbing saya?
Jawaban:
Anda dapat menyelesaikan dengan Debug proses cek captcha.
Jadi, silakan ikuti proses di bawah ini.
Captcha Magento
customer registration form's
telah diperiksa di kelasMage_Captcha_Model_Observer
pada fungsicheckUserCreate()
menggunakancontroller_action_predispatch_customer_account_createpost
acara.Ada magento yang memeriksa nilai captcha dalam menggunakan:
Itu berarti di sini magento mengirim nilai bidang
captcha[user_create]
dan bidang cocok padaMage_Captcha_Model_Zend
saat fungsiisCorrent()
Bidang ini cocok dengan nilai sesi.
nilai
Dengan menggunakan ini, Anda dapat melacak di mana masalahnya
sumber
Masalahnya dapat merujuk pada nama bidang input yang salah (misalnya,
name="captcha_user_create"
bukanname="captcha[user_create]"
). Atau JS captcha initnew Captcha(...)
dipecat dua kali.Apakah ada file
template/captcha/zend.phtml
dalam tema khusus Anda?Apakah Anda menggunakan captcha di halaman lain (lupa kata sandi, login)? Apakah itu berfungsi dengan benar di halaman lain?
Apakah Anda menggunakan dua captcha pada satu halaman?
Pastikan juga Anda tidak memanggil
Mage_Captcha_Model_Zend::isCorrect
metode dua kali, karena menghapus nilai captcha dari sesi pelanggan. Jika Anda melakukannya, Anda akan selalu mendapatkan pesan "CAPTCHA salah".sumber
Lihat sumber Anda dan lihat apakah ada formulir CAPTCHA lain di halaman tersebut.
Saya punya masalah yang sama. Masalahnya bagi saya adalah bahwa ekstensi AjaxPro memiliki formulir login tersembunyi yang juga menggunakan CAPTCHA. Karena kedua formulir memiliki nama blok yang sama "captcha", blok saya digunakan dua kali, dan kode disegarkan untuk formulir kedua (tersembunyi) pada pemuatan halaman, sehingga membatalkan yang di formulir saya. Jadi saya harus mengganti nama blok untuk formulir kustom saya, misalnya, dari "captcha" menjadi "captcha.custom". Kemudian itu bekerja dengan baik.
sumber
Salah satu alasan untuk ini, selain dari yang telah disebutkan, dapat memiliki sumber referensi yang salah mencoba memuat dari permintaan JS pada URL permintaan yang sama, yang untuk beberapa halaman Magento menyebabkan regenerasi captcha dalam sesi, tanpa menyegarkan frontend ditampilkan gambar captcha, sebagai output akan pergi ke permintaan ajax itu.
Sebagai contoh, saya mengalami JS lightbox mencoba memuat gambar yang mereferensikan jalur relatif, yang menyebabkan permintaan tambahan ke / pelanggan / akun / forgetpassword dengan jalur permintaan berikut: /customer/account/forgotpassword/images/black.png , ini menyebabkan kode captcha berubah dalam sesi.
sumber