2013-08-30 3 views
0

두 개의 PHP 파일이 있습니다.POST 값이 제대로 작동하지 않습니다.

<div style='background-color:#060; color:#FFF; width:50%; height:20px; font-size:12px; margin:5px 0;'> 
<form method='post' action='register.php' name='form_coding_rules' id='form_coding_rules'> 
    <input type='checkbox' name='rules' id='rules' value='agree'/> 
    I Declare That I Read All The Above Rules & I Agree With Them.<br/><br/> 
    <input type='submit' name='terms' id='terms' value='Proceed'/> 
</form> 
</div> 
</center> 

그리고 register.php은 다음과 같다 : 하나 rules.php 한 register.php

rules.php이 같다

if(isset($_POST["terms"]) && isset($_POST["rules"]) && $_POST["rules"]=="agree") { 
     //Do Something; 
} 
else 
    header("location: rules.php"); 

그러나 문제는 내가 규칙 페이지에서 등록 페이지로 제출할 때 표시되지 않는 값과 if 부분이 건너 뛸 때입니다. 문을 실행하는 경우 새로 고침 또는 제출 후 2-3 번. 하지만 작업 페이지를 테스트 페이지로 바꿀 때 제출 된 값만 인쇄하면됩니다. 그 이유가 무엇인지 이해하지 못했습니다. 당신의

+2

이되어야한다 = "동의"'$ _POST [ "규칙"]'선언, 것입니다 나는 (나는 JS를 생각하고 있을지도 모른다) 믿는다. 두 개의 등호 (또는 변수 유형을 확인하려는 경우 세 개)가 필요합니다. – Jasper

+2

그리고 언제나'var_dump ($ _POST); 출구에서; '상단에서 왜 한 문장이 당신이 생각하는 바가 아닐지 혼란 스러울 때. –

+0

register.php 안에있는 것을 모두 지우고 print_r ($ _ POST)을 추가 할 수 있습니다; 일부 값을 제출하고 결과를 표시 –

답변

2

귀하의 마지막 POST 문 인 경우 :

$_POST["rules"]="agree" 

$_POST["rules"]=="agree" 
+0

또한 헤더 뒤에'exit'을 넣어야합니다. 그러면 다른 것이 될 것입니다.'{header ("location : rules.php"); 출구; }' –

+0

전자는 '사실'로 해결됩니다. 맞습니까? 그래서'if' 문이 실행되는 것을 멈추지 않을 것입니다. – Jasper

+0

오타였습니다. 죄송합니다. 나는 이것을했지만 아직도 일하지 않는다. 나는 URL을 직접 열어서 작업을하기 때문에 혼란 스럽다. 하지만 여러 링크를 클릭하면 작동하지 않습니다. 전에 이런 유형의 문제에 직면하지 않았습니다. –

관련 문제