2013-09-06 7 views
1

내 페이지의 사이드 바에 로그인 양식이 삽입되어 있습니다. 사용자가이를 사용하여 로그인하면 로그인 한 동일한 페이지로 다시 리디렉션합니다.리디렉션 페이지가 새로 고침되지 않는 헤더 리디렉션

달성하기가 쉽습니다. 그러나 로그인 기능이 완료되어 원래 페이지로 리디렉션되지만 실제로 새로 고치지는 않습니다. 로그인 양식이 양식에서 사용자 정보 화면으로 변경됩니다. 사용자가 실제로 로그인 한 후에도 여전히 로그인 양식이 표시됩니다.

나는

header ("refresh:0;url=url.php"); 

그러나 내가 제대로 해결과로 리디렉션 할 수있는 사용자에서 온 한 URL을 얻을 수 없다 사용하여 시도했다.

내가 사용하고 코드는 새로 고침을 강제하는 간단한 방법이 있나요 또는 같은 일을 달성하기 위해 AJAX 같은 것을 사용하는 것이 최선이다

if(isset($_POST['location'])) { 
    $location = htmlspecialchars($_POST['location']); 
    header("Location:" .HOME_PATH. urlencode($location)); 
} 

이하입니다.

그러나 가장 간단한 것은 새로 고침 헤더를 사용하는 것이라고 생각하지만 위치에서 사용한 것과 동일한 효과를 얻는 방법을 이해하지 못합니다.

EDIT : 그렇지 않은 경우, 사용자의 변화 대신 로그인 형태의 디스플레이에 기록되는 경우

로그인 폼 여부를 확인한다.

<?php if (isset($_SESSION['userName'])) { ?> 

그러면 양식이 PHP 기능에 게시됩니다. 이 함수는 실제로 사용자의 로그인을 수행하고 일단 이것이 완료되면 해당 페이지로 리다이렉션됩니다. 이것은 문제가있는 곳입니다. 리턴 리디렉션 페이지를 새로 고치지 않으므로 양식 조건이 표시되는 내용을 변경할 수 있습니다.

+0

은 로그인 양식을 올바르게 표시하여 사용자가 로그인했는지 확인하는 코드입니다. –

+0

예' ' – user1711576

+0

양식이나 정보를 표시하기 전에 사용자가 로그인했는지 여부를 확인할 수 있습니다. –

답변

2

header("Location: ...") 페이지 렌더링이 중단되지 않습니다. 그 직후에 exit을 입력하여 정지해야합니다.

+0

을 볼 수 없다. 성공적으로 리다이렉션하면 페이지가 새로 고쳐지지 않고 사용자가 현재 로그 인한 것을 알 수있다. 양식을 변경하십시오. 나는 exit를 사용하여 시도했으나 동작을 변경시키지 않았다. – user1711576

+0

예, 그렇지만 지금은 여전히 ​​리다이렉트를 사용하는 적절한 방법이다. 항상 exit 나' 브라우저가 다른 위치로 리디렉션되기 전에 잠시 동안 페이지를 일시적으로 표시 할 수있는 기회가 있습니다. –

+0

그 점에 감사드립니다. 영구히 – user1711576

관련 문제