Php 会话数据,在CodeIgniter中显示配置文件URL(w/Tank Auth)
我正在用CodeIgniter和MySQL开发一个应用程序。该应用程序包括用户配置文件;我使用Tank Auth注册和验证用户 我已经设置了几个用户,现在想查看每个用户的个人资料。我需要知道: 1-如何将自定义会话数据添加到Tank Auth。我知道代码应该是什么样子(http://codeigniter.com/user_guide/libraries/sessions.html),但我不确定代码应该放在auth控制器中的什么位置,这是相当广泛的- 2-如何将用户数据传递到视图。我已经设置了一个函数来检索用户数据(见下文),并希望将其传递到我的配置文件视图中——我认为userdata(在代码中)将表示自定义会话数据,其中包括用户id和用户名,其中一个是我需要的URL 3-URL我希望URL看起来像这样:或。我知道我需要对CI-URI路由做些什么,但不确定如何将其与我从查询中获得的结果联系起来 这是来自用户控制器的代码{Php 会话数据,在CodeIgniter中显示配置文件URL(w/Tank Auth),php,mysql,codeigniter,tankauth,Php,Mysql,Codeigniter,Tankauth,我正在用CodeIgniter和MySQL开发一个应用程序。该应用程序包括用户配置文件;我使用Tank Auth注册和验证用户 我已经设置了几个用户,现在想查看每个用户的个人资料。我需要知道: 1-如何将自定义会话数据添加到Tank Auth。我知道代码应该是什么样子(http://codeigniter.com/user_guide/libraries/sessions.html),但我不确定代码应该放在auth控制器中的什么位置,这是相当广泛的- 2-如何将用户数据传递到视图。我已经设置了一
function index()
{
$id = $this->tank_auth->is_logged_in('id');
$this->db->where('id', $id);
$q = $this->db->get('user');
$data['userdata']=$q;
$this->load->view('user_view', $data);
}
}
$userdata
。如果您想添加更多数据以包含在vi中呃,您只需将另一个元素添加到$data
数组中users
的控制器,您将能够在www.example.com/users
上找到它。然后,您可以编辑索引
函数以包含一个参数$uid
,该参数将生成所需的url:www.example.com/users/3394
users
控制器。这将是您的index()函数:
function index($userid) {
// You should probably have a model here that retrieves information
// about the user based on the userid
$data['user'] = $this->User_model->getUserInformation($userid);
$this->load->view('users', $data);
}
这是设置索引函数的一种方法。
$userid
变量是由url www.example.com/users/1234定义的。这就是url在codeigniter中的工作方式。您可以阅读更多信息。我想Runar已经为您回答了#2和#3。
对于#1,打开application/libraries/Tank_auth.php和函数名login。您将看到以下代码行:
$this->ci->session->set_userdata(array(
'user_id' => $user->id,
'username' => $user->username,
'status' => ($user->activated == 1) ? STATUS_ACTIVATED : STATUS_NOT_ACTIVATED,
));
set#userdata设置会话。您可以在此处添加更多要在会话中设置的变量。谢谢您的回复。我检查了Tank Auth文档,无法找到有关添加自定义会话数据的信息。但是您能给我一个#3的示例吗?您如何包括$uid参数来获取URL?顺便说一句。我找到了一个关于如何设置自定义会话数据的教程使用codeigniter进行ank身份验证。它已经有一年了,但可能对您的目的很有用。谢谢,我已经设置了Tank身份验证并正在运行。我查看了代码,但找不到会话数据中包含哪些变量。这就是我问问题的第一部分的原因。在我发布问题之前,它已经运行了。我没有正在尝试找出如何呈现数据。我选择了您的答案作为对问题2和问题3的回答。谢谢。谢谢。我只能接受一个答案,但我在这方面投了您的赞成票。我正在查看auth controller,这就是为什么我没有看到它。谢谢!!