2012-02-05 2 views
3

ajax로 호출되는 PHP 파일에서 헤더를 보내려고합니다. 문제는 PHP로 모든 정보의 유효성을 검사 할 때 다른 페이지로 리디렉션하고 싶지만 헤더는 작동하지 않습니다! 어떤 아이디어?php 리디렉션 헤더가 ajax 호출을 통해 전송되지 않습니다.

코드가 무엇을 :

//------------- index.php 
on click of input, function passes <input> values through $_POST to login.php 
if($_SESSION[superman]==true){redirects to index_main.php} 

//------------- login.php 
all it does is validate forms and if login and password are correct, it sets $_SESSION [superman]=true 
+0

당신은 구절을 변경할 수 있습니까? –

+0

글쎄, 양식을 검증하는 외부 파일에 ajax 호출을 작성한 다음 모든 방법이 올바른 경우 헤더로 리디렉션합니다. 헤더가 작동하지 않습니다 (심지어 AJAX 함수가 보내지는 곳에서 주 파일에 넣을지라도) –

답변

5

리디렉션은 아약스 전화를 리디렉션합니다! 브라우저에서 표시된 페이지를 변경하려면 Ajax 호출이 완료된 후에 Javascript를 사용하여 리디렉션해야합니다.

  • 는 Ajax 호출은
  • 는 Ajax 호출의 반환 값을 확인 (예 : 문자열 true 아니면로드 할 페이지의 URL에 대한) 성공적인 로그인을 나타내는 값을 반환 확인합니다. 성공한 경우 자바 스크립트를 사용하여 location.href을 변경하십시오.
+0

좋아요, login.php에서 확인하십시오. 및 기본 파일에서 if (vaka == true) {location.href} ..? 아니면 아약스 호출을 통해 메인 파일을 다시 호출해야합니까? –

+0

@semur는 응답을 구문 분석하는 방법에 따라 다릅니다. –

+0

다음과 같이 보입니다 : ajba.open ("POST", "php_reg/login.php? login_login ="+ str1 + "& login_password ="+ str2, true); login.php가 양식을 검증하고 모든 것이 제대로 작동 하는지를 확인하는 요청입니다. $ _SESSION [redir_main] = true; ELSE 에코 "오류"; 응답이 생성 된 주 파일은 세션이 설정되고 헤더로 리디렉션되는 경우 표시됩니다. 그것은 작동하지만, 값과 REFRESH를 제출 한 후에야 (php는 등록 된 세션이 있음을 인식하고 리디렉션됩니다). 나는 정말로 다른 방법을 설명하지 못한다. –

관련 문제