Wenn der Benutzer besucht sub1.example.com oder sub2.example.com und sie nicht eingeloggt sind, werden sie umgeleitet zu auth.example.com und kann sich anmelden.
sub1.example.com und sub2.example.com sind zwei separate Anwendungen, verwenden jedoch dieselben Anmeldeinformationen.
Ich habe versucht, in meiner php.ini Folgendes einzustellen:
session.cookie_domain = ".example.com"
aber es scheint nicht, die Informationen von einer Domäne zur anderen weiterzugeben.
Die Sitzungs-IDs sind genau die gleichen, aber wenn ich die entleere $_SESSION Variable zeigt es nicht beide Schlüssel, sondern nur den Schlüssel, den ich unter jeder Domäne festgelegt habe.
Ich habe fast das gleiche Setup (ich habe die Session-Cookie-Domain mit einem Aufruf von “session_set_cookie_params” festgelegt) und es funktioniert gut.
– Milen A. Radev
30. Juni 2009 um 15:25 Uhr
Hier ist eine nette Funktion, die funktioniert stackoverflow.com/questions/2835486/…
– Boksiora
14. Juli 2013 um 9:25 Uhr
jeroen
Ich weiß nicht, ob das Problem immer noch besteht, aber ich bin gerade auf dasselbe Problem gestoßen und habe es gelöst, indem ich vor dem Anruf einen Sitzungsnamen festgelegt habe session_set_cookie_params():
Ich habe nichts an meiner verändert php.ini aber jetzt funktioniert alles einwandfrei.
Ich bestätige, es löst das Problem. Ich habe es satt, dort meine Antwort zu bekommen: stackoverflow.com/questions/4948340/…. Aber ich habe es hier gefunden.
– Römisch
10. Februar 2011 um 17:04 Uhr
Funktioniert perfekt! Suche schon ewig danach. Es war der $some_name = session_name("some_name"); das hat es getan. Danke und Upvote.
– Bausatz
17. März 2011 um 12:19 Uhr
Hinzufügen session_name("domain"); war für mich auch die fehlende Zutat. Die Dokumentation auf php.net bezüglich dieser Sitzungseinstellungen fehlt. Es gibt Community-Beiträge auf php.net, die darauf hinweisen, dass session.name definiert werden muss, bevor Änderungen an session_set_cookie_params() angewendet werden können.
– David Caroll
3. Juli 2011 um 7:28 Uhr
ja. Bestätigt. schön, da drehte man sich ewig im kreis 😉
– Daithí
15. Januar 2012 um 20:46 Uhr
HINWEIS … musste meinen Browser schließen und neu starten, damit er auf dem Lebensserver funktioniert. Lassen Sie welche weg ini_set("session.cookie_domain", ".domain.com"); Dies führte dazu, dass bei jeder Aktualisierung eine neue Sitzungs-ID erstellt wurde.
– Daithí
15. Januar 2012 um 21:30 Uhr
zogm
Eine Sache, die auf mysteriöse Weise verhindern kann, dass Sitzungsdaten auf einer Subdomain gelesen werden, obwohl Cookies korrekt gesetzt sind .example.com ist der PHP-Suhosin-Patch. Sie können alles richtig konfiguriert haben, wie in den Beispielen in der Frage, und es kann einfach nicht funktionieren.
Deaktivieren Sie die folgenden Suhosin-Sitzungseinstellungen und Sie sind wieder im Geschäft:
suhosin.session.cryptua = Off
suhosin.session.cryptdocroot = Off
Georg Claghorn
Versuchen Sie es mit:
session.cookie_domain = "example.com"
Anstatt:
session.cookie_domain = ".example.com"
Beachten Sie den fehlenden Punkt am Anfang.
Seien Sie jedoch vorsichtig, da dies nicht von allen Browsern unterstützt wird.
Welche Browser werden nicht unterstützt?
– Gawpertron
16. Februar 2011 um 19:09 Uhr
welche Browserunterstützung hat das hier zu bieten? Dies ist eine serverseitige Aktion.
funktionierte nichtes sieht .localhost als oberste Ebene anstelle von .com/.local/… (vermute ich)
Terry Lin
Ich habe bestätigt. joreonDie Antwort von ist richtig. Ich kann nicht kommentieren, weil mein Ruf nicht ausreicht, also poste ich meinen Kommentar hier.
Definieren Sie die Konstante in einer Konfigurationsdatei. Wenn Sie es ändern möchten, müssen Sie nicht ganze Dateien ändern.
Der Sitzungsname darf nicht nur aus Ziffern bestehen, es muss mindestens ein Buchstabe vorhanden sein. Andernfalls wird jedes Mal eine neue Sitzungs-ID generiert.
Verwenden Sie den folgenden Code, um die Sitzung zu verwenden
Pfad für session.save_path kann für deinen Fall anders sein, aber es sollte das sein gleich auf jeder Domain/Subdomain. Es ist nicht immer standardmäßig wahr.
Sie müssen es auch in Ihrem Code aktivieren, siehe http://us2.php.net/manual/en/function.session-set-cookie-params.php
– Rückstand
30. Juni 2009 um 15:18 Uhr
Ich habe fast das gleiche Setup (ich habe die Session-Cookie-Domain mit einem Aufruf von “session_set_cookie_params” festgelegt) und es funktioniert gut.
– Milen A. Radev
30. Juni 2009 um 15:25 Uhr
Hier ist eine nette Funktion, die funktioniert stackoverflow.com/questions/2835486/…
– Boksiora
14. Juli 2013 um 9:25 Uhr