2012-12-04 1 views
0

Possible Duplicate:
I am confused about PHP Post/Redirect/Get옵션 양식 - "이 페이지는 데이터를 사용했습니다 ..."메시지를 어떻게 제거합니까?

나는 페이지에서 양식을 가지고, 그래서 내가 페이지를 다시로드 할 때 메시지가 "당신은 당신이 새로 하시겠습니까 있으며,이 페이지가 사용한 데이터"를 얻을.

한 번 양식을 제출할 때까지 메시지를 제거하는 HTTP-303 응답 코드를 조사한 다음 다시 나를 괴롭히기 시작합니다.

기본적으로 페이지를 새로 고치면 프롬프트가 표시되지 않아야하는 선택적 "연락처"양식이 있습니다. 나는 이런 식으로 짧은 양식을 제출하기 위해 왜 별도의 페이지가 필요한지 생각하지 않습니다. 누구든지 나를 도울 수 있습니까?

+0

지금까지 프로세스를 페이트 처리 하시겠습니까? –

+2

post/redirect/get에 대한 게시물이 많이 있습니다. 여기에 하나 : http : //stackoverflow.com/questions/7681755/i-m-confused-about-php-post-redirect-get –

+0

@DarylGill 그것입니다 :'header ('HTTP/1.1 303 Optional Form');' "optional form resubmit"과 같은 것을 검색하면 아무 곳이나 가져갈 수 없습니다. – Raekye

답변

1

가장 좋은 방법은 Ajax입니다. 그렇게하면 다시로드 할 필요가 없습니다. 나는 보통 JQuery과 함께 사용합니다.

function send_message(vMessage,vWho) { 
    $.ajax({ 
     url:"messageSender.php", 
     data:{message:vMessage,from:vWho}, 
     type:"POST", 
     success:function(result) { 
      // DO SOMETHING HERE, LIKE AN ALERT 
     } 
    }); 
} 
+0

답변으로 받아 들여지 겠지만 누군가가 의도 한 해결책을 원한다면 (다시 제출하지 말고 다른 스크립트없이), 아래 마지막 해결책을보십시오. – Raekye

0

양식 데이터를 저장 한 후에 리디렉션해야합니다. 그것은 같은 페이지에서 할 수 있습니다. 문제가 아니므로 POST 대신 GET 요청을 보내면됩니다.

+0

그것은 '나에게 메시지 남기기'형식입니다. get을 통해 전체 메시지를 전달하는 것은 우아하지 않은 것처럼 보입니다. – Raekye

+1

예, 동의합니다. 대답은 get을 사용하지 않는 것입니다. 하지만 게시를 포착하려면 참조 페이지를 다시로드하거나 페이지로드를 피하기 위해 아약스를 통해 제출하십시오. –

+0

POST 이후에 GET을 실행하는 리디렉션을하는 것이 었습니다. – Savageman

1

최종 해결책 :
그래서 당신은 같은 것을 끝낼 당신은 action="something" 태그를해야 같은 페이지

  1. 에 양식 재 제출을 방지하는 방법. HTML5에 필요함
  2. 양식이 제출되었는지 확인하십시오. 당신이하지 않고 header('Location: ...')을 가지면 그것은 무한 루프 (쓰레기)처럼 보일 것입니다. 심지어 양식을 제출 한 후, 지금은 정기적으로 새로 고칠 수 있습니다 및 exit

귀하의 페이지 : 그래서

  • if (isset($_POST['some_submit_btn'])) { 같은 당신은 header('Location: same_page') (header('Location: ' . $_SERVER['PHP_SELF']) 등)을 수행 논리를
  • 을 처리 마십시오. 리디렉션은 POST 요청 또는 무엇이든 지 웁니다.

    다른 사람들은 Ajax가 더 간단한 해결책이라고 지적했습니다. 저는 이것을 답으로 받아 들였습니다. 그러나 누구든지이 방법으로 이것을하고 싶다면 이것을 참고로하십시오.

    참고 : 두 페이지/새로 고침간에 데이터를 전달하려면 세션 또는 쿠키를 통해 전달해야합니다 (세션 선호). "깨끗한"해결 방법이 있다고 생각하지 않습니다.

  • 관련 문제