2010-06-15 3 views
1

사용자가 볼 수있는 내용의 PHP 페이지가 있습니다. 이 페이지가 특정 외부 URL에서 POST 요청을 받으면 다른 페이지로 사용자를 리디렉션하고 싶습니다. 내가 '데PHP로 포스트 백을 모니터링 하시겠습니까?

문제는 다음과 같습니다

효율적인 방법으로 전송되는 I 요청에 대한 페이지를 모니터링 할 수 있습니까?

header()가 작동하지 않기 때문에 어떻게 실제로 리디렉션 할 수 있습니까?

감사합니다.

답변

1

AJAX 스크립트를 사용하여 서버를 "핑 (ping)"하여 간헐적으로 변경 사항이 있는지 확인할 수 있습니다. 있는 경우 자바 스크립트로 사용자를 리디렉션하십시오.

거의 유일한 방법입니다.

+0

무엇이 ping입니까? 나는 외부 게시물이 언제 올지 예측할 수 없다. – Rebecca

+0

PHP 파일 자체. 외부 ping은 클라이언트 측에서 검색 할 수있을 때까지 임시 파일이나 데이터베이스에 저장해야합니다. –

1

우리는 POST 요청을

if($_POST['flag']==1) { 
      header("location:newpage.php"); 
      exit(); 
} 

하지만 두 번째 질문에 대해 AJAX

+0

header ('Location : ...')를 호출 한 후에 exit를 호출하는 것을 잊지 마십시오. –

2

를 사용하는 것보다 사용자의 개입없이 정기적으로 요청을 확인하려면, 헤더를 확인하려면이 조각을 넣을 수 있습니다()는 페이지에 정보를 출력하기 전에 사용하면 작동합니다. 그러나, 전에 에코, 인쇄 또는 HTML이 있으면 오류가 발생합니다.

: Toad의 의견에 따라 Aaron Harun이 제안한대로해야합니다. $ _POST 데이터처럼 $ _POST 데이터를 데이터베이스 또는 파일에 저장하십시오 (위생적인지 확인하십시오!). 그런 다음 AJAX를 사용하여 저장 한 모든 위치에서 업데이트 된 데이터의 존재 여부를 단순히 확인하는 두 번째 PHP 페이지에서 응답해야합니다. 응답이 다시 돌아 오면 JavaScript 리디렉션을 사용하여 리디렉션합니다.

AJAX를 사용하지 않고이를 수행하는 유일한 방법은 HTML 메타 새로 고침 요소를 사용하여 시간 간격으로 페이지를 새로 고침하여 $ _POST 데이터가 수신되었는지 확인하는 것입니다. HTML은 새로 고침을 수행하고 PHP는 검사를 수행하며 리디렉션 중 하나를 사용할 수 있습니다.

+0

질문은 리디렉션되는 페이지에 대한 것이 아닙니다 ... 다른 페이지로 이동하여 이미 리디렉션 된 페이지에 관한 것입니다 – Toad

관련 문제