2012-01-08 5 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를 포함하는 사용자 정의 세션 데이터를 나타낼 것이라고 생각합니다. 및 사용자 이름 중 하나는 URL에 필요합니다. -

3 개 URL은 나는 URL이 다음과 같이 할 : http://example.com/users/3394 또는 http://example.com/users/fooy_foo. 나는 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
  1. 의 코드,하지만 난 당신이 탱크 인증에 대한 official page을 확인하기 위해 조언을 것입니다. 어쩌면 도서관에 대해 더 잘 이해하게 될 것입니다. Here's CodeIgniter로 탱크 인증을 설정하는 방법을 보여주는 자습서.

  2. 코드를 보면 사용자 컨트롤러에서 올바른 방식으로 데이터를 전달하고 있음을 알 수 있습니다. 뷰로 배열로 전달하고 있습니다. 보기에서 배열 요소를 변수로 사용할 수 있습니다. 따라서보기에서 데이터를 사용하려면 변수 $userdata을 사용하기 만하면됩니다. 보기에 포함 할 데이터를 더 추가하려면 $data 배열에 다른 요소를 추가하기 만하면됩니다.

  3. users 컨트롤러를 만들면 www.example.com/users에 연결할 수 있습니다. 그런 다음 index 함수를 편집하여 원하는 URL을 생성하는 $uid 매개 변수를 포함 시키십시오 (www.example.com/users/3394). # 3

예 :

당신이 users 컨트롤러를 만들었습니다 말할 수 있습니다. 그러면 인덱스() 함수가됩니다.

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/ 에 의해 정의됩니다. 이것이 URL이 codeigniter에서 작동하는 방식입니다. 자세한 내용은 here을 참조하십시오.

+0

답변 해 주셔서 감사합니다. Tank Auth 문서를 확인한 후 맞춤 세션 데이터를 추가하는 데 필요한 정보를 찾을 수 없었습니다. 하지만 # 3의 예를 들어 주시겠습니까? URL을 가져 오기 위해 $ uid 매개 변수를 어떻게 포함합니까? – chowwy

+0

예를 통해 내 대답을 업데이트했습니다! –

+0

Btw. codeigniter로 탱크 인증을 설정하는 방법에 대한 자습서를 찾았습니다. 그것은 1 년이지만 아마 당신의 목적에 유용 할 것입니다. 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

고맙습니다. 나는 오직 한 가지 대답만을 받아 들일 수 있었지만 나는 이것을지지했다. 나는 인증 컨트롤러를보고 있었는데, 그게 내가 그것을 보지 못했던 이유입니다. 고맙습니다!! – chowwy

+0

다행이 도움이 될 수 있습니다. :) – Ninja

관련 문제