2012-01-08 10 views
4

私はCodeIgniterとMySQLでアプリケーションを開発しています。このアプリにはユーザープロフィールが含まれています。 Tank Authを使用してユーザーを登録および認証しています。セッションデータ、CodeIgniter(タンク認証付き)のプロファイルURLを表示

私は数人のユーザーをセットアップして、それぞれのユーザーのプロフィールを表示する必要があります。私は知る必要があります:

1 - Tank Authにカスタムセッションデータを追加する方法。コードの外観(http://codeigniter.com/user_guide/libraries/sessions.html)はわかりましたが、かなり広範囲な認証コントローラでコードをどこに置くべきかわかりません - https://github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.php

2 - ユーザーデータをビューに渡す方法。私は、ユーザーデータを取得するための関数をセットアップしています(下記参照)。これをプロファイルビューに渡したいと思います。私は、コード内のuserdataがユーザーのIDを含むカスタムセッションデータを表すと考えていますユーザー名、そのうちの1つはURLに必要です。

3 - URLはhttp://example.com/users/3394またはhttp://example.com/users/fooy_fooのようになります。私はCI URIルーティングを使って何かをする必要があることを知っていますが、質問から得た結果をどのように結び付けるかは特定できません。

ここで私はタンクのAuthに慣れていないんだけど、私は戦車認証のためofficial pageをチェックアウトすることができアドバイスしたいユーザコントローラ{

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
  1. からのコードです。おそらく、あなたはその図書館についての読書からより良い理解を得るでしょう。 Here's CodeIgniterでTank Authを設定する方法を示すチュートリアル。

  2. あなたのコードを見て、ユーザーコントローラから、正しい方法でデータを渡していることがわかります。ビューとして配列に渡しています。あなたのビューでは、配列要素は変数として利用できます。ビュー内のデータを使用するには、単に変数$userdataを使用します。ビューに追加するデータを追加する場合は、配列$dataに別の要素を追加するだけです!

  3. usersという名前のコントローラを作成すると、www.example.com/usersにアクセスできます。 index関数を編集して、というパラメータを設定し、目的の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); 
} 

これは、インデックス関数を設定する方法の1つです。 $userid変数は、URL www.example.com/users/ によって定義されています。それがURLがcodeigniterで動作する方法です。あなたはそれについてもっと読むことができますhere

+0

ご回答ありがとうございます。私はタンク認証のドキュメントをチェックして、カスタムセッションデータを追加することについての情報を見つけることができませんでした。しかし、あなたは私に#3の例を与えることができますか? $ UIDパラメータをURLに含めるにはどうすればよいですか? – chowwy

+0

私はあなたのための例で私の答えを更新しました! –

+0

Btw。私はcodeigniterでタンク認証を設定する方法に関するチュートリアルを見つけました。それは一歳ですが、あなたの目的にはおそらく有用でしょう。 http://expertnotfound.wordpress.com/2011/01/20/setting-up-tank-auth-2/ –

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はセッションを設定します。ここでセッションに設定する変数を追加できます。

+0

ありがとうございます。私は1つの答えしか受け入れることができませんでしたが、私はあなたのためにこれをアップしました。私は認証コントローラを探していたので、私はそれを見ませんでした。ありがとうございました!! – chowwy

+0

うれしいことがあります:) – Ninja