CE1.9.1 Asegúrese de que su contraseña coincida con el problema durante el registro de usuario

23

Me encuentro con este problema en CE1.9.1.

Cuando un usuario se registra (no importa si es durante el proceso de pago o desde el enlace Crear una cuenta), el usuario sigue recibiendo el error de falta de coincidencia de la contraseña aunque la contraseña se vuelva a ingresar correctamente.

La validación del formulario no indica una coincidencia errónea, pero una vez que un usuario hace clic en Registrarse, devuelve el error de falta de coincidencia.

No hay errores en la consola de Chrome ...

Encontré esto: "Por favor, asegúrese de que sus contraseñas coincidan" - Error de contraseña en Finalizar compra con nuevo formulario de registro

Pero no creo que sea el mismo error.

Necesito arreglarlo pronto, cualquier ayuda es muy apreciada.

Cuenta
fuente
Esto corrige el error en el carrito de pago, pero para que la sección "Mi cuenta" funcione, tuve que deshabilitar el compilador en (admin | sistema | herramientas | compilación). (la compilación probablemente funcionaría también)
wiredoug

Respuestas:

24

Los niños de clase Mage_Customer_Model_Customerdeben usar en getPasswordConfirmation()lugar degetConfirmation()

Upd: en clase Mage_Customer_Model_Customer, el método validate()fue cambiado

Antes de v1.9.1:

$confirmation = $this->getConfirmation();

Después:

$confirmation = $this->getPasswordConfirmation();


Bogdan
fuente
Tenga en cuenta también que también debe verificar las anulaciones de cualquier controlador, ¡no solo los modelos que extienden esta clase!
benz001
2
La mente alucina cómo algo tan crítico como detener una tienda de comercio electrónico que permite compras puede pasar por el control de calidad y en un lanzamiento oficial.
mikemike
1
También en algunas extensiones es necesario cambiar setConfirmation () a setPasswordConfirmation (). Ese fue FireCheckout en mi caso. Clase: TM_FireCheckout_Model_Type_Standard, método: _validateCustomerData ().
gSorry
5

Finalmente, pude resolver el problema.

Tengo que mencionar que realmente no es bueno que los archivos principales de magento tengan este tipo de problemas cuando aseguran las contraseñas, supongo que los desarrolladores principales olvidaron algunas cosas simples.

De acuerdo, para solucionar este problema, debe anular el modelo de cliente central en me gusta local app/code/local/Mage/Customer/Model/Customer.php. En ese ir a la línea no. 843 (si aún no lo ha anulado) o vaya a la línea if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array(6))) { $errors[] = Mage::helper('customer')->__('The minimum password length is %s', 6); }y agregue el siguiente código debajo de ese bloque:

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

Después de esto, la contraseña y la contraseña de confirmación coincidirán en las páginas "Pagar" y "Crear cuenta".

Espero que esto pueda ayudar a alguien.

HD
fuente
3

Tengo una extensión que anulaba el AccountController.php y tenía el mismo problema para las plataformas Magento debajo de 1.9.1

Mi solución fue;

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
fuente
2

Para mí $this->getPasswordConfirmation()ni $this->getConfirmation()funcionó. Ambos devolvieron una cadena vacía. Así que terminé accediendo al parámetro POST directamente, en /app/code/core/Mage/Customer/Model/Customer.php(sí, mejor usar una copia /app/code/local):

if (isset($_REQUEST['confirmation']))
    $confirmation = $_REQUEST['confirmation'];
else
    $confirmation = $this->getPasswordConfirmation();
Anse
fuente
1
ja ja buen crack :)
Keyur Shah
0

se debe a este cambio en la actualización 1.9.1. Debe actualizar su código de extensiones: las contraseñas de los clientes ya no se almacenan en texto claro durante el registro.

javier
fuente
Ya veo, revisaré los códigos de extensión. ¡Gracias!
Bill
0

Tengo el mismo problema ya que estoy usando una extensión de terceros para pagar, por lo que este problema tiene que venir

He resuelto ese error siguiendo los pasos

1) en mi módulo busco confirmation

2) compruebe que está configurando datos para el customermodelo

3) luego cambie la clave password_confirmationdeconfirmation

Sigo los pasos anteriores para depurar el problema y resolverlo.

Murtuza Zabuawala
fuente
0

Mi solución fue

$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
fuente
-3

Hola amigos, este problema se puede resolver siguiendo los pasos a continuación:

Paso 1: abra este archivo /app/code/core/Mage/Customer/Model/Customer.php
Paso 2: busque esta línea en el Customer.php $confirmation = $this->getPasswordConfirmation(); Paso 3: reemplace esa línea con $confirmation = $this->getConfirmation();

Su problema ya está resuelto.

Mag Kart
fuente
3
A menos que esto sea realmente un error principal, no recomendaría cambiar los archivos principales.
Andrew Kett el