Ich arbeite an einem Laravel-Projekt, das neben einem benutzerdefinierten PHP-Projekt funktionieren muss, da ich Zugang zu den reinen PHP-Globalen $ _SESSION und $ _COOKIE in der Laravel-App benötige.
Bis jetzt bin ich nur null oder leer. Jemand weiß, wie man das macht?
Laravel hat seine eigenen Implementierungen von $_SESSION
und $_COOKIE
, daher habe ich Angst, dass Sie nicht über diese Superglobale darauf zugreifen können.
Um zu versuchen, das zu überwinden, können Sie in Ihrer Laravel-App Daten von einem zum anderen übertragen, indem Sie Folgendes tun:
%Vor%Ich hatte vor ein paar Monaten ein ähnliches Problem mit CakePHP. Grundsätzlich waren die Sitzungsvariablen in der Cake-Anwendung völlig unabhängig von den Sitzungsvariablen in der maßgeschneiderten Anwendung, die wir hatten. Das Problem war, dass Cake eine andere Sitzungskennung als PHPSESSID verwendet. Am Ende musste ich die Lücke schließen, indem ich Cake zwang, PHPSESSID zu verwenden. Ich kenne Laravel nicht sehr gut, aber von dem, was ich (auf ihrer Hauptseite) sehen kann, scheinen sie "laravel_session" anstelle von PHPSESSID zu verwenden. Dies ist wahrscheinlich Ihr Problem und es scheint ein Thema dazu in den offiziellen Laravel-Foren zu geben.
Die Antwort auf die Sitzungen ist so einfach, dass ich am Anfang nicht glaube, dass es funktionieren wird.
Ich dachte, dass Laravel irgendwie das Standardverhalten der normalen PHP Sessions außer Kraft setzt. Vielleicht eine benutzerdefinierte session_handler
oder eine andere Magie hinter den Kulissen zu deklarieren.
Danke für all die Antworten, die ich hier bekommen habe, ich stelle fest, dass Laravel den $ _SESSION überhaupt nicht benutzt, sondern einen komplett anderen Treiber implementiert.
Um Zugriffe auf die externe Sitzung zu haben, benutze ich einfach die nativen session_start()
und session_name()
in reinem PHP und jetzt habe ich Zugriff auf alle Daten in der globalen $_SESSION
auf dem gleichen Namespace in der Nebenprojekt.
Für Cookies, kann ich noch nicht herausfinden, wie es geht, aus der Laravel App: /. Aber nur mit Sitzungen kann ich die Apps zusammenführen.
Ich hatte ein ähnliches Problem mit Cookies, die nicht von laravel gesetzt wurden und Cookie :: get () gab null zurück. Das liegt daran, dass Laravel ihre Cookies verschlüsselt. Sie können EncryptCookies
Middleware einfach nicht einschließen, um dieses Problem zu vermeiden. Entfernen Sie \App\Http\Middleware\EncryptCookies::class
von $middlewareGroups
in app\Http\Kernel.php
Tags und Links php session frameworks laravel cookies