Тест на PHP

Модуль вопрос ответ php

БлогNot. Пишем простой тест на PHP

Пишем простой тест на PHP

  • ‘q’ — отображаемый текст вопроса;
  • ‘t’ — тип вопроса, соответствующий нужному тегу HTML: ‘checkbox’ для галочек «да/нет», ‘text’ для строки или числа в качестве ответа, ‘select’ — для списка, в котором нужно выбрать одно значение из нескольких. Выбор более одного значения реализуем придуманным нами элементом ‘multiselect’ , представляющим из собой группу вместе обрабатываемых checkbox’ов. На самом деле, стандартный список с атрибутом multiple тоже позволяет решить эту задачу, но не хотелось бы загружать пользователя необходимостью помнить, что множественный выбор из списка делается при зажатой клавише Ctrl;
  • ‘a’ — правильный ответ, для checkbox это значение ‘1’ или ‘0’ (нужно ли включать галочку), для text — строка с ответом (длину поля будем генерировать равной длине строки с правильным ответом, так что контроль лишних разделителей и проч. опустим), для select — номер варианта в списке, который является правильным ответом (варианты нумеруются с нуля!), для multiselect — строка из единиц и нулей, разделённых символом » | «, показывающая, какие по порядку чекбоксы нужно включить, а какие не нужно;
  • ‘i’ — элементы списка, нужные только для типов вопроса select и multiselect , значение содержит строки, разделённые символом » | » (элементы списка или варианты утверждений).
Читайте также:  Function declare php для чего

За каждый правильный ответ, в том числе, выбор всех «правильных» чекбоксов в ‘multiselect’, будет начисляться 1 балл, а в конце скрипт выдаст резюме о количестве и проценте правильных ответов.

В отличие от простого конвертера, в этом скрипте мы не ставили задачи сохранить пользовательский ввод, поэтому ссылка «Ещё раз!» на странице с результатами позволяет просто пройти тест повторно, введя все результаты и отметив все чекбоксы заново. Несмотря на это, программке понадобилось 2 дополнительных функции:

  • error_check проверяет, всё ли хорошо с очередным элементом массива $test , и, если что-то не так, завершает выполнение скрипта. Это может пригодиться при отладке;
  • strlwr_ переводит в нижний регистр строки, введённые пользователем в качестве ответов. Предполагается кодировка Windows-1251, но можно, конечно, вставить текст скрипта в файл с другой кодировкой и поменять мета-тег кодировки в заголовке.

Вот полный исходник приложения, содержащий тест всех 4 типов вопросов:

    

Тест на PHP

'Первым космонавтом был Юрий Гагарин','t'=>'checkbox','a'=>'1'), array ('q'=>'Первым президентом РФ был Михаил Горбачёв','t'=>'checkbox','a'=>'0'), array ('q'=>'Сколько уровней прикладных протоколов в стандартной сетевой модели OSI?','t'=>'text','a'=>'7'), array ('q'=>'Жириновский возглавляет партию ','t'=>'select','i'=>'КПРФ|ЛДПР|ЕР','a'=>'1'), array ('q'=>'Выберите верные утверждения','t'=>'multiselect', 'i'=>'2*2=4|Волга впадает в Каспийское море|Луна дальше от Земли, чем Солнце','a'=>'1|1|0') ); if (!empty($_POST['action'])) < //считаем правильные и выводим резюме $ball = 0; foreach ($test as $key=>$val) < switch ($val['t']) < case 'checkbox': if (isset($_POST[$key]) and $val['a']==1 or !isset($_POST[$key]) and $val['a']==0) $ball++; break; case 'text': if (isset($_POST[$key]) and strlwr_($_POST[$key])==strlwr_($val['a'])) $ball++; break; case 'select': if (isset($_POST[$key]) and $_POST[$key]==$val['a']) $ball++; break; case 'multiselect': $i = explode ('|',$val['a']); $cnt = 0; foreach ($i as $number=>$answer) if (isset($_POST[$key.'_'.$number]) and $answer==1 or !isset($_POST[$key.'_'.$number]) and $answer==0) $cnt++; if ($cnt==count($i)) $ball++; break; > > $p = round ($ball/count($test)*100); echo '

Верных ответов: '.$ball.' из '.count($test).', '.$p.'%.

'; echo '

Ещё раз!

'; > else < //предложить форму echo '

Отметьте верные утверждения или введите ответ или выберите верный вариант из списка.

