2016-09-12 3 views
2

온라인 서버에서 실행중인 LAMP 사이트가 있습니다.
Localhost에서 사이트를 테스트했는데 정상적으로 작동합니다.
나는 서버에서 사이트를 넣어이 오류 가지고 :PHP - 로컬 호스트가 아닌 서버에서 너무 많은 시간 오류가 발생했습니다

[SITE] redirected you too many times. 
ERR_TOO_MANY_REDIRECTS 

내 쿠키를 삭제 시도를하지만 도움이되지 않았다.

는 나는 나의 위치는 다음과 같이 설정 한 :

home.php :

if (!$user->is_logged_in) { 
    die(header("Location: login.php")); 
} 

login.php :

if ($user->is_logged_in) { 
    die(header("Location: home.php")); 
} 

is_logged_in는로 설정 한 사용자 클래스 파일에 _SESSION 부울의 변수.

이상한 부분은 내가 원하는 페이지 나 login.php로 리디렉션되기 전에 몇 초 동안 오류 메시지가 표시된다는 것입니다. login.php로 리디렉션 되더라도 is_logged_in을 새로 고칠 때 여전히 true로 설정되어 있으므로 home.php로 리디렉션됩니다.

저는 .htaccess 파일을 가지고 있지 않습니다.

서버 또는 코드에 문제가 있습니까? 내가 고칠 수있는 것에 대한 제안? 나는 페이지가 시간에 사용자 클래스 변수 is_logged_in을 얻지 못한다고 생각하지만 확실하지 않다.

+0

온라인 서버가 아닌 동일한 코드로 로컬로 재생할 수 있습니까? 문제가 서버와 관련이 없는지 확인하기 만하면됩니다. – Terminus

+0

예. 사이트가 예상대로 작동합니다 (로컬 호스트). 온라인은 오류가 발생한 곳입니다. – OzMan13

답변

0

를 사용해보십시오. 주된 원인은 무엇인지 모르지만 다른 공급자로 변경했을 때 사이트가 예상대로 작동했습니다.

1

대신 if 성명에서 직접 $user->is_logged_in 퍼팅의, isset($user->is_logged_in)

if (!isset($user->is_logged_in)) { 
die(header("Location: login.php")); 
} 

그리고

문제는 내가 사용하던 서버와이었다
if (isset($user->is_logged_in)) { 
die(header("Location: home.php")); 
} 
+0

동일한 오류 메시지가 계속 나타납니다 (너무 많은 리디렉션). 나는 is_logged_in을 false로 초기화했다. 나는 이것을 가지고 시험해 보았고 그것이 초기화되지 않도록했다. isset() 및 is_logged_in이 false로 초기화되면 login.php에 대한 사용자 컨텐츠가없는 홈 페이지로 항상 리디렉션되었습니다. 그리고 isset() 및 is_logged_in 초기화되지 않은 나는 이전과 같은 오류가 발생했습니다. – OzMan13

관련 문제