CE1.9.1 Pastikan masalah pencocokan kata sandi Anda selama pendaftaran Pengguna

23

Saya menghadapi masalah ini pada CE1.9.1.

Ketika seorang Pengguna mendaftar (tidak masalah apakah itu selama checkout atau dari tautan Buat Akun) pengguna tetap mendapatkan kesalahan ketidakcocokan kata sandi meskipun kata sandi dimasukkan kembali dengan benar.

Validasi formulir tidak menunjukkan adanya ketidaksesuaian, tetapi begitu pengguna mengklik Daftar, itu mengembalikan kesalahan ketidakcocokan.

Tidak ada kesalahan di konsol chrome ...

Saya menemukan ini: "Pastikan kata sandi Anda cocok" - Kesalahan kata sandi di Checkout dengan formulir Pendaftaran Baru

Tapi saya tidak percaya itu adalah kesalahan yang sama.

Saya harus segera memperbaikinya, bantuan apa pun sangat dihargai!

Tagihan
sumber
Ini memperbaiki kesalahan dalam checkout checkout tetapi untuk mendapatkan bagian "Akun Saya" berfungsi, saya harus menonaktifkan kompiler di (admin | system | tools | kompilasi). (
Mengkompilasi

Jawaban:

24

Anak-anak dari kelas Mage_Customer_Model_Customersebaiknya menggunakan getPasswordConfirmation()bukangetConfirmation()

Pembaruan: Di kelas Mage_Customer_Model_Customer, metode validate()telah diubah

Sebelum v1.9.1:

$confirmation = $this->getConfirmation();

Setelah:

$confirmation = $this->getPasswordConfirmation();


Bogdan
sumber
Perhatikan juga bahwa Anda harus memeriksa pengontrol yang ditimpa juga, bukan hanya model yang memperpanjang kelas ini!
benz001
2
Pikiran mengejutkan bagaimana sesuatu yang sangat penting untuk menghentikan toko e-commerce yang memungkinkan pembelian dapat membuatnya melalui QA dan menjadi rilis resmi.
mikemike
1
Juga di beberapa ekstensi perlu mengubah setConfirmation () ke setPasswordConfirmation (). Itu FireCheckout dalam kasus saya. Kelas: TM_FireCheckout_Model_Type_Standard, metode: _validateCustomerData ().
gSorry
5

Akhirnya, saya bisa menyelesaikan masalah ini.

Saya harus menyebutkan itu benar-benar tidak baik bahwa file inti magento memiliki masalah seperti ini ketika mereka mengamankan kata sandi, kira pengembang inti lupa beberapa hal sederhana.

Oke, jadi untuk memperbaiki masalah ini Anda harus mengganti model pelanggan inti seperti lokal app/code/local/Mage/Customer/Model/Customer.php. Dalam pergi ke sekitar jalur no. 843 (jika Anda belum mengganti) atau pergi ke baris if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array(6))) { $errors[] = Mage::helper('customer')->__('The minimum password length is %s', 6); }dan tambahkan kode berikut di bawah blok itu:

//To match passwords in both Create account and Checkout register pages start
    if ( Mage::app()->getRequest()->getServer('HTTP_REFERER') == Mage::getUrl('customer/account/create') )
      $confirmation = $this->getPasswordConfirmation();
    else
      $confirmation = $this->getConfirmation();
    //To match passwords in both Create account and Checkout register pages end

Setelah ini kata sandi dan kata sandi konfirmasi akan cocok pada halaman "Checkout" dan "Buat Akun".

Semoga ini bisa membantu seseorang.

HD
sumber
3

Saya memiliki ekstensi yang menimpa AccountController.php dan mengalami masalah yang sama untuk Platform Magento di bawah 1.9.1

Solusi saya adalah;

if (version_compare(Mage::getVersion(), '1.9.1', '<=')) {        
$customer->setPasswordConfirmation($request->getPost('confirmation'));
}

if (version_compare(Mage::getVersion(), '1.9.0', '>=')) {
$customer->setConfirmation($request->getPost('confirmation'));
}
BENN1TH
sumber
2

Bagi saya tidak $this->getPasswordConfirmation()juga tidak $this->getConfirmation()bekerja. Keduanya mengembalikan string kosong. Jadi saya akhirnya mengakses parameter POST secara langsung, di /app/code/core/Mage/Customer/Model/Customer.php(ya, lebih baik gunakan salinannya /app/code/local):

if (isset($_REQUEST['confirmation']))
    $confirmation = $_REQUEST['confirmation'];
else
    $confirmation = $this->getPasswordConfirmation();
Anse
sumber
1
ha ha crack yang bagus :)
Keyur Shah
0

itu karena perubahan pembaruan 1.9.1 ini. Anda harus memperbarui kode ekstensi Anda. Kata sandi pelanggan tidak lagi disimpan dalam teks yang jelas saat pendaftaran.

Javier
sumber
Begitu ya, aku akan memeriksa kode ekstensi. Terima kasih!
Bill
0

Saya memiliki masalah yang sama dengan saya menggunakan ekstensi pihak ketiga untuk checkout sehingga masalah ini harus datang

Saya telah memecahkan kesalahan itu dengan melakukan langkah-langkah berikut

1) dalam modul saya, saya mencari confirmation

2) periksa apakah itu mengatur data untuk customermodel

3) lalu ubah kunci password_confirmationdari dariconfirmation

Saya mengikuti langkah-langkah di atas untuk men-debug masalah dan menyelesaikannya.

Murtuza Zabuawala
sumber
0

Solusi saya adalah

$confirmation = $this->getPasswordConfirmation(); // test works for Create, fails for Checkout
    if ($password != $confirmation) {
        $confirmation = $this->getConfirmation(); // test works for Checkout fails for Create
        if ($password != $confirmation) {
            $errors[] = Mage::helper('customer')->__('Please make sure your passwords match.');
        }
    }
RW-Fairport
sumber
-3

Hai Teman-teman Masalah Ini Dapat Diatasi dengan melakukan langkah-langkah di bawah ini:

Langkah 1: Buka file ini. /app/code/core/Mage/Customer/Model/Customer.php
Langkah 2: Temukan baris ini di Customer.php $confirmation = $this->getPasswordConfirmation(); Langkah 3: Ganti baris itu dengan $confirmation = $this->getConfirmation();

Masalah Anda sekarang Diatasi.

Mag Kart
sumber
3
Kecuali ini benar-benar bug inti, saya tidak akan merekomendasikan mengubah file inti.
Andrew Kett