PHP:会话变量被覆盖


PHP: session variable is getting overwritten

我正在创建一个电子商务应用程序,通过使用该应用程序,用户可以创建自己的电子商务商店,如bigcommerce。因此,我对每个存储使用$_SESSION['store_id'],并在整个应用程序中使用该变量来控制存储。

现在,问题是用户无法在单个浏览器上访问多个存储,因为$_SESSION['store_id']正在被覆盖。我知道PHP会话变量和其他数组一样,所以如果键相同,它将覆盖相应键的值。但是,我该如何解决这个问题?我应该创建动态PHP会话变量吗?

就你所知,我的应用程序几乎已经使用Yii框架完成了,所以很难硬编码。

您可以尝试通过密钥存储存储

$_SESSION['stores'] = array(
   'store_id' => 'session data'
);

您可以通过以下方式使用会话中的存储列表

         session_start()
          if( ! isset( $_SESSION['list_of_store']))
               {
             $_SESSION['list_of_store']=array('0'=>$store_id)
               }
          else
            {
             $stores=$_SESSION['list_of_store'];
             $stores[]=$store_id;
            $_SESSION['list_of_store']=$stores;
             }

您可以尝试实现某种"keychain"按钮,它包括特定人员作为管理员的所有商店。如果一个人想管理另一个商店,他/她可以点击钥匙扣按钮并选择管理哪个商店。