使用cookie和会话的“收藏夹”功能(PHP& CodeIgniter)

时间:2011-07-14 00:37:35

标签: php session codeigniter cookies

我正在尝试为我的网站实现“收藏夹”功能,我想知道如何存储这些数据。如果可能的话,我想做的就是让用户最喜欢的东西并将其存储在数据库中 - 这样我就可以使用这些数据来个性化搜索结果。

我也试图让它在非登录状态下的收藏夹与登录状态之间平滑过渡(允许用户匿名保存收藏夹但是如果登录转移/要求将这些转移到他的帐户)

我如何能够长时间存储这些数据?我目前正在使用数据库加密会话,我正在考虑延长会话时间或将其设置为不过期。这可能会导致我遇到一些安全问题吗?

我很感激帮助,

干杯。

2 个答案:

答案 0 :(得分:1)

从匿名会话中创建实际用户。将它们保留在没有登录凭据的数据库中,并将收藏夹或您存储的任何其他内容与其用户ID相关联。如果他们在清除cookie之前注册,您只需将他们的登录/配置文件添加到现有用户ID中,并且他们创建的所有收藏夹已经在正确的位置。登录和退出用户的一个系统,而不是两个。

答案 1 :(得分:1)

好吧,如果我理解,你想要的是注册用户可以将“某事”设置为收藏,因为这是一个M:N关系(严格来说从数据库的角度来看),我建议一个表存储这些关系,即假设你有一个用户和一个主题表,SQL就像这样:

create table favorite(user_id integer not null references user, topic_id integer not null references topic);

至少这是大多数数据库书籍会告诉你的事情。如果你没有用户表(我想你有一个用于标记为收藏的“东西”),你只需存储你在他/她登录系统时分配给用户的id。希望得到帮助。