【问题标题】:On localhost, two different projects share the same session在 localhost 上,两个不同的项目共享同一个会话
【发布时间】:2017-07-10 03:50:31
【问题描述】:

我的本​​地主机是 XAMPP。这两个项目的代码基本相同,至少登录模块是一样的。这些项目是使用 Codeigniter 构建的。

我的问题是,例如,如果我登录了项目 A,然后我发现我也自动登录了项目 B。

这两个项目没有使用同一个数据库,但是它们的登录代码是一样的。当用户访问页面时,我会先检查变量$this->session->isLoggedIn,如果是,我会将页面重定向到用户页面。我确实发现他们使用相同的会话 ID。这是本地主机上的常见问题,因为它们共享同一个域,还是我犯了一个错误?

【问题讨论】:

  • 在设置会话时,您需要像这样区分会话 $this->session->set_userdata('project_A_username', 'usernamehere');和 $this->session->set_userdata('project_B_username', 'usernamehere'); . php 会话对于您的所有项目都是通用的。所以你必须像这样区分
  • @JYoThI 正如你所说,如果我不区分会话,我所有的本地主机都应该共享同一个会话?我对你的理解正确吗?如果是这样,在直播环境中就不会发生这种情况,因为它们不在同一个域下?
  • 是的,如果它们是不同的域,则不会发生。@SSD

标签: php codeigniter


【解决方案1】:

同时设置session 你需要differentiate session 基于项目 像这样供你识别

$this->session->set_userdata('project_A_username', 'usernamehere');

$this->session->set_userdata('project_B_username', 'usernamehere');

php 会话对于您的所有项目都是通用的。所以你必须区分。

OP cmets : 如果是这样,这在live环境中不会发生,因为它们不在同一个域下?

是的,这不会发生。因为它们在不同的域中。

【讨论】:

    【解决方案2】:

    在两个项目上运行 $ php artisan config:cache

    这通常发生在 Windows 上的 apache 上

    这里解释https://github.com/laravel/framework/issues/19454

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 2018-07-31
      • 2013-07-07
      • 2020-06-08
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多