2014-06-20 2 views
-1

몇 가지 작업을 수행 한 후 특정 양식을 제출하면 페이지를 새로 고치고 싶습니다. 페이지가 제대로 작동하지만 리프레시되지 않아 정확히 어떤 문제가 있는지 알 수 없습니다. 자기 애정 것을있는 그대로 내가 PHP 동작을 사용하고있는 과정PHP 페이지 새로 고침이 루프 내부에서 작동하지 않습니다.

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 

    // form values here 

</form> 

<?php 
if(isset($_POST['sub'])) 
{ 
    //few operations 
$result=mysqli_query($con,$sql); 
if($result) 
{ 
    header("Location: http://www.google.com"); 
} 
else 
{ 
    //no operation 
    } 
    } 
    ?> 

내가 뭐하는 거지 실수는 무엇이며 어떻게이 해결할 수 :

업데이트 : 여기

코드인가?

답변

2

문서의 헤더가 이미 생성 되었기 때문에 위 양식과 같은 일부 출력을 이미 완료 한 후에는 새 위치를 설정할 수 없습니다. 헤더는 한 번만 전송할 수 있으며, 뭔가 확인하고 싶다면 PHP 스크립트의 맨 위에 있어야합니다.

1

머리글 뒤에 exit;을 추가해야합니다. exit; 또는 die; 문을 건너 뛰면 리디렉션 헤더 이후에 스크립트가 계속 실행됩니다.

+0

위의 문제에 대한 설명이 아닙니다. 허위 정보입니다. – hek2mgl

+0

@ hek2mgl 내가 틀렸다면 정확한 설명을 해줄 수 있습니까? –

+0

내 질문을 업데이트했습니다. 친절하게 그것을 확인하십시오 –

0

게시물 요청이 이루어 졌는지 확인하는 가장 좋은 방법은 종료를 확인하고 닫는 것입니다.

if($_SERVER['REQUEST_METHOD'] == 'POST'); 
{ 
    header("Location: http://www.google.com"); 
    exit; 
} 
+0

답변을 업데이트했습니다. 사실 나는 양식이 우편에 의해 행해지는지 여부에 원하지 않습니다. 하지만 특정 작업이 완료되면 헤더 위치를 변경해야합니다. –

관련 문제