Heim >Backend-Entwicklung >PHP-Tutorial >Wie teile ich PHP-Sitzungen über Subdomains hinweg?

Wie teile ich PHP-Sitzungen über Subdomains hinweg?

Linda Hamilton
Linda HamiltonOriginal
2024-12-13 13:49:13473Durchsuche

How to Share PHP Sessions Across Subdomains?

Subdomänenübergreifende Sitzungsfreigabe in PHP

Bei der Verwaltung von Benutzersitzungen über mehrere Subdomänen hinweg ist die Gewährleistung einer nahtlosen Anmeldung und Datenpersistenz von entscheidender Bedeutung. In diesem Szenario müssen Sie Subdomains erlauben, auf die autorisierten Sitzungen zuzugreifen, die auf der primären Domain erstellt wurden.

Sie haben versucht, die session.cookie_domain in Ihrer php.ini auf .example.com zu setzen, um subdomainübergreifende Cookies zu aktivieren Teilen. Ihr Code scheint jedoch die freigegebenen Sitzungsdaten nicht zu lesen.

Um dieses Problem zu beheben, versuchen Sie Folgendes:

// sub1.example.com  
session_name('YOUR_SESSION_NAME'); // Add a unique name, e.g., 'my_session'
session_set_cookie_params(0, '/', '.example.com');
session_start();
print session_id() . "<br>";
$_SESSION['Registered'] = 1;
echo '<a href="http://auth.example.com/test.php">Change Sites</a>';

// auth.example.com
session_name('YOUR_SESSION_NAME'); // Match the name from sub1.example.com
session_set_cookie_params(0, '/', '.example.com');
session_start();
print session_id() . "<br>";
$_SESSION['Checked'] = 1;
print_r($_SESSION);

Durch Hinzufügen von session_name('YOUR_SESSION_NAME'); Bevor Sie die Cookie-Parameter festlegen, stellen Sie sicher, dass die Subdomains denselben Sitzungsnamen verwenden. Dadurch können sie auf die freigegebenen Sitzungsdaten zugreifen und diese ändern. Ersetzen Sie YOUR_SESSION_NAME durch eine eindeutige Kennung.

Das obige ist der detaillierte Inhalt vonWie teile ich PHP-Sitzungen über Subdomains hinweg?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn