gpt4 book ai didi

php - 如何从 session 表 CI 中解码 BLOB 数据对象

转载 作者:行者123 更新时间:2023-11-28 23:32:56 26 4
gpt4 key购买 nike

我正在创建一个 REST API 以与我的 android 应用程序一起使用,因此我启用了 CodeIgniter 数据库 session 管理器(我遵循了这个 answer ),以便在我的用户登录时存储一些信息。

这是我存储信息的代码:

$this->session->set_userdata('key', 'value');

这是我的 config.php:

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = TRUE;

我的问题是:如何获取已存储在 session 表中的信息?我只在 ci_session 列上看到一个 BLOB 对象,但我如何解码它或如何使用它?

我已经将 session ID 从我的服务器发送到我的 Android 应用程序,每当我的应用程序需要来自服务器的信息时,它都会将其发回。我还创建了选择查询来获取 BLOB 对象:

$data = $this->db->query("SELECT data FROM ci_sessions WHERE id='5c825c032b6cf25b10e984f0ee8e1bd48a2c1916'");
$query = $data->result();

但是如何访问数据的键来获取值呢?

最佳答案

CodeIgniter 已经为你做了这件事,如果你想要一个包含整组项目的数组:

$this->session->all_userdata()

这将返回所有键和值,如果您只想获取特定值,则:

$this->session->userdata('foo');

其中 foo 是您要检索的值的键。

它的工作原理与 it is on the documentation 完全相同唯一的区别是 session 数据存储在数据库中,而不是由 PHP/Web 服务器处理。所以要存储或访问数据只需使用通常的方法。您不必直接查询数据库以获取 session 信息。

更新:

还要确保首先加载 session 库,方法是先在构造函数中将其加载到 Controller 中:

public function __construct() 
{
$this->load->library('session');
}

或通过autoloading the library (我宁愿推荐)

关于php - 如何从 session 表 CI 中解码 BLOB 数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36877495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com