2013-09-25 3 views
2

Im CodeIgniter를 사용하여 PHP로 웹 응용 프로그램에서 작업하고 있습니다. P 매우 설명하기 어렵 기 때문에 예제로 보여줍니다.URL 리디렉션이 항상 작동하지 않습니까?

정상적인 CodeIgniter 컨트롤러가 있습니다. 이 페이지 (서브 페이지)로드있어 사용자가 로그인되어있는 경우

<?php 
public function groups($subdomain ='') { 

    $this->load->library('MyLogin'); 
    $user_id = $this->mylogin->logged_in(); 


    if ($subdomain == '') { 
     ..... 
    } elseif ($subdomain == 'create') { 
     ..... 
    } elseif ($subdomain == 'join') { 
     ..... 
    } elseif ($subdomain == 'leave') { 
     ..... 
    } elseif ($subdomain == 'assign') { 
     ..... 
    } else { 
     ..... 
    } 
} 

logged_in 기능 검사 그는 자동으로이 같은 logged_in 기능 리디렉션 도착하지 않은 경우 :이 컨트롤러에서 나는이 같은 기능을 가지고있다.

echo header("Location: /user/login"); 

5 분 전이 기능이 잘 작동했습니다. 이제 새 하위 도메인 '할당'을 만들었습니다. 메신저에 로그인하고 난 항상

localhost/user/groups 
    localhost/user/groups/2 
    localhost/user/groups/create 
    localhost/user/groups/join 
    localhost/user/groups/leave 

를 리디렉션 다음 URL 중 하나에 연결을 시도하지만, 메신저

localhost/user/groups/assign 

에 연결하는 경우, 그는 (이 페이지를로드하려고하지 지금 경우

$ user_id가 비어있어 작동하지 않는 것). 왜 이런 일이 발생합니까?

감사 Teifun2

+0

'header()'는 ** NO ** 반환 값을가집니다. 'echo header (...)'는 전혀 의미가 없습니다. –

+0

레코드의 경우,'$ subdomain'의 사용법은 서브 도메인의 사용법이 아니라 서브 디렉토리의 사용법입니다. – Dan

+0

@MarcB Ups : P 덕분에이 문제가 해결 될 것입니다. (그러나 문제는 해결되지 않습니다) – Teifun2

답변

1

난 당신이에서 logged_in() 함수를 수정하는 것이 좋습니다

echo header("Location: /user/login"); 

이 사람 :

header("Location: /user/login"); 
exit; 

내가 그 문제를 해결할 것이라 생각합니다. 에코는 그것과 아무 상관이 없습니다. 단지 불필요한 것입니다.

+0

당신은 내 영웅입니다 : D 당신은 왜 이것이 효과가 있는지 설명 할 수 있습니까? 왜 다른 3 개의 서브 디렉토리에서 작동하는지, 할당에서는 작동하지 않는지? – Teifun2

+0

header() 함수는 단순히 PHP가 헤더 값을 브라우저에 보내어 어떤 값을 할당하게합니다. 경우에 따라 브라우저가 다른 위치로 리디렉션되어야 함을 나타내는 '위치'값입니다. 코드 수준에서 header() 함수는 return 문과 같지 않으므로 코드가 계속 실행되면 코드가 반환됩니다. 일반적으로 항상 위치 헤더가 페이지로드의 끝점이 될 것으로 예상하기 때문에 위치 헤더 뒤에서 나가는 것이 좋습니다. – jrebs

+0

Ok 도움을 주셔서 감사합니다. – Teifun2

0

사용 $에 _SESSION에 사용자가 로그온하는 동안 ...! 그래서 그는 새로 고침과 페이지 변경 후에도 로그인 할 수 있습니다 ..! 그리고 빈 값은 지나치지 않습니다.

+0

문제가 로그인 상태가되지 않습니다. 4 elseif 문 중 하나가 실제로 그게 사실 allredy 리디렉션을 얻지 않아. – Teifun2

관련 문제