php - Codeigniter 3 显示所有在线用户

标签 php codeigniter-3

我正在使用数据库级 session 存储方法。

$config['sess_driver'] = 'database';
$config['sess_save_path'] = 'ci_sessions';//its your table name name

所以当用户登录数据成功插入到ci_sessions中。

__ci_last_regenerate|i:1435420891;identity|s:13:"john@doe.com ";username|s:13:"johndoe";email|s:13:"john@doe.com ";user_id|s:1:"5";old_last_login|s:10:"1435412865";

像这样,这张表可能包含多条记录。我想向所有在线用户展示。此数据列具有 blob 类型。如何获取所有用户名?

最佳答案

我使用以下代码获取信息。

$session_data   = '__ci_last_regenerate|i:1435420891;identity|s:13:"john@doe.com ";username|s:13:"johndoe";email|s:13:"john@doe.com ";user_id|s:1:"5";old_last_login|s:10:"1435412865"'; //session data

$return_data    = array();  // array where you put your "BLOB" resolved data
$offset         = 0;
while ($offset < strlen($session_data)) {
    if (!strstr(substr($session_data, $offset), "|")) {
        throw new Exception("invalid data, remaining: " . substr($session_data, $offset));
    }
    $pos        = strpos($session_data, "|", $offset);
    $num        = $pos - $offset;
    $varname    = substr($session_data, $offset, $num);
    $offset     += $num + 1;
    $data       = unserialize(substr($session_data, $offset));
    $return_data[$varname] = $data;  
    $offset     += strlen(serialize($data));
}

echo $return_data['username'];
echo $return_data['email'];

谢谢

关于php - Codeigniter 3 显示所有在线用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41339921/

相关文章:

jquery - 使用 slider 发送电子邮件失败

PHP:preg_replace 使用反向引用替换缩写

php - codeigniter flashdata 成功消息返回失败

php - Codeigniter 3 : How to use composer packages?(Twilio SDK)

php - CodeIgniter 中这些文件的用途是什么?

php - 在home_v.php页面点击Add student按钮,打开另一个查看页面user_v.php

javascript - 如何使用 Ajax 从 PHP 文件获取响应作为数组?

更改端口后 phpmyadmin 框架内容未加载,已更改 PmaAbsoluteUri

php - 使用数据库将数据形成表

javascript - 图像没有显示,即使我试图从 html 数据表中获取图像并将其显示到 div 中