2014-09-11 3 views
0

У меня есть форма, для которой я задал специальный вопрос безопасности. Это рандомизирует вопрос с кодомPHP сравнивает значения, не работающие

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

и я потом разобрать его в свой код, как

$_POST["secure"] 

после этого я преобразовать их обоих чисел и сравнить как преобразованный $ randsvar и форму значение с Афоризмом с кодом

$intSecure = intval($secure); 
$intRand = intval($randsvar); 
if($intSecure == $intRand) 
{ 
    $errorNummer++; 
} 
else 
{ 
    $secureErr = "wrong answer"; 
} 

однако даже если я типом правильного ответа он дает мне сообщение об ошибке, то, что я делаю неправильно?

+0

'$ intSecure' содержит что? – Sadikhasan

+0

сохранить '$ randsvar' в сеансе при начальной загрузке, затем отправить, сравнить вход пользователя – Ghost

+0

reload site - new $ 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> 
Смежные вопросы