2014-09-11 4 views
0

나는 사용자 지정 보안 질문을 한 양식이 있습니다. 그것은 코드PHP가 작동하지 않는 값을 비교합니다.

$rand1 = rand (1,20); 
$rand2 = rand (1,20); 
$randsvar = $rand1 + $rand2; 
$securefråga = "Vad blir " . $rand1 . "+" . $rand2; 

그리고 난 그 후

$_POST["secure"] 

로 내 코드에 구문 분석 내가 정수로 모두 변환하고 변환 된 $의 randsvar 양식을 모두 비교와 질문을 무작위 코드가있는 값

그러나 올바른 답을 입력해도 오류 메시지가 표시됩니다. 무엇이 잘못 되었나요?

+0

'$ intSecure'에는 무엇이 포함되어 있습니까? – Sadikhasan

+0

초기로드시 세션에'$ randsvar'를 저장 한 다음 제출, 사용자 입력 – Ghost

+0

새로 고침 사이트 - 새 $ randsvar –

답변

1

세션을 사용하여 현재 작업을 저장할 수 있습니다. 제출 된 경우 사용자 입력을 저장된 세션 합계와 비교하십시오. 예 :

if(!isset($_POST['submit'])) { 
    $_SESSION['rand1'] = rand(1, 20); 
    $_SESSION['rand2'] = rand(1, 20); 
    $_SESSION['randsvar'] = $_SESSION['rand1'] + $_SESSION['rand2']; 
} else { 
    $input = $_POST['input']; 
    if($input == $_SESSION['randsvar']) { 
     echo 'correct'; 
    } else { 
     echo 'incorrect'; 
    } 
    exit; 
} 

?> 

<form method="POST"> 
    <label> 
     <?php echo $_SESSION['rand1'] . ' + ' . $_SESSION['rand2'] . ' = '; ?> 
     <input type="text" name="input" /> 
     <input type="submit" name="submit" /> 
    </label> 
</form> 
관련 문제