Problem mit der Gültigkeit der Laravel 5.4-Sitzung

PHP中文网
Freigeben: 2023-03-20 10:44:02
Original
1941 Leute haben es durchsucht

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();
Nach dem Login kopieren

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;
    }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage