2012-03-06 3 views
0

사용자가 로그인 한 경우 로그 아웃을 대체 할 것인지 확인하기 위해 codeigniter 페이지에이 작은 코드를 적용하려고했습니다. 반대의 경우도 마찬가지입니다. codeigniter 프레임 워크와 함께 제공되는 환영 페이지에서 테스트했지만 아무 일도 일어나지 않습니다. 내가 볼 수있는 유일한 얇은은 login 링크입니다. 탱크 인증을 로그인 라이브러리로 사용하여 쉽게 작업 할 수 있었지만, 환영 페이지에 로그인 할 때마다 다시 로그인 링크가 나타나는데 아무런 의미가 없습니다. 여기 로그인하여 codeiginter에서 로그 아웃 코드를 교체하십시오.

내가/로그인을 대체 아마 로그인 스크립트는 $ _SESSION 제대로 설정되지

<?php if(isset($_SESSION['username']) && $_SESSION['username']!="") 

{ echo("<a href='logout.php'>Logout</a> ");

echo($_SESSION['username']); ``// displays username } else { echo("<a href='login.php'>Login</a> "); } ?>

+1

CodeIgniter의는 PHP 네이티브 세션을 사용하지 않습니다. 탱크 인증을 사용한다면'$ this-> tank_auth-> is_logged_in()'을 사용하고, 그렇지 않으면 Session 클래스를 사용하십시오. –

+0

@Madmartigan 좋은 댓글 주셔서 감사합니다. 좋아요. 저는 CI를 처음 사용하고 코드를 어디에서 사용할 것인지 확신하지 못했습니다 ... 어떤 생각입니까? 컨트롤러에 있어야합니까 ?? –

+1

'isset ($ _ SESSION [ 'username']) && $ _SESSION [ 'username']! = ""' –

답변

1

로그 아웃하는 데 사용되는 코드입니다. Firebug를 사용하여 활성 세션이 있는지 확인하십시오. 사용자가 로그인 여부 또한 확인하는 방법을 사용하십시오 :

사용자의 로그인 클래스 :

public function is_logged_in() 
{ 
    if($this->session->userdata('username')) 
    { 
     return true; 
    } 
} 

로보기 :

if($this->login->is_logged_in()) 
{ 
    echo anchor('logout','Logout'); 
} 
else 
{ 
    echo anchor('login','Login'); 
} 
+1

@Digitalsite : 문제를 이해하는 데 도움이되는 * 예제 * 코드입니다. 직접 코드를 작성해야합니다! 사용자 안내서의이 항목을 읽으십시오. http://codeigniter.com/user_guide/libraries/sessions.html –

+1

먼저 로그인 모델을 인스턴스화해야합니다. 따라서 뷰의 컨트롤러 나 뷰 자체에서'$ this-> load-> model ('login'); '을 사용하십시오. [MVC 구조가 작동하는 방법] (http://codeigniter.com/user_guide/overview/mvc.html)에 대한 자세한 내용을 읽는 것 외에 모델 생성 방법을 모르는 경우에는 나는 당신의 컨트롤러에 대해 언급했다. 귀하의 견해에 직접 접근 할 수 있습니다. – hohner

+0

@Jamie 큰 노력에 감사드립니다. 나는 지금 그것을 확인하고 내가 할 수있는 것을 보게 될 것이다. 나는이 문제를 최대한 빨리 끝내야하기 때문에 수면이없는 2 일 연속으로이 문제를 해결하려고 노력해 왔습니다. 다시 한 번 감사합니다 –