Quiero correr mi aplicación en localhost con php artisan serve pero me sale este Error unserialize(): Error at offset 0 of 40 bytes donde es mi problema?

  • ¿El uso de ella fuera de la caja? O en que el código de la parte que hace el error aparece? Es un poco difícil ayudarte sin algún código o más información.
  • cómo puedo explicar mi problema?Acabo de recibir este mensaje de Error en todas las páginas de la aplicación @Pedregosa
  • trate de php artisan serve -vvv. Afair esto debe mostrar más detallado de salida para el error y usted probablemente puede encontrar la causa.
  • La pruebo pero obtener este Error
  • Entonces usted probablemente debería profundizar en algunos avanzadas técnicas de depuración de php, de lo contrario es realmente difícil ayudarte, lo siento. Intente introducir una costumbre error_handler el fin de obtener algunas detallada de salida de la primera. Supongo que su aplicación se basa en algunas de representación serializada de algo, pero no podemos saber.
  • ¿Qué versión de Laravel estás usando? Hay algunos cambios después de 5.6.30 que puede causar esto. Comprobar la actualización de la guía para más información laravel.com/docs/5.6/upgrade#upgrade-5.6.30
  • la versión de mi laravel es de 5,6,este trabajo antes, pero Ahora me sale este Error
  • su respuesta me ayuda he Creado nuevos laravel y copia de este .env archivo para este proyecto,voy a eliminar .env archivo y utilizar el antiguo archivo de la versión

InformationsquelleAutor Hanie Asemi | 2018-08-13

10 Comentarios

  1. 43

    Tengo el mismo error, cuando puedo actualizar un Laravel 5.5 aplicación a 5.6. El error viene de la EncryptCookies-Middleware.

    Eliminar las cookies en su navegador y/o borrar la sesión de los archivos en su aplicación Laravel.

  2. 50

    Usted tiene que fijar una noticia Clave Generar porque

    php artisan key:generate
    

    Después de que la prueba de nuevo para ejecutar la Aplicación Laravel

    php artisan serve
    
    • ¿Por qué es esto necesario?
    • porque las cookies vinculadas con la tecla aplicaciones, si cambia la clave de su como su aplicación no tiene las cookies de nuevo
  3. 5

    Que me he encontrado el mismo problema. Con frecuencia se enfrentan a este problema en Homestead-vagrant medio ambiente.
    Para resolver este problema en Laravel 5.4,5.5,5.6 o más –

    php artisan config:claro

    php artisan vista:claro

    php artisan clave:generar

  4. 4

    Tengo el mismo error de hace un par de días cuando me empujó una producción de actualización a mi Laravel proyecto de Envoyer.

    Inmediata revisión:
    Traté de volver a la anterior cometer, pero el problema persistió lo que significa que el problema se origina desde el lado del cliente, las cookies probablemente. He intentado eliminar las cookies y el tema se ha ido.

    Más tarde, me pasé un montón de tiempo buscando este tema, pero no tiene nada que hacer hasta que me enfrenté a este problema hoy de nuevo con otro implementación y he encontrado este artículo en Laravel noticias acerca de la revisión de seguridad 5.6.30 actualización. Yo era capaz de identificar que este problema se produce si trato de implementar anterior (< 5.6.30) versión de laravel v5.6.26 para un proyecto que ya estaba usando > v5.6.30 y las galletas estaban ya creados ( no serliazed) que cuando <5.6.30 versión del framework intenta unserlize resultados en el error, porque no están correctamente serealized.

    • La instalación de laravel/marco (v5.6.26)
      La carga de la memoria caché

    A partir de la guía de actualización:

    La configuración de Cookies de Serialización Ya que esta vulnerabilidad no es capaz de
    para ser explotado sin acceso a la aplicación de la clave de cifrado,
    hemos elegido para proporcionar una manera para volver a habilitar la cookie cifrada
    la serialización, mientras usted hace que la aplicación sea compatible con estos
    cambios. Para activar /desactivar la cookie de serialización, usted puede cambiar el
    estática serializar propiedad de la App\Http\Middleware\EncryptCookies
    middleware:

    Yo era capaz de solucionar este problema de forma permanente por la limpieza de la memoria caché del compositor, así que obligó a cargar la última versión del framework en lugar de volver a caer en caché.

    Espero que esto ayude.

    Mejores,

  5. 3

    En mi caso lo hice quitado a mi composer.lock e hizo un composer install y voila…

    $ cd project_root
    $ rm composer.lock
    $ composer install
    
    • El trabajo para mí en Laravel 5.5
  6. 2

    Sólo Inspeccione el elemento en el Explorador y vaya a la ficha aplicaciones y seleccione cookies y eliminar todas las cookies. Eso Es todo.

    unserialize(): Error en el desplazamiento 0 de 40 bytes de Error

  7. 1

    En App\Excepciones\Controlador de bajo representar el uso de la función de este fragmento, se restablece de cookies del navegador.

    if (str_contains($exception->getMessage(), 'unserialize')) {
        $cookie1 = \Cookie::forget('laravel_session');
        $cookie2 = \Cookie::forget('XSRF-TOKEN');
    
        return redirect()->to('/')
                     ->withCookie($cookie1)
                     ->withCookie($cookie2);
    }
    
  8. 1

    También he encontrado con este problema cuando se me ocurrió actualizar mi compositor.
    Si pones

    protected static $serialize = true;
    

    dentro de la Aplicación\Http\Middleware\EncryptCookies, el viejo cookie va a romper su sistema. Así que para evitar esto, usted tiene que borrar la cookie, o simplemente no unserialize descifrado de cookie.

    He hecho una solución para esto:
    Dentro de vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php
    Por encima de esta línea de descifrar() función:

    return $unserialize ? unserialize($decrypted) : $decrypted;
    

    agregar:

    try {
                return $unserialize ? unserialize($decrypted) : $decrypted;
            } catch (\Exception $e){
                return $decrypted;
            }
    

    Esto puede ser feo, pero usted puede poner temporalmente allí hasta que usted piensa que el viejo «cookies» se ha ido.

    • Interesante. Pero, ¿por qué no acaba de quitar el viejo cookie en el navegador?
    • asegúrese de que usted puede simplemente eliminar las cookies, pero si su sitio ha sido público a muchos usuarios probablemente usted no quiere interrumpir su experiencia.
    • Buen punto. No estaba pensando en eso porque mi entorno es todavía todos los locales y privados en este punto.
  9. -1

    sí, para localhost sólo se puede eliminar las cookies, pero para la producción de poner esto en su error de controlador de forma que los usuarios no ver aullidos :

    if (strpos($exception->getMessage(), 'unserialize(): Error at offset 0 of 40 bytes') === 0) {
        unset($_COOKIE['laravel_session']);
        unset($_COOKIE['XSRF-TOKEN']);
    
        setcookie('laravel_session', null, -1, '/');
        setcookie('XSRF-TOKEN', null, -1, '/');
    
        abort(200, '', ['Location' => route('frontend.home')]);
    }
    

    PS. probado para laravel 5.6.

Dejar respuesta

Please enter your comment!
Please enter your name here