【问题标题】:Losing session after page load after move to SSL移动到 SSL 后页面加载后丢失会话
【发布时间】:2013-02-16 10:23:05
【问题描述】:

更新:

该网站现在可在所有浏览器上运行 Chrome。我认为这很奇怪——这一切都是在服务器切换到 SSL 后出现的。

作为建议,我已将其放入应用程序中:

ini_set('session.use_trans_sid', true);
ini_set('session.use_cookies', true);
ini_set('session.use_only_cookies', true);

$https = false;

if(isset($_SERVER['HTTPS']) and $_SERVER['HTTPS'] != 'off') {
    $https = true;
}

$dirname = rtrim(dirname($_SERVER['PHP_SELF']), '/') . '/';

session_name('money');
session_set_cookie_params(0, '/', $_SERVER['HTTP'], $https, true);
session_start();

但我仍然无法设置会话 - 该应用程序基于 MVC,因此根据 URL 中加载的页面需要控制器。

通过所需/包含的文件传递会话是否存在问题?

【问题讨论】:

  • 不确定这是否是骗局,但请检查Session lost when switching from HTTP to HTTPS in PHP
  • 不完全不同 - 我的问题是停留在 HTTPS 页面到页面时
  • 添加赏金后,您需要进一步说明您的情况。如果您想要准确的答案,请对您的问题进行更详细的解释,并尽可能向我们展示一些代码。
  • 更新 - 还有更多的问题吗?
  • 为什么不在 ssl 上设置登录模块,这样没人可以窥探?

标签: php apache ssl


【解决方案1】:

与 chrome 请求的 Favicon.ico 有关 - 我永远猜不到。

非常感谢所有提供帮助的人!

【讨论】:

  • 这怎么可能?你是如何解决问题的?不过,为自我解决 +1。
  • Chrome 只是在 SSL 上不断尝试在服务器上查找某些文件(favicon 和样式表),如果找不到它们,它会阻止会话......非常奇怪。通过大量搜索发现,其中一个关系是网站图标,试一试!
【解决方案2】:

HTTP 会话 ID 未传递给 HTTPS 会话,当您在同一服务器上的 HTTPHTTPS 服务之间切换时,。您可以通过将会话 ID 从 HTTP 传递到 HTTPS 来设置它。

您可以管理 HTTP 到 HTTPS 或 HTTPS 到 HTTP 之间的会话:

  1. 使用 GET 在页面之间传输会话 ID
  2. POST 会话 ID
  3. 使用文件保存会话
  4. 使用 Cookie 进行会话
  5. 使用数据库保存会话

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-03
    • 2020-12-14
    • 2014-07-20
    • 1970-01-01
    • 2019-05-16
    • 2018-08-22
    • 2014-08-16
    • 2017-09-11
    相关资源
    最近更新 更多