我正在创建一个电子商务应用程序,通过使用该应用程序,用户可以创建自己的电子商务商店,如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"按钮,它包括特定人员作为管理员的所有商店。如果一个人想管理另一个商店,他/她可以点击钥匙扣按钮并选择管理哪个商店。