如何为每个应用程序提供不同的会话?

时间:2013-06-08 06:27:57

标签: php session web-applications session-cookies login-script

例如

App.1

在session_start();

$ _ SESSION [“ user_name ”] =“xyz”;

$ _ SESSION [“ is_login ”] = True;

'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''”

App.2

在session_start();

$ _ SESSION [“ user_name ”] =“abc”;

$ _ SESSION [“ is_login ”] = false;

如何同时为不同的应用程序使用上述同一会话相同的会话?

4 个答案:

答案 0 :(得分:2)

有不同的会话名称,这样会很好。

答案 1 :(得分:1)

我会这样做:

$_SESSSION['current_app'] = 'app1';

App.1

session_start();
$_SESSION['app1']["user_name"] = "xyz";
$_SESSION['app1']["is_login"] = True;

'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''”

App.2

session_start();    
$_SESSION['app2']["user_name"] = "abc";
$_SESSION['app2']["is_login"] = False;

要检索当前会话:

$current_app = $_SESSSION['current_app'];
$user_name = $_SESSION[$current_app]["user_name"]
$is_login = $_SESSION[$current_app]["is_login"]

当然,你可以像Orangepill所说的那样使用session_name(),但是你必须考虑一些事情: (基于读取session_name() - manual - http://php.net/manual/en/function.session-name.php

中的注释
  • 您必须在每个session_start()之前调用session_name(),否则它不会返回错误。
  • 这是“昂贵的”(执行脚本的时间)
  • 如果设置,Session_name()函数将没有必要的效果 php.ini
  • 中的session.auto_start为true
  • 如果要使用,必须先使用session_name() session_set_cookie_params()。即使PHP,PHP也不会给你任何错误 你没有。

答案 2 :(得分:0)

调用session_name函数,在调用session_start

之前传入应用程序的标识符

例如

session_name("App1");
session_start();

答案 3 :(得分:0)

您可以在单个应用程序中使用不同的会话。为此,您需要为不同的会话设置不同的session_cookie_path。