2011-01-12 4 views
2

PHP/smarty를 사용하여 사용자 등록 양식을 만들었습니다. 이런 식으로하지 않는 이유는 모르겠으므로이 양식은 자체적으로 다시 게시됩니다. 여기서 문제는 사용자가 시작 페이지를 새로 고치면 코드가 계정을 다시 만들려고한다는 것입니다. 사용자 및 보안 관점에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까?탐색/재 게시 문제를 방지하기위한 PHP 양식 게시

if (isset($_POST['submit'])) { 
     /* Create customer account */ 
     $smarty->display($welcome_template); 

} else { 
     $smarty->display($form_template); 
} 
+2

중복 : http://stackoverflow.com/questions/3614197/php-prevent-form-from-being-submitted-twice 및 http://stackoverflow.com/questions/2133964/how-to-prevent-multiple -inserts-when-submitting-a-form-in-php – StasM

+0

두 페이지를 모두 읽었을 때도 내 질문에 대답하지 않습니다. – Michelle

+0

감사의 대령님, 제가 stackoverflow에서받은 가장 도움이되는 의견입니다. 누군가의 시간을 낭비하지 않기 위해 여기있는 Im. – Michelle

답변

-1

물론 사용자는 언제든지 계정을 다시 만들려고 할 수 있으므로주의해야합니다. 계정이 성공적으로 생성 한 후 페이지 확인을 표시 후 작업으로 사용자의 요구를 들어

, 가장 쉬운 해결책은

//at end of post-action 
echo '<script type="text/javascript">document.location = 'yoururl?cmd=confirm</script>'; 
die(); 

관련, // t

+0

사실, 동일한 문제가 있습니다 –

+0

아니요, 그렇지 않습니다. – Teson

0

이렇게하면 안됩니다. 표준 솔루션은 Post/Redirect/Get 패턴이라고 생각합니다. 즉, POST 요청을 작성한 다음 확인 페이지로 GET 요청으로 리디렉션합니다. 그런 다음 해당 페이지를 아무 문제없이 다시로드 할 수 있습니다.