slogin.info

ihc 468x60 1 1
Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна4 / 5
 
Автор: Администратор
Просмотров: 16065
Теги: php, тестирование, test, скрипт

В этой статье речь пойдет о реализации простого тестирования при помощи PHP.

Стоит сразу отметить, что выбирая PHP, за место javascript вы получаете большую надежность в тестировании, так как PHP это серверный язык программирования и выполняется он на сервере, то подсмотреть ответы и сам код намного сложнее, нежели это бывает с javascript.

В нашем тесте будут разные вопрос, с различными вариантами ответов - выбор одного правильного ответа из группы, запись ответа в текстовое поле, выбор нескольких вариантов в ответе.

Сам тест будет хранить у нас в index.html, как форма со всеми её элементами. А проверка тестирования будет проходить в файле test.php.

Подготовим тест и напишем разметку нашей страницы:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>   
<title>Страница</title>
</head>
<body>
	<form method="post" action="test.php">
		<div class="element">
			<p><strong>Вопрос №1:</strong> Столица России</p>
			<p><input type="radio" name="capital" value="Санкт-Петербург"> Санкт-Петербург</p>
			<p><input type="radio" name="capital" value="Париж"> Париж</p>
			<p><input type="radio" name="capital" value="Москва"> Москва</p>
			<p><input type="radio" name="capital" value="Киев"> Киев</p>
		</div>
		<div class="element">
			<p><strong>Вопрос №2:</strong> Сколько будет (5 + 5 + 5) - (5 + 5) * 0</p>
			<p><input type="text" name="matematic" placeholder="Введите сюда ответ" /></p>
		</div>
		<div class="element">
			<p><strong>Вопрос №3:</strong> Вы счастливый человек? (Правильный ответ - Да! ^_^)</p>
			<p><input type="radio" name="happy" value="Да"> Да</p>
			<p><input type="radio" name="happy" value="Нет"> Нет</p>
		</div>
		<div class="element">
			<p><strong>Вопрос №4:</strong> Выберите мужские имена</p>
			<p><input type="checkbox" name="gender1" value="Михаил"> Михаил</p>
			<p><input type="checkbox" name="gender2" value="Анастасия"> Анастасия</p>
			<p><input type="checkbox" name="gender3" value="Стёпа"> Стёпа</p>
			<p><input type="checkbox" name="gender4" value="Светлана"> Светлана</p>
			<p><input type="checkbox" name="gender5" value="Габи"> Габи</p>
		</div>
		<div class="element">
			<p><input type="submit" value="Отправить ответы" /></p>
		</div>
	</form>
</body>
</html>

Здесь стоит отметить то, что в атрибутах name лучше задавать понятные названия, с которыми вам потом придется оперировать в PHP файле. Так же мы советуем вам в атрибутах value так же задавать понятные значения, чтобы не приходилось оперировать непонятными цифрами(именно это значения сохраняется и отправляется в обработчик).

Раз разметка готова, остается только написать сам скрипт проверки тестирования, получать данные мы будем из глобальной переменной POST, результат будем выводить в процентах от выполненных заданий.

Стоит отметить вопрос, когда у нас несколько вариантов ответов, для этого приходиться удлинить код и создать дополнительную переменную для проверки. Мы считаем, что вопрос отвечен правильно только если выбраны все мужские имена и ни одного женского.

