Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter会话中的用户_数据用于什么?_Php_Codeigniter_Session_Session Variables - Fatal编程技术网

Php CodeIgniter会话中的用户_数据用于什么?

Php CodeIgniter会话中的用户_数据用于什么?,php,codeigniter,session,session-variables,Php,Codeigniter,Session,Session Variables,当我在CodeIgniter中运行var_dump($this->session->all_userdata())时打印 array (size=5) 'session_id' => string '3403084ad9f5e2582a8d9269ceb68fb7' (length=32) 'ip_address' => string '127.0.0.1' (length=9) 'user_agent' => string 'Mozilla/5.0 (compat

当我在CodeIgniter中运行
var_dump($this->session->all_userdata())时打印

array (size=5)
  'session_id' => string '3403084ad9f5e2582a8d9269ceb68fb7' (length=32)
  'ip_address' => string '127.0.0.1' (length=9)
  'user_agent' => string 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)' (length=64)
  'last_activity' => int 1365456079
  'user_data' => string '' (length=0)
由于这些值是由CI自动填充的,我想知道我是否可以/应该用例如“user\u data”=>username覆盖user\u数据索引


如果CI不断更新此索引,则此操作将不起作用。然后我必须用自己的索引存储会话数据。任何有CI经验的人都知道会话数组中的固定索引用于什么。没有相关文档。

用户数据字段用于所有额外的会话参数

一旦您想要放置一个会话值,您就可以使用它来执行以下操作:

$this->session->set_userdata('x','y');
然后将
userdata('x')
y
值存储在会话的
user\u data
数组键中

因此,您的
user\u数据
key in session now将如下所示(或类似的内容:D):

因此,可以肯定的是,您将覆盖用户_数据的值,只需设置一些您需要/想要的会话值

关于文档中的user_数据字段的更多信息似乎是CI用于存储会话参数的db字段:

在system7libraries/session.php中,没有大的
user\u数据痕迹
,只针对以下几行:

// Run the update query
        $this->CI->db->where('session_id', $this->userdata['session_id']);
        $this->CI->db->update($this->sess_table_name, array('last_activity' => $this->userdata['last_activity'], 'user_data' => $custom_userdata));

似乎正在更新名为
user\u data
的数据库字段,该字段(似乎)与会话数据库相关,而不是与我相关。我得到'session_id'=>string'cc8df0989ae26188260d184f6e40ea7e'(长度=32)'ip_address'=>string'127.0.0.0.1'(长度=9)'user_agent'=>string'Mozilla/5.0(windowsnt 6.1)AppleWebKit/537.31(KHTML,像Gecko)Chrome/26.0.1410.43 Safari/537.31'(长度=101)'last_activity'=>int 5457537'user_data'=>string(长度=0)'x'=>string'y'(长度=1)@VidarVestnes可能这是一个CI,它需要保持原样,我需要在我自己的秒上测试它,我告诉你;)@VidarVestnes很奇怪,实际上我没有用户数据索引,您是否尝试过破坏会话并重新创建会话?这不是您自己的会话参数,对吗DNope,如您在systems文件夹下的Session.php中所见。在靠近第321行的地方,它使用了一个索引为user_data的数组,并将其保存到db和cookie中。。。但我明白你的意思:-)CI总是存储/创建这个index@VidarVestnes这似乎很正常,但事实是它设置为字符串anywy留给我一个dubt,文档将用户数据显示为一个db字段(存储在会话中)。无论如何,您留给我一个dubt大多数人都不需要直接修改此列。您应该使用添加或删除会话数据。
// Run the update query
        $this->CI->db->where('session_id', $this->userdata['session_id']);
        $this->CI->db->update($this->sess_table_name, array('last_activity' => $this->userdata['last_activity'], 'user_data' => $custom_userdata));