Heim > Artikel > Backend-Entwicklung > Problem mit der Gültigkeit der Laravel 5.4-Sitzung
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!