CE1.9.1 Lütfen Kullanıcı kaydı sırasında parolanızın eşleştiğinden emin olun


23

CE1.9.1'de bu sorunla karşılaşıyorum.

Bir kullanıcı kaydolduğunda (ödeme sırasında mı yoksa bir Hesap Oluştur bağlantısından mı olduğu önemli değil), şifre doğru bir şekilde yeniden girilmiş olsa bile kullanıcı şifre uyuşmazlığı hatası almaya devam ediyor.

Form doğrulama, bir eşleşmeyi göstermiyor, ancak bir kullanıcı Kayıt üzerine tıkladığında uyuşmazlık hatası veriyor.

Krom konsolunda hata yok ...

Bunu buldum: "Lütfen şifrelerinizin eşleştiğinden emin olun" - Yeni Kayıt formundaki Ödeme bölümünde parola hatası

Ama aynı hatadır olduğuna inanmıyorum.

Yakında düzeltmem gerek, herhangi bir yardım büyük beğeni topluyor!


Bu satın alma sepetindeki hatayı düzeltir, ancak çalışması için "Hesabım" bölümünü almak için derleyiciyi (admin | system | tools | compilation) devre dışı bırakmak zorunda kaldım. (yeniden derleme muhtemelen de işe yarayabilirdi)
wiredoug

Yanıtlar:


24

Sınıf çocukları Mage_Customer_Model_CustomerkullanmalıgetPasswordConfirmation() yerinegetConfirmation()

Upd: Sınıfta Mage_Customer_Model_Customer, yöntemvalidate() değiştirildi

V1.9.1 öncesi:

$confirmation = $this->getConfirmation();

Sonra:

$confirmation = $this->getPasswordConfirmation();



Ayrıca, yalnızca bu sınıfı genişleten modelleri değil, denetleyici geçersiz kılmalarını da kontrol etmeniz gerektiğini unutmayın!
benz001

2
Akıl, bir e-ticaret mağazasını durduracak kadar önemli bir şeyin satın alımların QA yoluyla ve resmi bir sürümle yapılmasını sağlar.
mikemike

1
Ayrıca bazı uzantılarda setConfirmation () öğesini setPasswordConfirmation () olarak değiştirmelisiniz. Bu benim davamda FireCheckout idi. Sınıf: TM_FireCheckout_Model_Type_Standard, yöntem: _validateCustomerData ().
gSorry

5

Sonunda sorunu çözebildim.

Magento çekirdek dosyalarının parolaları güvenceye aldıklarında bu tür sorunlara sahip olmalarının gerçekten iyi olmadığını söylemeliyim, temel geliştiricilerin bazı basit şeyleri unuttuğunu tahmin edin.

Tamam, bu sorunu çözmek için yerel müşteri modelindeki temel müşteri modelini geçersiz kılmalısınız app/code/local/Mage/Customer/Model/Customer.php. Bu, sıra no. 843 (zaten geçersiz kılmadıysanız) veya satıra gidin if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array(6))) { $errors[] = Mage::helper('customer')->__('The minimum password length is %s', 6); }ve aşağıdaki kodu bu bloğun altına ekleyin:

//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

Bundan sonra parola ve parolayı onayla hem "Ödeme" hem de "Hesap Oluştur" sayfalarında eşleşir.

Umarım bu birine yardımcı olabilir.



3

AccountController.php'yi geçersiz kılan ve 1.9.1'in altındaki Magento Platformları için aynı sorunu yaşayan bir uzantım var

Benim çözümüm;

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'));
}

2

Benim için $this->getPasswordConfirmation()de $this->getConfirmation()işe yaramadı. Her ikisi de boş bir dize döndürdü. Bu yüzden doğrudan POST parametresine erişerek bitirdim /app/code/core/Mage/Customer/Model/Customer.php(içinde bir kopya kullansanız iyi olur /app/code/local):

if (isset($_REQUEST['confirmation']))
    $confirmation = $_REQUEST['confirmation'];
else
    $confirmation = $this->getPasswordConfirmation();

1
ha ha iyi çatlak :)
Keyur Shah

0

1.9.1 güncellemesindeki bu değişiklik yüzünden. Eklenti kodunuzu güncellemelisiniz -Müşteri şifreleri kayıt sırasında artık açık metin olarak kaydedilmez


Uzatma kodlarını kontrol edeceğim. Teşekkürler!
Bill

0

Çıkış için üçüncü taraf uzantısını kullandığımda da aynı sorunu yaşıyorum, bu nedenle bu sorunun çözülmesi gerekiyor

Aşağıdaki hatayı yaparak bu hatayı çözdüm

1) modülümde aradım confirmation

2) customermodel için veri ayarlayıp ayarlamadığını kontrol edin.

3) daha sonra anahtar değiştirme password_confirmationdanconfirmation

Sorunu ayıklamak ve çözmek için yukarıdaki adımları takip ediyorum.


0

Benim çözümüm

$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.');
        }
    }

-3

Merhaba Arkadaşlar Bu Sorun aşağıdaki adımları yaparak çözülebilir:

1. Adım: Bu dosyayı açın /app/code/core/Mage/Customer/Model/Customer.php
2. Adım: Bu satırı Customer.php $confirmation = $this->getPasswordConfirmation(); 3. Adımda bulun: Bu satırı değiştirin. $confirmation = $this->getConfirmation();

Sorununuz şimdi çözüldü.


3
Bu gerçekten bir çekirdek hata değilse, çekirdek dosyaları değiştirmenizi tavsiye etmem.
Andrew Kett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.