문제
나 buy.php
로 양식 당신이 입력 항목,수량,운송 데이터,등등.
를 클릭할 때 제출 버튼, 게시 돌아 buy.php
($_SERVER['PHP_SELF'])
가 어떤 데이터 유효성 검사를 수행합니다.
이 있는 경우는 필드가 없거나 오류가,그들은 강조됩니다.모든 것이 올바른 경우,저장 $_POST
데이터 $_SESSION
변수,다음 header('Location: check.php')
, 내가 데이터를 표시합니다 그래서 구매자가 확인할 수 있는 정보나 마지막 시간 전에 실제로 구입.
이제,언제 어디서나 스 check.php
고 다시 버튼을 누르면 buy.php
그래서 내가 물건을 변경할 수 있습 브라우저 묻고 싶은 경우 다시 보내 POST data.난을 피하려고 노력하는 것.
사람이 어떤 좋은 조언이나 좋은 사례에 대한 PHP 다양한 검증?
또한,if I had n 페이지에 대한 사용자를 채우기 buy.php, buy2.php, ... buyn.php
기 check.php 을 것 같은 아이디어가 여전히 유효한가?
해결책
당신이 할 수 있는 리디렉션 buy.php 후 절약하여 세션 객체는 다음 서버로 리디렉션 check.php 그는 것을 의미를 클릭할 때,다시 그들은 다시 얻을 요청하지 않은 POST 요청
다른 팁
예.동의합니다.제가 항상 수행 redir
텔에서 마지막 게시물을 클릭하면 다시 그들에게 반송하지 않고 다시는 오류 또는 재 submissions.그것은 또한 피할 수 합병증이 있습니다.u 상에 태그 redir
링크된 페이지 ?m
나 &m
(예:: page.php?m
다)및 이에 최고의 페이지:(사용 elseif
후가)
if (isset($_GET['m'])) {
echo 'order placed.';
}
else {
//...
}
당신은 모든 것을 할 수 있습니다 한 페이지에 너무입니다.단지의 이름을 제출 버튼 submit1
, submit2
, 처럼:(곰 마음에 이미지를 사용하는 경우를 제출,그것은 $_POST['submit1_x']
:)
if (isset($_POST[submit1]) {
//validate + save session data from form1
//display form 2
} else if(isset($_POST[submit2])) {
//validate + save session data from form2
//display form 3
} else {
//display first form
//<input type="submit" name="submit1" value="Continue">
}