1

我知道默认的 PHP 会话存储机制是一个文件,通常在 tmp. session_id 携带在 cookie 中。

我也想将我的少量会话数据存储在 cookie 中。(就像 Rails 默认做的那样。)

问题:是否有一个 php 库可以为我处理这个问题,或者我是否需要使用session_set_save_handler等来滚动我自己的库?

补充:只有CodeIgniter 会话类可用吗?

4

2 回答 2

2

您需要问自己的是为什么要这样做。只要您提供会话 ID,您就可以访问会话本身中存在的任何信息。如果您更喜欢以其他方式进行操作,则必须推出自己的会话系统。

以下是与您的想法相反的几点:

  • Cookie 具有最大大小 (4kb)。CI cookie 溢出实际上很常见。
  • 文件服务器端的信息保证防篡改(或与您的服务器一样防篡改)。cookie 中的信息不是
  • 如果是“OMG DISK READ”让您感到害怕 - 您始终可以绑定redis为您的会话管理器。这实际上是微不足道的。
  • 最后,当您的代码被移植到其他地方时,您将拥有一个重要的 PITA

假设您仍然想这样做(您真的确定吗?),答案就是设置另一个 cookie。PHP 会话处理程序最好不要乱用,因为如果更改出错,有很大的风险会到处乱扔 500。第二块饼干是你最好的选择。

于 2013-05-28T17:45:16.130 回答
-1

尝试这个

$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );

$this->session->set_userdata($newdata);



$this->input->set_cookie($newdata);
于 2013-05-28T17:49:55.780 回答