Справочники, инструменты, документация

PHP: Как создать онлайн тест

Иногда людям не знающим программирования, нужно создать онлайн тест на php для своего сайта, на самом деле все очень просто, постараюсь наглядно объяснить.

Для решения данной задачи мы будем использовать простую HTML форму и POST запросы. И так приступим. Создадим простую форму с полями radio, то есть для выбора вариантов ответа и кнопкой для результатов.

<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<form>
<div>
 <p>Сколько будет 2 + 2?</p>
 <label><input type="radio">3</label> 
 <label><input type="radio">2</label> 
 <label><input type="radio">1</label>
</div>
<div>
 <p>Сколько будет 5 - 2?</p>
 <label><input type="radio">3</label> 
 <label><input type="radio">2</label> 
 <label><input type="radio">1</label>
</div>
<button type="submit">Результат</button>
</form>
</body>
</html>

Отлично мы создали форму. Теперь в неё нужно внести изменения, чтобы она работала. Добавим атрибуты к форме: method="POST" - метод отправки php форм. action="result.php" - файл, в который будут отправляться результаты формы.

<form action="result.php" method="POST">...</form>

Присвоим уникальное имя вариантам ответов, чтобы объединить их между собой, для одного вопроса - name = "имя":

<label><input name="q1" type="radio">c. 1</label>

А теперь пропишем имя ответов к каждому варианту, например value = "a".

<label><input name="q1" type="radio" value="a">c. 1</label>

В результате получим:

<form action="result.php" method="POST">
<div>
 <p>Сколько будет 2 + 2?</p>
 <label><input name="q1" type="radio" value="a">3</label>
 <label><input name="q1" type="radio" value="b">2</label>
 <label><input name="q1" type="radio" value="c">1</label>
</div>
<div>
 <p>Сколько будет 5 - 2?</p>
 <label><input name="q2" type="radio" value="a">3</label> 
 <label><input name="q2" type="radio" value="b">2</label>
 <label><input name="q2" type="radio" value="c">1</label>
</div>
<button type="submit">Результат</button>
</form>

Создадим файл result.php в том же каталоге, в котором создадим скрипт теста на php для обработки и вывода результата правильных и не правильных ответов.

<?php
$ot = 0;
$not = 0;
 if ($_POST[q1] == a){$ot++;} else {$not++;}
 if ($_POST[q2] == a){$ot++;} else {$not++;}
?>

<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
 <p>Правильных ответов:</p>
 <p>Неправильных ответов:</p>
</body> 
</html>

Описание: Здесь все довольно просто, мы создаем простое условие для каждого вопроса. Если в вопросе [q1] вариант "a", то прибавляем к переменной "$ot" + 1 ($ot - количество правильных ответов), если другой вариант то записываем в переменную $not "неправильных ответов" + 1.

Теперь выводим на страницу в html коде правильные и неправильные ответы:

<p>Правильных ответов: <?php echo $ot; ?></p>
<p>Неправильных ответов: <?php echo $not; ?></p>

Заключение. Теперь у вас есть простой тест на php и html, теперь можно и запустить его для онлайн. Вы можете добавить сколько угодно вариантов ответов по аналогии. Добавить стилей и улучшить код. Можно было все сделать намного грамотней, но проще этого не придумаешь. Работа у теста такая: выбрали варианты, нажали на кнопку результат, нас перекидывает на вторую страницу, где выводится подсчет правильных и неправильных ответов. Удачи!