Wie kann man von einer Laravel App auf die Globals $ _SESSION und $ _COOKIE zugreifen?

8

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?

    
gvsrepins 26.02.2014, 20:07
quelle

5 Antworten

4

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%     
Antonio Carlos Ribeiro 26.02.2014 20:12
quelle
1

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.

    
Wayne Whitty 26.02.2014 20:21
quelle
1

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.

    
gvsrepins 27.02.2014 14:41
quelle
0

Laravel hat eine eigene Implementierung dieser Globals, aber Sie können auf sie über die Symfony-Request-Klasse zugreifen - die übergeordnete Laravel-Anfrage ist. Symfony arbeitet direkt mit Globals.

Sitzung:

%Vor%

Cookie:

%Vor%     
carousel 26.02.2014 20:23
quelle
0

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

    
Alex Karagachev 02.03.2017 07:42
quelle