Zulassen, dass PHP-Sitzungen zu Subdomains übertragen werden
Ich benutze php-sessions (cookies, außer für session-id-Cookies) für alle Benutzer-Daten, und wenn ein Benutzer auf Ihr Profil user.mydomain.com Sie sind sofort "abgemeldet" bis dann entfernen Sie die subdomain.
Gibt es eine Möglichkeit zu akzeptieren sessions von allen domains, solange es *.mydomain.com
Kommentar zu dem Problem - Öffnen
Erste,
ini_set('session.cookie_domain', '.example.com')
, dann session_start()
oder Session::start()
von github.com/delight-im/PHP-Cookie InformationsquelleAutor der Frage Anthony | 2009-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind 4 Optionen.
Platzieren Sie diesen in Ihre php.ini:
Oder in Ihrem .htaccess:
Oder so das erste, was in Ihrem Skript:
Oder in der php-fpm-pool-Konfiguration für Ihre Website:
InformationsquelleAutor der Antwort CTT
Sicherheit verdammt sein, wenn Sie so frustriert mit unvollständigen oder schlecht Antworten, wie ich bin, das ist dein Erlöser. Es funktioniert einfach.
InformationsquelleAutor der Antwort sucitivel
ändern Sie den Namen der session an der Spitze der core-Funktionen-Datei
wie
dann verwenden Sie den folgenden code in die php-Seite
schließlich ändern Sie die Standard-Sitzung, Namen der subdomain und entfernen Sie die Standard-cookie subdomain - Funktionen der core-Datei
wie:
wenn Sie weiterhin mit dem cookie-Namen wie PHPSESSID ,entfernen Sie einfach alle Funktionen, die mit
dann überprüfen Sie Ihre browser vorhandenen cookies, entfernen Sie einfach alle cookies von der domain und der subdomain, und wiederholen Sie den Vorgang.
InformationsquelleAutor der Antwort karthikeyan ganesan
Ich weiß, das ist ziemlich alt - aber weiter ausbauen @CTT Vorschlag - ich brauchte, um fügen Sie eine php.ini-Datei in jedem Unterverzeichnis (das ausführen von php-code und erfordert die Sitzung) meine subdomain mit dem folgenden text:
Ich hoffe, das hilft (es hat mich Alter, um dies herauszufinden).
InformationsquelleAutor der Antwort joeldixon66
Einer anderen option, die für mich gearbeitet: das ist zu zwingen, die Namen der Sitzung:
InformationsquelleAutor der Antwort Laurent Duvergé
ja.
ini_set
arbeitet. aber denken Sie daran, alles zu zerstören, caches und cookies des browser zu sehen, es funktioniert.in Ihrem
xxx.example.com
undyyy.example.com
Ihre php-Dateien sollte wie folgt beginnen.InformationsquelleAutor der Antwort Wikum Ekanayake
Ich hatte gerade dieses problem und es stellt sich heraus, ich war mit verschiedenen php.ini-Dateien für zwei verschiedene sub-domains. Diese ini angegebenen Dateien unterschiedliche Sitzung.save_path Variablen. Aus offensichtlichen Gründen muss dies die gleiche für alle sub-domains teilen müssen-Sitzungen.
InformationsquelleAutor der Antwort Mike
Versuchen Sie Dies:
protokolliert den Benutzer. Wenn Benutzer das wechseln zu anderen subdomain geschickt, die session-id in der URL wie diese
user.mydomain.com/?id=$sessionId
Nun bekommt der Benutzer alle session-Werte und eingeloggt bleiben.
InformationsquelleAutor der Antwort abrar
Dies ist eine gute Lösung, aber Sie können nicht in allen Situationen. Für die Beispiele wird es nicht funktionieren, wenn Sie sich nicht darauf verlassen kann, auf nicht-session-cookies.
Diese tatsächlich arbeiten MÜSSEN, wenn Sie es richtig zu verwenden.
Beispielsweise die Sie brauchen, um es vor
session_start()
und auch in alle Dateien, rufen Siesession_start()
InformationsquelleAutor der Antwort user1966103