PHP会话:隔离子目录登录系统

时间:2014-06-12 09:02:57

标签: php session subdirectory

我有一个基于php的软件,它使用带有php会话的登录系统。我需要以这种方式在同一域的子目录中复制这个php软件:

  • /根/ phpsoftware1
  • /根/ phpsoftware1 / phpsoftware2

问题是,如果我登录php软件1然后尝试访问php软件2,系统会在没有htere时识别有效的会话。

是否可以隔离这两个目录,以便对软件1有效的会话对软件2无效,反之亦然?

2 个答案:

答案 0 :(得分:3)

使用session_name($somename)设置两个不同的会话名称。这需要在两个地方session_start()session_register()之前调用,并设置客户端cookie中使用的会话名称(否则默认为PHPSESSID。)

答案 1 :(得分:0)

您无法在一台服务器上为同一客户端设置两个不同的会话。 PHP会话存储在每个客户端的服务器上(浏览器或发出请求的任何应用程序)(参见:where does session save?)。

要达到您的要求,您可以采用Hanky웃Panky的方法(在您的问题的评论中提到),或者在达到/root/phpsoftware/phpsoftware2的入口点后,unset()您的会话密钥,所以可以创建一个新的(注意这也会导致/root/phpsoftware1的会话被杀掉,所以我宁愿采取Hanky웃Panky的方法)

希望它有所帮助。 Lemme知道你是否需要更多细化。