Maison >développement back-end >tutoriel php >Problème de validité de session Laravel 5.4

Problème de validité de session Laravel 5.4

PHP中文网
PHP中文网original
2018-02-18 14:07:091951parcourir

Au cours du processus de test, il a été constaté que si la méthode a un écho et d'autres fonctions en sortie vers le cache de sortie de PHP, l'ID de session ne sera pas placé dans l'en-tête de la requête http et l'ID de session ne sera pas obtenu dans le prochain request

Raison du problème

Emplacement du code : public/index.php

$response->send();

Cette méthode code alternatif : supplier/symfony/http-foundation/ Response.php

    /**
     * Sends HTTP headers.
     *
     * @return $this     */
    public function sendHeaders()
    {        // headers have already been sent by the developer
        if (headers_sent()) {            return $this;
        }        // headers
        foreach ($this->headers->allPreserveCaseWithoutCookies() as $name => $values) {            foreach ($values as $value) {                header($name.': '.$value, false, $this->statusCode);
            }
        }        // status
        header(sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText), true, $this->statusCode);        // cookies
        foreach ($this->headers->getCookies() as $cookie) {            if ($cookie->isRaw()) {                setrawcookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
            } else {                setcookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
            }
        }        return $this;
    }

La raison précédente est apparue dans headers_sent()

Les étudiants intéressés peuvent tester si le cache de sortie existe Data (le comportement d'impression se produit lorsque la méthode utilise des fonctions telles que echo). La fonction headers_sent() renvoie true

Cela explique le problème selon lequel votre session ne prend jamais effet lorsqu'il y a une fonction d'impression dans la méthode

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn