我需要一个first_name
之类的单一数据才能使用ci_session
保存到另一个字段。我该如何实现?
这里$session_data
将保存到ci_session
。我需要将其中的特定数据传递到日志字段。
__ ci_last_regenerate | i:1558420176; logged_in | b:1; profile | O:8:“ stdClass”:18:{s:2:“ id”; s:1:“ 1”; s:5:“电子邮件“; s:17:” teacher@email.com“; s:7:” role_id“; s:1:” 2“; s:19:” tekteach_login_flag“; s:1:” 0“; s:15: “ date_registered”; s:19:“ 0000-00-00 00:00:00”; s:7:“已删除”; s:1:“ 0”; s:10:“名字”; s:4:“ omar“; s:9:”姓氏“; s:4:” isip“; s:11:”中间名“; s:7:”切斯特“; s:6:”性别“; s:4:”男性“ ; s:8:“生日”; s:10:“ 2019-05-10”; s:6:“状态”; s:6:“有效”; s:12:“成绩课程”; s:0:“ “; s:10:” created_on“; N; s:10:” created_by“; s:1:” 0“; s:11:” modified_on“; N; s:11:” modified_by“; s:1: “ 0”; s:10:“ deleted_by”; s:1:“ 0”;}
if ($this->_row_exists === FALSE)
{
$insert_data = array(
'id' => $session_id,
'ip_address' => $_SERVER['REMOTE_ADDR'],
'timestamp' => time(),
'data' => ($this->_platform === 'postgre' ? base64_encode($session_data) : $session_data),
'log' => 1 //my own field
);
答案 0 :(得分:0)
将会话项目“ first_name”添加到$insert_data['log']
非常简单。该答案假设您使用的是CodeIgniter版本> 3.0.0。
$insert_data = array(
...other items...
'log' => $this->session->first_name;
);
如果您需要其他会话数据项,只需将“ first_name”更改为所需的项。例如,电子邮件数据
'log' => $this->session->email;
或者,如果您完全肯定会话数据中包含所需的项目,您也可以这样做。
$insert_data = array(
...other items...
'log' => $_SESSION['first_name'];
);
这是最少占用资源且最快的获取会话数据的方法。
但是请注意,如果$_SESSION['first_name']
不存在,则会引发错误。第一个示例不会抛出错误,而是返回NULL
。