2010-08-03 66 views
1

我有一个在线服务工具,用户注册并使用它。如何一次为单个页面保留两个会话?

我已经为此服务管理控制面板。有时,当用户告诉我们有关数据和可用性的一些奇怪的事情,我们需要检查他们,如果他们登录...

所以我决定在管理面板中有一个页面作为“登录为xx用户” xx是我们服务的用户..

我通过简单地为特定用户帐户设置会话变量并绕过登录选项来完成它。当我完成测试后,我注销并再次以管理员身份登录以执行其他活动。 。

但现在我需要不注销,然后登录,每次我登录为不同的用户后管理员..

我是否可以为单个页面/服务同时设置两个同时进行的会话?

(即)在浏览器的一个选项卡中,我担任管理员,在其他选项卡中,我将充当用户?

任何想法..

我记得“已经利用他们看到PHPBB ......

+0

作为管理员,我也有一个帐户,就像普通用户..除了我有一个管理面板,我可以登录和操作。因此,管理员也需要为普通用户设置的会话变量。 – Vijay 2010-08-03 11:54:05

回答

1

会议是有点儿全球可用的阵列,可以单独前端和后端会话是这样的:

<?php 

    $_SESSION['frontend']['logged_id'] = true; 
    $_SESSION['backend']['logged_id'] = false; 

?> 

你的脚本可以帮助我给你更详细的示例代码。

更新

  1. 添加前缀到您设定的会话。就像这样:$_SESSION['my_CID'] = $cid;
  2. 你必须深入到后端/管理员密码并找到注销行为发生。
  3. 这个动作可以杀死整个会话是这样的:session_destroy()unset($_SESSION);
  4. 使用下面的代码不会杀死前缀会话。

下面的代码:

<?php 
    foreach ($_SESSION as $key => $value) 
    { 
     if (substr($key, 0, 3) == 'my_') 
     { 
      continue; 
     } 
     unset($_SESSION[$key]); 
    } 
?> 
+0

用户登录后,会根据用户帐户详细信息设置很多会话变量。这些会话数据在整个服务中使用。我的示例会话变量将如下所示。$ _ SESSION ['CID'] =“$ cid”; \t \t \t $ _SESSION ['CURRENCY'] =“$ cur”; \t \t \t \t \t \t $ _SESSION ['HRS'] =“passed”; $ _SESSION ['EMA'] =“$ email”; 甚至为管理员设置这些变量 – Vijay 2010-08-03 11:35:49

+0

请参阅我的更新答案。 – Otar 2010-08-03 11:58:31

0

你所与推理求是杂牌,基本上是这样。

你需要的是一个强大的解决方案,并为我提出这样一个方案:保持会话变量:

  • real_user_name
  • real_login_time
  • virtual_user_name
  • virtual_login_time

所以当管理员想要以你设定的最后两个人的身份登录时。你的安全通常应该检查最后两个。访问管理页面应该基于前两个。

0

我不知道这是否是对您的问题有用的解决方案,但是如果您使用firefox,则可以使用两个不同的配置文件启动浏览器两次。您不会将应用程序放在同一个标​​签中,但至少您拥有使用不同会话的相同浏览器。如果您复制旧的配置文件,您应该也可以拥有相同的历史记录和插件。

如果您决定这样做,您将不得不使用“-P -no-remote”作为firefox可执行文件的附加参数。

0

我想可能有两个解决方案:

  • 首先,如果你有管理和服务,因为它们会管理每一个的会议上两个不同的应用。如果您的服务不是以这种方式设计的,或者如果更改将具有很高的成本,那么它不是一个很好的选择。

  • 第二和首选,你可以在会话对象中设置两个对象,一个用于管理员,另一个用于服务。

0

你不能有两个单独的会话,但你可以在用户会话中添加一些额外的变量,告诉你以admin身份登录。

0

几个想法:

  • 使用两种不同的浏览器
  • 从两个不同的(虚拟)机连接
  • 使用类似CookiePie允许每个标签
  • 不同的Cookie连接一个实例通过代理
  • 如果可以的话,通过两个不同的域托管相同的Web应用程序,并为每个会话使用一个
  • 使用主机文件以提供额外的域名
  • 如果会话是通过URL来代替饼干传播,那么这自然会工作,但它有各种讨厌的可用性和安全性的后果
0

由于在之前的文章中提到,你可以使用Cookpie的Firefox插件,在每个浏览器选项卡中有两个独立的身份标识 - 但是这个扩展名不适用于firefox 4 - (他们说他们正在开发它......)一个叫做Multifox的更新的类似扩展,可以在Firefox 4中工作。你可以试试。

相关问题