Как проверить что ввели при повтороной загрузке страницы без JS
Задача:
перед отправкой формы генерируется случайная цифра от 0 - 9, появляется картинка этой цифры (в папке numbers у меня картинки 0.jpg, 1.jpg, 2.jpg, и т.д.), пользователь должен ввести в текстовое поле цифру с картинки и нажать 'Отправить'. Если случайно сгенерированная цифра равняется тому, что ввёл пользователь, то вывести 'ОК', иначе 'НЕ ОК'.
Эту задачу надо написать только на PHP, Javascript нельзя использовать, это учебная задача. Я не понимаю, что мне делать, я пытался сгенерированное радномное значение вручную засовывать в массив POST, GET и сравнивать введённое значение в самом верху страницы, но при новой загрузке страницы, это значение исчезает.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Document</title>
<body>
<div class="numbers">
<?php
echo '<pre>';
print_r($_POST);
echo '</pre><br>';
if ($_POST['capcha_nb'] == $_POST['rand_nb']) {
echo 'Всё ок!';
}
echo $GLOBALS['rand_nb'];
$arrPic = glob("numbers/*.jpg");
$arrHell = [];
foreach ($arrPic as $val) {
$numb = preg_replace('/[^0-9]/', '', $val);
$arrHell[] = [
"path" => $val,
"numb" => $numb
];
}
$rand = random_int(0, count($arrPic) - 1);
$_POST['rand_nb'] = $rand;
echo '<img src=' . $arrHell[$rand]['path'] . '>' ;
?>
<form method="post">
<p>
<label>
Введите число с картинки
<input type="text" name="capcha_nb" placeholder="Введите ваш ответ">
</label>
</p>
<input type="submit" name="submit_capcha">
<input type="reset" name="reset_capcha">
</form>
</div>
</body>
</html>
Ответы (1 шт):
<?php
session_start(); // Стартуем сессию
$arrPic = glob("numbers/*.jpg");
$arrHell = [];
foreach ($arrPic as $val) {
$numb = preg_replace('/[^0-9]/', '', $val);
$arrHell[] = [
"path" => $val,
"numb" => $numb
];
}
$rand = random_int(0, count($arrPic) - 1);
$_POST['rand_nb'] = $rand;
echo '<img src=' . $arrHell[$rand]['path'] . '>' ;
$_SESSION['image'] = $arrHell[$rand]['numb']; // Сохраняем в сессию значение
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Document</title>
<body>
<div class="numbers">
<form method="post">
<p>
<label>
Введите число с картинки
<input type="text" name="capcha_nb" placeholder="Введите ваш ответ">
</label>
</p>
<input type="submit" name="submit_capcha">
<input type="reset" name="reset_capcha">
</form>
</div>
</body>
</html>
<?php
if(isset($_POST['capcha_nb'])) {
if ($_POST['capcha_nb'] == $_SESSION['image']) { // Сравниваем значение
echo 'Всё ок!';
} else {
echo 'НЕ ок!';
}
}
?>
