【问题标题】:Setting Cakephp sessions to database将 Cakephp 会话设置为数据库
【发布时间】:2012-12-31 14:32:09
【问题描述】:

我刚刚将我的应用程序从 cakephp1.3 迁移到 cakephp2.0。我在配置数据库会话时遇到问题。

我在 core.php 中更改了会话配置

Configure::write('Session', array(
    'defaults' => 'database',
        'handler' => array(
        'model' => 'Session'
        )
));

我有一个 sessions 的 db 表。有什么我错过的吗。当我在登录时编写会话并重定向时,我可以很好地读取会话变量。但是在页面刷新时,会话被删除。

【问题讨论】:

  • @cryptic 它还没有解决。我还在努力。刷新页面时我丢失了会话对象。
  • 您能否验证您设置的会话值实际上是保存在数据库中的吗?
  • 我删除了数据库中所有存储的会话并尝试登录创建了新记录并且会话 ID 存在。但是当我刷新时,我会丢失会话对象中的信息

标签: php session cakephp cakephp-2.0 session-variables


【解决方案1】:

据我了解,您正在尝试使用 Cake 的默认数据库会话处理,并且您没有使用自定义处理程序模型,如果是这样的话:

为 Cake 设置这些配置选项以使用 app/config/core.php 中的数据库会话:

Configure::write('Session', array(
    'defaults' => 'database'
));

确保为将用于创建正确表的数据库运行此命令,因为 Cake 会将会话存储在那里:

CREATE TABLE cake_sessions (
  id varchar(255) NOT NULL default '',
  data text,
  expires int(11) default NULL,
  PRIMARY KEY  (id)
);

【讨论】:

  • 谢谢!我在 Cake 2.x 食谱中的任何地方都找不到对此的参考。我确实找到了这个github.com/cakephp/docs/pull/612,所以现在看起来有人在关注它。我还能够在 DatabaseSession.php 中看到这些字段,但我永远不会想到“数据”必须是“文本”类型而不是“blob”类型。
猜你喜欢
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
相关资源
最近更新 更多