遇到了 HTTPHTTPS 协议下 session 共享解决 cookie 失效的问题, 这里提供一个临时解决办法
实现原理: 把 session id 设置到本地的 cookie
如下:
代码如下:
- $currentSessionID = session_id();
- session_id($currentSessionID);
以下是实现代码, 分为 http 与 https 两部分
1,http 部分:
代码如下:
- <?php
- session_start();
- $currentSessionID = session_id();
- $_SESSION['testvariable'] = 'Session worked';
- $secureServerDomain = 'www.jb51.net';
- $securePagePath = '/safePages/securePage.php'
- echo '点这里跳转到 HTTPS 协议';
- ?>
2,HTTPS 部分
代码如下:
- <?php
- $currentSessionID = $_GET['session'];
- session_id($currentSessionID);
- session_start();
- if (!emptyempty($_SESSION['testvariable'])) {
- echo $_SESSION['testvariable'];
- } else {
- echo 'Session did not work.';
- }
- ?>
说明:
有点安全问题, session id 的传输是没加密的, 可以嗅探侦测到, 获取这个 session id 进而获取 session 数据
建议加密此 id
来源: https://www.php1.cn/detail/php-db8fb1d149.html