'; $counter = 1; echo ''; foreach ($test as $key=>$val) < error_check ($val); echo ($counter++).'. '; switch ($val['t']) < case 'checkbox': echo $val['q'].' '; break; case 'text': $len = strlen ($val['a']); echo $val['q'].' '; break; case 'select': echo $val['q'].' '; break; case 'multiselect': $i = explode ('|',$val['i']); echo $val['q'].':   '; foreach ($i as $number=>$item) echo $item.'    '; break; > echo '
'; > echo ' '; > function error_check ($q) < $question_types = array ('checkbox', 'text', 'select', 'multiselect'); $error = ''; if (!isset($q['q']) or empty($q['q'])) $error='Нет текста вопроса или он пуст'; else if (!isset($q['t']) or empty($q['t'])) $error='Не указан или пуст тип вопроса'; else if (!in_array($q['t'],$question_types)) $error='Указан неверный тип вопроса'; else if (!isset($q['a']) or empty($q['a']) and $q['a']!='0') $error='Нет текста ответа или он пуст'; else < if ($q['t']=='checkbox' and !($q['a']=='0' or $q['a']=='1')) $error = 'Для переключателя разрешены ответы 0 или 1'; else if ($q['t']=='select' || $q['t']=='multiselect') < if (!isset($q['i']) or empty($q['i'])) $error='Не указаны элементы списка'; else < $i = explode ('|',$q['i']); if (count($i)<2) $error='Нет хотя бы 2 элементов списка вариантов ответа с разделителем |'; foreach ($i as $s) if (strlen($s)<1) < $error = 'Вариант ответа короче 1 символа'; break; >else < if ($q['t']=='select' and !array_key_exists($q['a'],$i)) $error='Ответ не является номером элемента списка'; if ($q['t']=='multiselect' ) < $a = explode ('|',$q['a']); if (count($i)!=count($a)) $error='Число утверждений и ответов не совпадает'; foreach ($a as $s) if ($s!='0' and $s!='1') < $error = 'Утверждение не отмечено как верное или неверное'; break; >> > > > > if (!empty($error)) < echo '

Найдена ошибка теста: '.$error.'

Отладочная информация:

'; print_r ($q); exit; > > function strlwr_($s) < $hi = "ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; $lo = "abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя"; $len = strlen ($s); $d=''; for ($i=0; $ireturn $d; > ?>

Ниже показан вид теста и результат его прохождения.

простой тест на PHP, будет выведен на одной странице, но типы вопросов могут быть разными

простой тест на PHP, будет выведен на одной странице, но типы вопросов могут быть разными

простой тест на PHP, страница с результатами :)

простой тест на PHP, страница с результатами 🙂

05.10.2015, 18:14 [27636 просмотров]

Источник

prowebber.cc — Тут есть все для настоящих вебмастеров

Вы вошли как гость, рекомендуем Вам авторизироваться либо пройти процесс регистрации. Если Вы забыли пароль, то Вы можете его восстановить.

PROWEBBER » Web » Скрипты » AskMe v1.2.1 NULLED — социальная сеть для вопросов и ответов PHP

AskMe v1.2.1 NULLED — социальная сеть для вопросов и ответов PHP

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое. Скачать бесплатно AskMe v1.2.1 NULLED — социальная сеть для вопросов и ответов PHP.

AskMe v1.2.1 NULLED - социальная сеть для вопросов и ответов PHP

Это социальный скрипт вопросов и ответов, AskMe — лучший способ начать свой собственный (клон AskFm)! AskMe работает быстро, надежно.

Загрузить изображения: загрузите любое изображение со своего устройства и поделитесь им в Интернете с другими пользователями.
Высокая производительность и возможности: AskMe может легко обрабатывать любое количество видео / изображений с очень высокой производительностью и скоростью.
Интеграция с WoWonder: одним щелчком мыши пользователь может войти на ваш сайт с помощью социальной сети WoWonder.
Нравится: пользователь может лайкать пользователей на странице поиска совпадений.
Профиль пользователя: пользователь может создать свой собственный профиль и загружать изображения без ограничений.
Оптимизация для SEO: ссылки для SEO и HTML-код, который понравится Google!
Мощная панель администратора: управляйте настройками, видео, дизайном и многим другим с помощью нашей панели администратора.
Мощный интерфейс: красивый и современный дизайн.
Рекламная система: пользователи могут размещать рекламу на сайте, и владелец может получать от этого деньги.
Система продвижения: пользователь может продвигать свои вопросы, заплатив владельцу сайта.