<?php
	//Получаем данные из глобальной переменной $_POST, так как мы передаем данные методом POST
	$capital = $_POST['capital']; // Вытаскиваем ответ на первый вопрос в переменную
	$matematic = $_POST['matematic']; // Вытаскиваем ответ на второй вопрос в переменную
	$happy = $_POST['happy']; // Вытаскиваем ответ на третий вопрос в переменную
	
	/* Вопрос четвёртый с несколькими вариантами ответов */
	$hgender1 = $_POST['gender1']; 
	$hgender2 = $_POST['gender2']; 
	$hgender3 = $_POST['gender3']; 
	$hgender4 = $_POST['gender4']; 
	$hgender5 = $_POST['gender5']; 
	
	$result = 0; // результат будет в процентах правильных ответов
	
	/* проверяем первый вопрос */
	if ($capital == "Москва") {
		$result += 25;
	}
	
	/* проверяем второй вопрос */
	if ($happy == "Да") {
		$result += 25;
	}
	
	/* проверяем третий вопрос */
	if ($matematic == "15") {
		$result += 25;
	}
	
	/* Проверяем четвёртый вопрос */
	$subresult = 0; // дополнительная переменная для подсчёта правильности ответов на 4 вопрос
	
		/* если мужское имя выбрано правильно то увеличиваем счётчик */
	if ($hgender1 != '') {
		$subresult++;
	}
	if ($hgender3 != '') {
		$subresult++;
	}
		/* если выбрано женсмкое имя уменьшаем счётчик */
	if ($hgender2 != '') {
		$subresult--;
	}
	if ($hgender4 != '') {
		$subresult--;
	}
	if ($hgender5 != '') {
		$subresult--;
	}
	
	if ($subresult == 2) {
		$result += 25;
	}
	
	echo "<center>Вы прошли тест на <strong>$result%</strong></center>";
?>

Код проверки так же снабжён множеством комментариев, которые смогут помочь вам разобраться.

Проверить работоспособность примера можно тут:

demo

 

Скачать пример тут:

download

 

Комментарии   

+2 # подписчики 08.05.2016 19:41
С каких пор столица России Санкт-Петербург?)
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 10.05.2016 01:13
Цитирую подписчики:
С каких пор столица России Санкт-Петербург?)

Опечатался) или задумка такая была, не помню уже, сейчас исправлю.
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий

Авторизоваться с помощью:

     


Защитный код
Обновить

Поиск по сайту

Топ 10 активных пользователей

  • Имя пользователя Баллы
  • gawk
    44.20
  • hr@proovelab
    15.00
  • ZOMRO
    6.40
  • intuit89
    6.00
  • Varvarka
    4.00
  • Akyla58
    3.00
  • AnnaOl
    3.00
  • dimasik_3557
    3.00
  • ErcardSa
    3.00
  • Galinamuh
    3.00
 

Рекламные ссылки

IHC

Пожертвования

icon donate

Yandex.Money: 410011571748395

Webmoney:

R362907776401 (Рубли)

Z410919458006 (Доллары)

ihc 468x60 1 1

Похожие материалы

Языки программирования сайтов

Приветствую всех посетителей моего сайта. В этой статья я расскажу вам о языках программирования, которые нужны для управления, созданий и разработки своего сайта.

Теги:

css, html, javascript, php, веб

Комментариев: 0 Подробнее
Простая форма обратной связи своими руками.

 В этой статье мы расскажем о том, как сделать простую, работающую форму обратной связи на PHP.

Теги:

php, form, simple, форма, send

Комментариев: 0 Подробнее
Как подключиться к Microsoft SQL Server через PHP

В этой статье мы расскажем о всех тонкостях подключения к MS SQL серверу, для работы с ним через PHP.

Теги:

php, Microsoft, SQL, Server, driver

Комментариев: 0 Подробнее
Как исправить ошибку

В этой статье мы рассмотрим основные причины и решения возникновения ошибки "Невозможно изменить заголовки - т.к. они уже были отправлены"("Cannot modify header information - headers already sent by").

Теги:

php, header, error, setcookie

Комментариев: 0 Подробнее

Последнее с форума

ZOMRO аватар
Домен — это неотъемлемая часть бизнеса, которая также влияет на поисковую систему. Признаки доменно...
Перейти в тему
ZOMRO аватар
На что ориентироваться при выборе хостинга? Функционал и количество ресурсов. Выбираем те параметр...
Перейти в тему
ZOMRO аватар
Красивое имя для сайта или регистрация доменных имен. Заказав у нас услугу хостинга или VDS/VPS, Вы ...
Перейти в тему

Последние статьи

Javascript функции

Функции - одна из основных концепций языка JavaScript. При этом есть кардинальное отличие от многих языков программирования, в JS каждая функция сама по себе является объектом, а соответственно и манипулировать с ней можно разными способами:

Ссылка на телефон

В этой статье мы рассмотрим простой и обычный способ создания ссылки на телефон.

CPA сети 30.01.2017
CPA сети

Сегодня мы подробно рассмотрим тему зарабатка на своих проектах (т.е. это не обязательно сайты) при помощи CPA сетей.