首頁 >後端開發 >php教程 >如何跨子網域分享 PHP 會話?

如何跨子網域分享 PHP 會話?

Linda Hamilton
Linda Hamilton原創
2024-12-13 13:49:13474瀏覽

How to Share PHP Sessions Across Subdomains?

PHP 中的跨子網域會話共用

跨多個子網域管理使用者會話時,請確保無縫登入與資料持久性至關重要。在這種情況下,您需要允許子網域存取在主網域上建立的授權工作階段。

您已嘗試將 php.ini 中的 session.cookie_domain 設定為 .example.com 以啟用跨子網域 cookie分享。但是,您的程式碼似乎沒有讀取共享會話資料。

要解決此問題,請嘗試以下操作:

// 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);

透過新增 session_name('YOUR_SESSION_NAME');在設定 cookie 參數之前,請確保子網域使用相同的會話名稱。這允許他們存取和修改共享會話資料。將 YOUR_SESSION_NAME 替換為唯一識別碼。

以上是如何跨子網域分享 PHP 會話?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn