限制PHP会话变量

时间:2016-04-12 19:22:01

标签: php session

我正在使用我的localhost,我有两个应用程序在那里运行。

让我们说网址是:

  1. 本地主机/应用/ APP1 /
  2. 本地主机/应用/ APP2 /
  3. 每个应用程序都有自己的登录模块,该模块使用基于PHP的会话来限制/允许用户进入应用程序。会话变量的名称相同,即uid。我使用它的方式是:

    <?php 
    session_start();
    if(!isset($_SESSION["uid"]))
        header('location:login/index.php');
    ?>
    

    但app1的会话变量正在app2中运行并且可以在app2中访问,我不想要。如何限制在app1中创建的会话变量的可访问性,以便它不会干扰其他会话变量。

    我读了这个How to restrict a session to a directory only in PHP?,但这不符合我的情况,因为它只适用于一个目录。

1 个答案:

答案 0 :(得分:1)

使用options数组调用session_start()时为会话使用不同的名称(更多信息:http://php.net/manual/en/session.configuration.php),例如:

// App 1
session_start(['name' => 'Session1']);

// App 2
session_start(['name' => 'Session2']);

这导致不同的会话cookie名称,最后是完全分离的会话。