【问题标题】:What is the use of setting sess_use_database to TRUE in codeigniter tank auth?在 codeigniter tank auth 中将 sess_use_database 设置为 TRUE 有什么用?
【发布时间】:2014-02-05 12:58:41
【问题描述】:
$config['sess_use_database']    = TRUE;

我在 tank auth 中遇到了这个问题。是否需要将会话数据保存在数据库中。我是新手。有人能告诉我为什么吗?如果我将它设置为 FALSE 会怎样。它会影响 Web 应用程序吗?

【问题讨论】:

    标签: php codeigniter session tankauth


    【解决方案1】:

    Session 类将每个用户的会话信息存储为 cookie 中的序列化(和可选加密)数据。

    Cookie 有一个limit of 4k

    通过设置$config['sess_use_database'] = TRUE;,您允许codeigniter 将“cookies”保存在数据库中,这样数据就可以满足应用程序的需要。

    您一直在询问它是否会影响网站...如果您没有自己创建应用程序,请不要更改它。

    如果您知道会话中的数据将大于 4k,请启用它,否则请不要使用此设置。

    【讨论】:

      【解决方案2】:

      在某些主机上使用会话可能会出现问题。为了对抗这个会话,数据被保存在数据库中。另一个原因是在扩展时在多个服务器之间共享会话。

      【讨论】:

      • 好的,如果我关闭它会影响我的 Web 应用程序吗?
      • 如果它是单个服务器上的小应用程序,那么关闭它可能会很好。我很好奇你为什么要这样做。存储在数据库中更有益。
      【解决方案3】:

      来自 CI 用户指南:

      $config['sess_use_database']    = TRUE;
      

      一旦启用,Session 类将在 DB 中存储会话数据。

      确保您在配置文件中也指定了表名:

      $config['sess_table_name'] = 'ci_sessions';
      

      CI Session 会将数据存储在 COOKIES 中。所以出于安全原因,您可以存储在数据库中。

      另一个原因,如果您正在开发电子商务网站,您会将产品存储在购物车中。因此,当用户登录另一个系统时,如果您将 session 存储在 table 中,他们的购物车将被保留。

      【讨论】:

      • 我知道它是用来将会话数据保存在数据库中的。但是为什么呢?为什么需要将会话数据保存在数据库中?如果我关闭它会影响Web应用程序吗?
      • 哦,好吧。这增加了我的知识
      • 我们有很多目的要存储在表中。这两点来自我的经验。
      猜你喜欢
      • 2011-11-06
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      相关资源
      最近更新 更多