Missing update?
Checkout our NULLED Web Community

Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных

Источник

OpenCart – модуль вопрос-ответ (FAQ)

От автора: приветствую вас, друзья. Итак, мы продолжаем цикл статей, посвященных знакомству с одной из популярнейших CMS для создания интернет-магазинов – OpenCart (Опенкарт). В этой статье мы поговорим о том, как в OpenCart организовать страницу вопросов и ответов. Для этого мы используем специальный модуль вопрос-ответ (FAQ) для Опенкарт.

Итак, в данной статье мы с вами организуем на сайте Опенкарт специальную страницу с ответами на наиболее часто возникающие вопросы. Такая страница есть практически на любом интернет-магазине и в ней освещаются такие моменты, как гарантия, доставка и получение товара, оплата и т.п.

В принципе, такую страницу не сложно реализовать, используя уже готовые возможности движка. Сделать это можно в меню Каталог – Статьи.

Здесь мы можем создать новую статью и в ней в произвольной форме вывести блоки вопрос-ответ. Но также мы можем воспользоваться и модулем, например этим. Скачаем его архив и перейдем в меню Дополнения – Установка дополнений, где и загрузим полученный архив.

Frontend-разработчик

Курс «Frontend-разработчик»

— Научитесь верстать сайты для всех типов устройств.

— Сможете использовать JavaScript для работы в браузере.

— 77 часов теории, 346 часов практики.

— Выполните 5 масштабных проектов для портфолио.

— Помощь с поиском работы или стажировки.

Курс веб-разработчик с нуля

Курс «веб-разработчик с нуля»

— Научитесь программировать на JavaScript и PHP.

— Сможете создавать сайты и веб-приложения.

— Сможете уверенно работать и с фронтендом, и с бэкендом веб-сервисов.

— Выполните 9 масштабных проектов для портфолио

— Помощь с поиском работы или стажировки.

PHP-разработчик с нуля

Курс «PHP-разработчик с нуля»

— Научитесь создавать сайты и веб-приложения на языке PHP.

— Изучите актуальные фреймворки Laravel, Simfony и Yii2.

— 78 часов теории и 361 час практики.

— Вы создадите 5 масштабных проектов для портфолио.

— Помощь с поиском работы или стажировки.

После установки любого модуля не забываем очистить кэш дополнений. Делается это в меню Дополнения – Менеджер дополнений. После этого нужно перейти в меню Система – Пользователи – Группы пользователей и редактировать группу Administrator. На странице редактирования выбранной группы находим и разрешаем просмотр и редактирование модуля extension/module/faq. После сохранения изменений в меню должен появиться новый пункт – FAQ.

Далее устанавливаем и включаем модуль в меню Дополнения – Дополнения.

Осталось перейти в новый пункт меню админки FAQ и начать добавлять вопросы и ответы:

Отлично, список вопросов готов. Теперь мы всегда можем легко управлять им, обновляя существующие вопросы или добавляя новые.

Перейдем в клиентскую часть сайта, в списке страниц должна появиться новая.

Перейдя к новой странице, мы найдем список вопросов и ответов в привычном для покупателей формате аккордеона.

Frontend-разработчик

Курс «Frontend-разработчик»

— Научитесь верстать сайты для всех типов устройств.

— Сможете использовать JavaScript для работы в браузере.

— 77 часов теории, 346 часов практики.

— Выполните 5 масштабных проектов для портфолио.

— Помощь с поиском работы или стажировки.

Курс веб-разработчик с нуля

Курс «веб-разработчик с нуля»

— Научитесь программировать на JavaScript и PHP.

— Сможете создавать сайты и веб-приложения.

— Сможете уверенно работать и с фронтендом, и с бэкендом веб-сервисов.

— Выполните 9 масштабных проектов для портфолио

— Помощь с поиском работы или стажировки.

PHP-разработчик с нуля

Курс «PHP-разработчик с нуля»

— Научитесь создавать сайты и веб-приложения на языке PHP.

— Изучите актуальные фреймворки Laravel, Simfony и Yii2.

— 78 часов теории и 361 час практики.

— Вы создадите 5 масштабных проектов для портфолио.

— Помощь с поиском работы или стажировки.

На этом, пожалуй, остановимся. Больше об OpenCart вы можете узнать из наших бесплатных или платных уроков.

Источник

Оцените статью