Php 会话数据,在CodeIgniter中显示配置文件URL(w/Tank Auth)

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-如何将用户数据传递到视图。我已经设置了一

我正在用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路由做些什么,但不确定如何将其与我从查询中获得的结果联系起来

这是来自用户控制器的代码{

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);
    }
}
  • 我不熟悉Tank Auth,但我建议您查看有关Tank Auth的信息。也许您可以通过阅读有关该库的信息来更好地理解。这是一个教程,演示了如何使用CodeIgniter设置Tank Auth

  • 通过从用户控制器查看您的代码,我发现您正在以正确的方式传递数据。您正在将数据作为数组传递到视图中。在视图中,数组元素将作为变量提供。因此,要在视图中使用数据,只需使用变量
    $userdata
    。如果您想添加更多数据以包含在vi中呃,您只需将另一个元素添加到
    $data
    数组中

  • 如果您创建一个名为
    users
    的控制器,您将能够在
    www.example.com/users
    上找到它。然后,您可以编辑
    索引
    函数以包含一个参数
    $uid
    ,该参数将生成所需的url:
    www.example.com/users/3394

  • 关于#3的示例:

    假设您已经创建了
    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,这就是为什么我没有看到它。谢谢!!