Heim  >  Artikel  >  Backend-Entwicklung  >  Problem mit der Gültigkeit der Laravel 5.4-Sitzung

Problem mit der Gültigkeit der Laravel 5.4-Sitzung

PHP中文网
PHP中文网Original
2018-02-18 14:07:091927Durchsuche

Während des Testvorgangs wurde festgestellt, dass die Sitzungs-ID nicht im http-Anforderungsheader platziert wird und die Sitzungs-ID im nächsten Schritt nicht abgerufen wird, wenn die Methode Echo und andere Funktionen in den Ausgabecache von PHP ausgibt Anfrage.

Problemgrund

Codespeicherort: public/index.php

$response->send();

Alternativer Code dieser Methode: Vendor/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;
    }

Der vorherige Grund erschien in headers_sent()

Interessierte Studenten können testen wenn im Ausgabecache Daten vorhanden sind (Druckverhalten tritt auf, wenn die Methode Funktionen wie echo verwendet)

Dies erklärt das Problem, dass Ihre Sitzung nie wirksam wird, wenn eine Druckfunktion vorhanden ist die Methode

Das obige ist der detaillierte Inhalt vonProblem mit der Gültigkeit der Laravel 5.4-Sitzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn