Udd*_*ers 0 php cookies codeigniter
我希望有人,可以提供有关Cookies和Codeigniter的一些信息,我已经阅读了这些用户指南,所以我对如何设置它们有了解,等等.我想知道的是我如何使用,例如,如果你看在BBC网站上,您可以拖放框,它会记住您放置它们的位置,而无需您注册或登录等,因此我认为它存储在cookie中.
在我的网站上,我有一个菜单系统,允许用户选择"他们的"页面上的功能,现在我不希望他们必须注册或登录,所以我想我可以以某种方式存储他们的内容在cookie中要求?这可能吗?目前,他们单击一个链接,并使用URL中的ID和数据库中的ID匹配从数据库中提取相关内容.我只保存所请求的每个ID吗?如果是这样怎么样?
谢谢
您使用CodeIgniter的事实并不重要,因为您可以使用您使用的任何平台轻松设置cookie信息.CodeIgniter只为cookie提供包装函数,使其更易于处理.如果你知道如何使用CI的cookie助手,那么你应该没有问题.
最可靠的解决方案是使用为该用户保存唯一ID的cookie.该唯一ID与包含用户设置的数据库记录匹配.通过仅保存cookie中的唯一ID,您可以避免在设置更改时读取和写入cookie.如果您向站点添加需要自己设置的新功能,则无需触摸cookie,只需将新设置值添加到数据库即可.此外,您不希望在cookie中公开设置信息,这可能允许某人编辑cookie的内容以尝试SQL注入或其他攻击.
您可以为您的网站创建多个Cookie,因此我会为唯一ID创建新的Cookie以匹配用户设置.当用户访问您的站点时,加载CI cookie帮助程序,然后使用CI的get_cookie('unique_cookie')帮助程序来查找cookie.Cookie名称"unique_cookie"就是您使用的cookie的名称,其中包含用户的唯一ID.
如果get_cookie()返回false,那么用户没有cookie,所以他可能是第一次访问,或者他删除了cookie.您必须使用set_cookie($ cookie_array)创建一个新cookie.set_cookie()方法将关联数组作为参数.该数组包含cookie的值,其中一个是'name',您将设置为'unique_cookie','value'将是一个唯一的id(使用CI String helper的random_string()方法创建一个唯一的id) .在设置cookie时,您还希望使用包含默认设置值的唯一ID创建db记录.
当用户在您的站点上时,创建一个会话对象(使用CI的会话库),该对象保留唯一ID,因此当用户在会话期间更改设置时,您可以将会话的唯一ID值与db记录匹配,以便您可以无需继续触摸cookie即可更新该记录.对于可能需要获取或设置设置的任何控制器操作,您可以使用会话工具来获取唯一ID.您只需在用户首次进入您的站点时触摸cookie,并且尚未创建会话对象.
| 归档时间: |
|
| 查看次数: |
3405 次 |
| 最近记录: |