Acabo de hacer una instalación nueva de Magento 1.9.0.1 y veo un comportamiento muy extraño con el formulario de inicio de sesión del cliente.
En Chrome (versión 36) el formulario de inicio de sesión no funciona. Acabo de ser redirigido a la página de inicio de sesión. No hay ningún mensaje de error. Sin embargo, cuando abro una nueva ventana de incógnito, puedo iniciar sesión bien. Pensando que esto era un problema de cookies, borré todas mis cookies del navegador e intenté nuevamente y obtuve los mismos resultados. En ambos casos, puedo iniciar sesión en el panel de administración sin ningún problema.
También he intentado esto en Firefox y Safari. Firefox vería que sucediera lo mismo (pero no de manera consistente y podría solucionarlo borrando las cookies) y no podría replicar en Safari.
Nunca he tenido un problema con esto en ninguna otra versión de Magento. ¿Hay algún tipo de cambio fundamental en la forma en que Magento maneja las cookies en la versión 1.9 y / o hay algo que pueda hacer para que esto sea más estable?
fuente
www
por ejemplo,abc.com
se lo redirigiówww.abc.com
. En este caso, el navegador estaba configurando las cookies para ambos y los inicios de sesión dejaron de funcionar especialmente, pero siwww
elimino manualmente la cookie que estaba sin los inicios de sesión, comenzaría a funcionar nuevamente.Respuestas:
Yo tuve el mismo problema....
La respuesta es que su tema no proporciona una variable llamada
form_key
.Tal como se indicó anteriormente, tengo que agregar:
lo agregas justo después
<ul class="form-list">
a cada uno de mis
login.phtml
archivos para el tema.También puede tener problemas con la cantidad de actualización de los artículos del carrito
Aquí está la importancia de
form_keys
:Desde el principio de los tiempos, el backend de Magento contenía una clave de formulario que protegía contra los ataques XSS [1]. Con Magento 1.8, la clave de formulario ha entrado en la interfaz por la misma razón: para protegerse contra el envío de formularios desde otro sitio web, utilizando su navegador. un atacante malintencionado puede agregar cosas a su carrito mientras está en una pestaña diferente del navegador o incluso completar un pedido por usted. Esto se basa en URL predecibles, porque el sitio no tendrá acceso al contenido HTML real en la pestaña del navegador donde tiene su pedido de Magento esperando. Sin embargo, todo lo que se envíe a la tienda Magento enviará sus cookies y, por lo tanto, utilizará su sesión.
Al agregar una clave única a cada formulario o a cada enlace que genera una acción en el servidor, la URL o el contenido del formulario ya no son predecibles. La clave del formulario se almacena en los datos de la sesión y se valida al enviarla al servidor. Si no coinciden, aparece un error de clave de formulario y la acción no se completa.
fuente
<?php echo $this->getBlockHtml('formkey'); ?>
más que la entrada grande.Puede ser:
cookie setting issue in Chrome browser
O
Magento 1.9 está usando la
form key validation at customer loggin and register
página.En
Post action
él, verifique la tecla de formulariousing function _validateFormKey()
en el controladorform key issue: form key missing
entonces agregue este código en su formularioO
Cookie domain setting issue
Verifique que la configuración sea correcta o noa
Admin>System>configuration>General>Web>Session Cookie Management
fuente
if (!$this->_validateFormKey()) {
devuelve false, lo que significa que Magento no puede validar la clave suministrada. ¿Alguna idea de por qué sucede?Como el problema parece estar relacionado con las cookies, intente aumentar el tiempo de vida de las cookies a 86400 en
El motivo puede ser que, de forma predeterminada, la duración de la cookie se establece en 3600 (1 hora). Pero si el tiempo de la computadora de los usuarios finales se adelanta al tiempo del servidor, las cookies no se establecerán para la interfaz de Magento ni para el servidor. Por ejemplo, el tiempo de la computadora del usuario final es de 1 hora hacia adelante que el tiempo del servidor, lo que significa que la cookie (que contiene el ID de sesión del usuario) caducará tan pronto como el usuario inicie sesión o intente agregar un elemento.
fuente
Para futuros lectores: hay muchas causas posibles para este problema. Durante el inicio de sesión, algunos registros de excepción se suprimen por razones de seguridad, por lo que su problema no se mostrará
var/log/exception.log
.Para diagnosticar su problema:
app/code/core/Mage/Customer/controllers/AccountController.php
y ve alloginPostAction
método.Mage::logException($e);
llamada y guarda el cambio¡No olvides deshacer los cambios a
app/code/core/Mage/Customer/controllers/AccountController.php
!La causa de mi problema fue que una clase no podía cargarse automáticamente porque el módulo (incorrectamente) tenía en
<codePool>community</codePool>
lugar de<codePool>local</codePool>
.fuente
Solucioné el problema simplemente agregando la siguiente línea de código en el archivo phtml de inicio de sesión persistente.
fuente
Ok, después de luchar durante media hora, descubrí exactamente en qué carpetas login.phtml tengo que cambiar. Así que ve a
y pegar
después
Eso es.
fuente
Si está utilizando Varnish cache, puede haber un problema diferente. Estoy citando una solución que encontré en otro lugar. https://github.com/nexcess/magento-turpentine/issues/169
fuente
El motivo de este problema es que el formulario de inicio de sesión personalizado no contiene ninguna clave_formulario y hay una validación de clave de formulario en loginPostAction of Magento.
Puedes arreglarlo de la siguiente manera:
Encontrar:
y pegue esto justo después del código anterior:
fuente
Lo anterior funcionó para mí absolutamente bien, pero estaba actualizando de Magento 1.4.1 a 1.9.1, así que fue un gran salto. Los archivos no se encontraban en ninguna parte en la ubicación anterior, pero se encontraban en la carpeta app / design / frontend / BASE.
Esta carpeta base contiene muchos archivos comunes desde Magento 1.4, así que leí ... Espero que esto le ahorre a alguien las muchas horas de trabajo que me llevó ...
fuente
Si está utilizando cualquier extensión de inicio de sesión social, también agregue la clave de formulario en ese archivo login.phtm
fuente
Asegúrese de que php-mbstring esté instalado y habilitado en su servidor.
Si no es así, el inicio de sesión de administrador funcionará mientras que el cliente no.
Esta comprobación se puede realizar buscando en la salida
phpinfo()
o habilitando temporalmente la excepción de inicio de sesión alrededor de la línea177
en:app/code/core/Mage/Customer/controllers/AccountController.php
Tenga en cuenta que la operación puede revelar la contraseña del cliente en el seguimiento de excepción registrado.
fuente
Tuve el mismo problema y lo resolví eliminando todas las cookies. El problema parece suceder si tiene varias tiendas de magento diferentes e inicia sesión en ellas al mismo tiempo.
fuente