会话数据,在CodeIgniter中显示配置文件URL(带有Tank Auth)

时间:2012-01-08 03:02:46

标签: php mysql codeigniter tankauth

我正在开发CodeIgniter和MySQL中的应用程序。该应用包括用户个人资料;我正在使用Tank Auth注册和验证用户。

我已经设置了几个用户,现在想要查看每个用户的个人资料。我需要知道:

1 - 如何将自定义会话数据添加到Tank Auth 。我知道代码应该是什么样子(http://codeigniter.com/user_guide/libraries/sessions.html),但我不确定代码应该在auth控制器中的位置,这是相当广泛的 - {{3 }}

2 - 如何将用户数据传递到视图。我已经设置了一个函数来检索用户数据(见下文)并希望将其传递给我的个人资料视图 - 我认为userdata(在代码中)将代表自定义会话数据,其中包括用户的id和用户名,其中一个我需要的URL。

3 - 网址我希望网址如下所示:https://github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.phphttp://example.com/users/3394。我知道我需要对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);
    }
}

2 个答案:

答案 0 :(得分:5)

我猜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设置会话。您可以在此处添加更多要在会话中设置的变量。

答案 1 :(得分:2)

  1. 我不熟悉Tank Auth,但我建议你查看Tank {0}来获取Tank Auth。也许你会从阅读有关图书馆的内容中获得更好的理解。 official page一个教程,演示如何使用CodeIgniter设置Tank Auth。

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

  3. 如果您创建名为users的控制器,则可以在www.example.com/users处找到它。然后,您可以修改index功能,以包含一个参数$uid,该参数将生成您想要的网址:www.example.com/users/3394

  4. 关于#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变量由网址www.example.com/users/ 1234 定义。这就是url在codeigniter中工作的方式。您可以阅读更多相关信息Here's