0

例如

App.1

session_start();

$_SESSION["用户名"] = " xyz ";

$_SESSION[" is_login "] = True;

''''''''''''''''''''''''''''''''''''''''''

App.2

session_start();

$_SESSION[" user_name "] = "abc";

$_SESSION[" is_login "] = false;

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

4

4 回答 4

2

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

于 2013-06-08T07:22:46.427 回答
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() 的评论 - 手册 - h​​ttp: //php.net/manual/en/function.session -name.php )

  • 您必须在每个 session_start() 之前调用 session_name() ,否则它不会返回错误。
  • 它是“昂贵的”(执行脚本的时间)
  • 如果您在 php.ini 中将 session.auto_start 设置为 true,则 Session_name() 函数将没有本质作用
  • 如果你想使用 session_set_cookie_params(),你必须首先使用 session_name()。即使您不这样做,PHP 也不会给您任何错误。
于 2013-06-08T06:52:10.287 回答
0

在调用 session_start 之前调用 session_name 函数,传入您的应用程序的标识符

例如

session_name("App1");
session_start();
于 2013-06-08T06:36:22.947 回答
0

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

于 2013-06-08T08:04:52.477 回答