我正在开发具有笨会话一个电子商务网站的以下内容:
- 管理员登录
- 购物车
- 用户登录
现在我无法找出一个机制,用于管理与不同的数据集这三个会议。
我知道它可以与会话名称()在PHP核心来实现。 但随着笨我有点困惑。 用Google搜索了很多,但无法找到一个合适的回答。
我想在笨多个会话有清醒的认识,使其不产生在未来的任何混乱。 补习的任何链接将是巨大的。
我正在开发具有笨会话一个电子商务网站的以下内容:
现在我无法找出一个机制,用于管理与不同的数据集这三个会议。
我知道它可以与会话名称()在PHP核心来实现。 但随着笨我有点困惑。 用Google搜索了很多,但无法找到一个合适的回答。
我想在笨多个会话有清醒的认识,使其不产生在未来的任何混乱。 补习的任何链接将是巨大的。
$this->session->set_data('admin',$array_of_admin_data);
$this->session->set_data('user',$array_of_user_data);
$this->session->set_data('cart',$array_of_cart_data);
然后检索每个SEESION数据? 运用
$this->session->userdata('admin');
为什么难道不这项工作?
CodeIgniter的会议是从本地的PHP会话完全不同,它是存储在数据库中尤其是在非常安全的。 你可以用CodeIgniter的会议工作和Native PHP会议,他们将很好地工作在一起,因为PHP会看到不同的变量。 如果你想检查一个笨会话值使用的存在
if(isset($this->session->userdata['course_id']))
{
$this->data['course_id'] = $this->session->userdata('course_id');
}
虽然本机PHP会是什么样子
if(isset($_SESSION['course_id']))
{
$this->data['course_id'] = $_SESSION['course_id'];
}
我也在开发一个电子商务系统,并有同样的问题。 我不喜欢管理存储在数据库中的序列化数据,尤其不适合推车/篮子的所有数据,因为这使得它很难查询数据库,我只是觉得它有点凌乱。
我是很新的CI和计算器,但我的想法是建立ci_session表,因为它是写在文档 ,从而保持CI会话的一致性和安全性。 然后,我只是一个参考ID添加到会话varialbe你要管理每个会话的数据。 例如,对于购物车:
$unique_cart_id = random_string('unique');
$this->session->set_userdata('cart_id', $unique_cart_id);
现在我引用我的cart_id在一个单独的“菜篮子” - 表的所有数据。 例如:
CREATE TABLE basket (
id int(11) NOT NULL auto_increment,
cart_id varchar(32) default NULL,
timestamp timestamp NULL default NULL,
price float(10,2) default NULL,
title varchar(100) default NULL,
serialized_data text,
product_id int(11) default NULL,
PRIMARY KEY (id)
)
现在每次有人想要的东西添加到购物篮我从会话变量中的cart_id:
$cart_id = $this->session->userdata('cart_id');
并存储$cart_id
与其他任何车数据一起在我的“菜篮子” -表,写一点点插入脚本。
$data = array(
'cart_id' => $cart_id,
'title' => $product_title,
'product_id' => $product_id,
'price' => $price,
'serialized_data' => serialize(array('what ever you need else'))
);
$this->db->insert('basket', $data);
现在,如果有人想要观赏篮我只是取回$cart_id
再次从会话变量和查询它的cart_id匹配的数据库。
$this->db->query("SELECT * FROM basket WHERE cart_id = ?", array($cart_id));
并使用了你的其他会话数据,管理员和用户登录的原理相同。 因此,我只保留有每个用户一个会话Cookie,但我可以在数据库中分别管理每个类型的会话数据。
这是想法只是一个粗略的分类。 我希望它帮助。
随着userdata()
方法,你可以检索你创建会话期间保存的字段。
例如,您通过$array_of_admin_data array
,它拥有像一些信息userType
。 如果你想检索此值,则必须调用userdata()
是这样的:
$this->session->userdata('userType');
希望这有助于。