Austausch von session-Variablen in PHP zwischen subdomains
Möchte ich meine session-Variablen werden in PHP mit vielen sub-domains. Ich habe auch ein Beispiel :
- example.com
- subdomain1.example.com
Ich versuche, mit der gleichen session-Variablen zwischen den beiden Domänen. Ich habe bereits getestet, viele Funktionen in PHP, aber nichts funktioniert. Hier ist meine Art zu testen :
Auf dem example.com/page.php ich habe diesen test :
echo '<pre>';
var_dump(session_set_cookie_params(0, '/', '.example.com'));
session_start();
echo "Session ID : ".session_id()."\n";
$_SESSION['foo'] = 'bar';
print_r($_SESSION);
Und auf subdomain1.example.com/page.php ich habe einen ab :
echo '<pre>';
session_set_cookie_params(0, '/', '.example.com');
session_start();
echo "Session ID : ".session_id()."\n";
print_r($_SESSION);
Kann ich sehen, dass die session-id ist die gleiche zwischen den beiden Seiten, aber session-Variablen sind unmöglich zu Lesen in subdomain1.example.com/page.php
Getestet habe ich viele Funktionen, wie legen Sie einen Namen für die Sitzung, aber ohne weitere Ergebnisse.
Danke.
- Bitte akzeptieren Sie einige Antworten auf deine vorherigen Fragen, um Menschen zu motivieren, Ihre Frage zu beantworten 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur so kann ich mir vorstellen, dies zu tun wäre zum speichern der session-Daten in einem cookie, dann öffnen Sie das cookie, wenn der andere Domäne zugegriffen wird. Können Sie Lesen, wie Sie dies hier tun: http://www.depiction.net/tutorials/php/cookies-session-variables.php
Aus Neugier, warum willst du dies tun?
Wenn Sie vermeiden möchten, verwenden Sie eine cookie-basierte Lösung, und beide Domänen Zugriff auf die gleiche Datenbank zu sein, ich würde die Speicherung der session in der Datenbank anstelle des Dateisystems:
Hier ist ein Beispiel in den Kommentaren für die Sitzung an php.net: http://php.net/manual/en/book.session.php
Wenn das speichern in einem cookie ist nicht möglich, können Sie ein gemeinsames cache-layer. Dies kann eine Datenbank wie MySQL, oder sogar eine AHK (wenn es serviert wird, die von dem gleichen server). Sie können auch verwenden memcache. Memcache basierende Kurse sind schneller als die Verwendung einer Datenbank. Mehr Informationen auf der memcache session store finden Sie hier:
http://php.net/manual/en/memcached.sessions.php
Folgende code ist getestet und funktioniert, ohne die Anforderung für direkte cookie-manipulation (andere als die Sitzung selbst), oder etwas Komplexes wie Memcache/DB-storage.
Nur stellen Sie sicher, dass die
session_save_path
ist zugänglich von beiden Domänen.