¡Hey! Hola que tal amigos De Junior a Senior, el día de hoy venimos con un problema de PrestaShop 1.7.7.5 y al parecer de versiones anteriores, ya que el problema lo he visto desde el año 2011 y al parecer no hay mucha información de como solucionarlo por la comunidad de PrestaShop.

Porque quedan muchas incógnitas de que es lo que está pasando al momento de iniciar login y que este nos de un error 502 en consola, y lo más inquietante que no deja iniciar sesión, y solo nos muestre el login en blanco, ya que este desaparece.

No puedo iniciar sesión en mi tienda de PrestaShop
No puedo iniciar sesión en mi tienda de PrestaShop

Soluciones a no puedo iniciar sesión en mi tienda de PrestaShop porque desaparece el formulario de inicio de sesión:

Primera opción:
La primera opción es muy sencilla, porque solo tenemos que subir o bajar la versión de nuestro PHP, a una versión estable y en la cual o se encuentren vulnerabilidades. Pero esto, a veces no resuelve completamente el problema, ya que podemos seguir teniendo el problema, pero hemos visto que a unas cuantas personas les ha sido de ayuda.

Segunda opción:
La segunda opción que miramos es borrar las carpetas de caché que se encuentran dentro de var/cache y borrar tanto prod como dev. (Esta solución en nuestro caso no nos sirvió)

Tercera opción (Solución):
En nuestro caso la solución fue cambiar un archivo del Core de PrestaShop. Lo primero que tenemos que hacer es dirigirnos a nuestro servidor o nuestro local y entrar a la siguiente carpeta: src/Core/Util/InternationalizedDomainNameConverter.php y abrir en archivo InternationalizedDomainNameConverter.php.

Una vez hecho esto veremos el código de la siguiente forma:

class InternationalizedDomainNameConverter
{
    /**
     * Convert the host part of the email from punycode to utf8 (e.g,. email@xn--e1aybc.xn--p1ai -> email@тест.рф)
     *
     * @param string $email
     *
     * @return string
     */
    public function emailToUtf8(string $email): string
    {
        $parts = explode('@', $email);
        if (count($parts) !== 2) {
            return $email;
        }

        return $parts[0] . '@' . idn_to_utf8($parts[1], 0, INTL_IDNA_VARIANT_UTS46);
    }
}

Nosotros remplazaremos una parte muy pequeña del código:

class InternationalizedDomainNameConverter
{
    /**
     * Convert the host part of the email from punycode to utf8 (e.g,. email@xn--e1aybc.xn--p1ai -> email@тест.рф)
     *
     * @param string $email
     *
     * @return string
     */
    public function emailToUtf8(string $email): string
    {
        $parts = explode('@', $email);
        if (count($parts) !== 2) {
            return $email;
        }

        return $parts[0] . '@' . idn_to_utf8($parts[1], 0, intval(INTL_IDNA_VARIANT_UTS46));
    }
}

En este caso solo añadiremos un intval(INTL_IDNA_VARIANT_UTS46) para convertir a entero este dato.

Y esto sería todo, solo guardamos y revisamos nuestro sitio web y veremos que este empezara a funcionar de nuevo, sin que nuestro formulario desaparezca.

Cuarta opción (Cloudflare)
Hace unos días hicimos una revisión y nos daba el mismo error, pero esta ve notamos algo raro en Cloudflare, ya que este nos mostraba un 502 bad gateway, nos percatamos que nos estaba afectando Cloudflare y tenía el mismo comportamiento porque escondía el login una vez se iniciaba la sesión.

La solución fue limpiar caché, y si esto no funciona, la otra opción es desactivar nuestro Cloudflare por el momento hasta comprobar todas las configuraciones de este, ya que por algún motivo hace que surja este error que es muy molesto, si tienes llamadas todo el día del cliente para pedir una solución rápida.

Pero espero les sea de ayuda esto, ya que no hay mucha información, acerca del tema.

Espero les haya servido de algo esta breve información, si tienen dudas u otras maneras de hacerlo pueden mostrárnoslo en los comentarios, esto ayudara a qué todos crezcamos y resolvamos nuestros problemas de forma rápida y sencilla.

Y sin mas que decir por el momento, nos vemos y espero nos apoyen con sus opiniones y comentarios, saludos.

Leave a reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may also like