您好我有一个可以有多个site_key
的用户。
现在当用户登录时,我从数据库中获取单个密钥并设置会话变量site
。
然后我有一个下拉菜单,我向他展示了他的site_keys
。当他从下拉列表中选择一个密钥并提交该密钥时,会话变量将使用他在POST
中给出的密钥进行更新。
我使用此代码:
if(isset($_POST['site-list']))
{
$this->session->unset_userdata('site');
$site_key =$_POST['site-list'];
$this->session->set_userdata('site', $site_key);
}
else
{
$id = $this->session->userdata('id');
$this->db->select('*');
$this->db->where('tenant_id',$id);
$this->db->from('sites');
$query = $this->db->get();
$result = $query->row();
$site= $result->site_key;
$this->session->set_userdata('site', $site);
}
现在我的应用程序视图取决于该会话变量。因此,我根据会话中设置的站点密钥选择要显示的数据。
当我导航到其他页面时,我的逻辑失败了。每次 else 都会被执行。
我想做类似的事情
用户在数据库中登录密钥后,将在会话中设置。
现在,当他从下拉列表中选择一个键时,只有我想要更新会话。
我该怎么办?
答案 0 :(得分:1)
检查以下代码
if (isset($_POST['site-list'])) {
$this->session->unset_userdata('site');
$site_key = $_POST['site-list'];
$this->session->set_userdata('site', $site_key);
} else {
if ($this->session->userdata('site') != '') {
$id = $this->session->userdata('id');
$this->db->select('*');
$this->db->where('tenant_id', $id);
$this->db->from('sites');
$query = $this->db->get();
$result = $query->row();
$site = $result->site_key;
$this->session->set_userdata('site', $site);
}
}