2017-07-10 15 views
0

私のlocalhostはXAMPPです。 2つのプロジェクトは基本的に同じコード、少なくともログインモジュールです。プロジェクトはCodeigniterで構築されています。localhostでは、2つの異なるプロジェクトが同じセッションを共有します

私の問題は、たとえばProject Aにログインした場合、Project Bに自動的にログインしていることがわかりました。

2つのプロジェクトは同じデータベースを使用しませんが、ログインコードは同じです。ユーザーがページにアクセスすると、最初に変数$this->session->isLoggedInがチェックされます。そうであれば、ページをユーザーページにリダイレクトします。彼らは同じセッションIDを使用していることがわかります。これは、同じドメインを共有しているので、ローカルホスト上で共通の問題ですか、または私は間違いを犯しましたか?

+0

セッションを設定している間、このようなセッションを区別する必要があります。$ this-> session-> set_userdata( 'project_A_username'、 'usernamehere'); $ this-> session-> set_userdata( 'project_B_username'、 'usernamehere'); 。 PHPセッションはすべてのプロジェクトで共通です。だからあなたはこのようにdifferentaiteする必要があります – JYoThI

+0

@JYoThIあなたが言ったように、私はセッションを区別しない場合、私のlocalhostはすべて同じセッションを共有する必要がありますか?私はあなたを正しく理解していますか?もしそうなら、ライブ環境では同じドメインの下にないので、これは起こりません。 – SSD

+0

はい、ドメインが異なる場合は発生しません。@ SSD – JYoThI

答えて

1

はしばらくの間は、あなたがこの

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

$this->session->set_userdata('project_B_username', 'usernamehere');のようなあなたの識別のためのプロジェクト に基づいsessiondifferentiateする必要がsessionを設定します。

PHPセッションはすべてのプロジェクトで共通です。差別化する必要があります。

OPコメント:もしそうなら、これは同じドメインの下にないので、実際の環境では起こりませんか?

はい、これらのドメインは異なるドメインに存在します。

関連する問題