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中文网其他相关文章!