Программирование тестового комплекса

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 14.03.2012
Размер файла 2,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

  • СОДЕРЖАНИЕ
  • ВВЕДЕНИЕ 5
  • 1. ПОСТАНОВКА ЗАДАЧИ 8
  • 2. ОБОСНОВАНИЕ ВЫБРАННЫХ ТЕХНИЧЕСКИХ СРЕДСТВ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ (СИСТЕМНОГО И СРЕДСТВ РАЗРАБОТКИ) 8
  • 3. СТРУКТУРА БАЗЫ ДАННЫХ 11
  • 4. СТРУКТУРА ПРИЛОЖЕНИЯ 13
  • 5. ОПИСАНИЕ ИНТЕРФЕЙСА И ОТЧЕТНЫХ ФОРМ 14
  • 6. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ 17
  • 7. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 18
  • ЗАКЛЮЧЕНИЕ 22
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23
  • ПРИЛОЖЕНИЕ 1. Разработанная анкета 24
  • ПРИЛОЖЕНИЕ 2. Схема базы данных 30
  • ПРИЛОЖЕНИЕ 3. Листинг программных модулей 31
  • ПРИЛОЖЕНИЕ 4. Анкеты контрольного примера 53

ВВЕДЕНИЕ

При использований статического содержимого, созданного на основе чистого HTML, Web-сайт остается статическим. Использование такого языка, как РНР, и такой базы данных, как MySQL, позволяет делать сайты динамическими: настраиваемыми и содержащими информацию, изменяемую в реальном времени.

Современные web-страницы - это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем: поиск информации, продажа продуктов, конференции и т.п. До недавних пор все это реализовалось CGI-скриптами, написанными на Perl. Но оказалось, что CGI-скрипты очень плохо масштабируемы. Каждый новый вызов CGI-скрипта, требует от ядра порождения нового процесса, а это занимает процессорное время и тратит оперативную память. PHP предлагает другой вариант - он работает как часть Web-сервера, и этим самым похож на ASP от Microsoft или ColdFusion от Allaire.

Синтаксис PHP очень похож на синтаксис C или Perl. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению/освобождению памяти. Программы, написанные на PHP, читаются достаточно легко. В отличие от Perl-программ PHP-код легко зрительно прочитать и понять.

РНР -- это серверный язык создания сценариев (или стороны сервера), разработанный специально для Web. В HTML-страницу можно внедрить код РНР, который будет выполняться при каждом ее посещении. Код РНР интерпретируется Web-сервером и генерирует HTML или иной вывод, наблюдаемый посетителем страницы.

РНР -- это продукт с открытым исходным кодом (Open Source). У пользователя имеется доступ к исходному коду. Его можно использовать, изменять и свободно распространять другим пользователям или организациям.

MySQL -- очень быстрая, надежная система управления реляционными базами данных (СУРБД). База данных позволяет эффективно хранить, искать, сортировать и получать данные. Сервер MySQL управляет доступом к данным, позволяя работать с ними одновременно нескольким пользователям, обеспечивает быстрый доступ к данным и гарантирует предоставление доступа только имеющим на это право пользователям. Следовательно, MySQL является многопользовательским, многопотоковым сервером. Он применяет SQL (Structured Query Language -- язык структурированных запросов), используемый по всему миру стандартный язык запросов в базы данных.

В дополнение к своей бесплатности связка PHP-MySQL является кроссплатформенной. Это значит, что вы можете, работая в Windows, разрабатывать приложения, предназначенные для работы под Unix. Кроме того, PHP может работать как внешний CGI-процесс, либо как обычный интерпретатор скриптов, либо как модуль, подключаемый к web - севреру Apache или IIS.

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

Целью работы является разработка инструментального средства для организации пользовательского интерфейса.

Для достижения поставленной задачи в работе ставятся следующие цели:

- Разработка структуры анкеты;

- Разработка структуры хранения данных;

- Разработка структуры приложения;

- Разработка интерфейса пользователя;

- Разработка отчетных форм;

- Написание программного кода приложения.

пользователь интерфейс php анкета тестирование

1. ПОСТАНОВКА ЗАДАЧИ

В этом проекте будет реализовано тестирование профессиональных знаний сотрудников СООО «Мобильные ТелеСистемы». Поскольку сотрудники имеют доступ к корпоративной информационной системе, пройдя процесс аутентификации при входе в систему (введя персональный логин и пароль), то регистрация и аутентификация пользоваелей перед началом тестирования не предусмотрена.

Проект реализует следующие функциональные возможности:

- запись анкетных данных пользователей;

- запись ответов пользователей на предлагаемые вопросы теста;

- проведение оценки знаний пользователей;

- просмотр результатов тестирования.

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

2. ОБОСНОВАНИЕ ВЫБРАННЫХ ТЕХНИЧЕСКИХ СРЕДСТВ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ (СИСТЕМНОГО И СРЕДСТВ РАЗРАБОТКИ)

Для работы данной программы необходим ПК, который бы удовлетворял следующим минимальным требованиям:

1. Процессор Pentium 100.

2. Оперативная память: 32 Mb.

3. SVGA 800х600.

4. Винчестер HDD 1 Gb.

5. Устройство ввода и позиционирования Mouse (стандартная), 2 кнопки.

6. ОС: Windows 95/98/ME/NT/2000/XP

На ПК должен быть обязательно установлен Web-browser (Internet Explore, Opera, Netscape Navigator и т.д.).

SQL символизирует собой Структурированный Язык Запросов. Это язык, который дает вам возможность создавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах.

Мир баз данных становится все более и более единым, что привело

к необходимости создания стандартного языка, который мог бы использоваться, чтобы функционировать в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям знающим один набор команд, использовать их, чтобы создавать, отыскивать, изменять, и передавать информацию независимо от того работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ.

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

PHP - это широко используемый язык программирования общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения Web-разработок и может внедряться в HTML-код. Код PHP отделяется специальными начальным и конечным тегами, которые позволяют процессору PHP определять начало и конец участка HTML-кода, содержащего PHP-скрипт.

Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на сервере. Если бы у вас на сервере был размещен скрипт, подобный вышеприведенному, клиент получил бы только результат выполнения скрипта, причем он не смог бы выяснить, какой именно код выполняется. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.

PHP крайне прост для освоения, но вместе с тем способен удовлетворить запросы профессиональных программистов. Главным образом, область применения PHP сфокусирована на написание скриптов, работающих на стороне сервера; таким образом, PHP способен выполнять всё то, что выполняет любая другая программа CGI, например, обрабатывать данных форм, генерировать динамические страницы или отсылать и принимать cookies. Но PHP способен выполнять и множество других задач.

Реляционная база данных - это тело связанной информации, сохраняемой в двухмерных таблицах. Напоминает адресную или телефонную книгу.

Однако реляционные базы данных редко состоят из одной таблицы. Такая таблица меньше, чем файловая система. Создав несколько таблиц взаимосвязанной информации, вы сможете выполнить более сложные и мощные операции с вашими данными. Мощность базы данных зависит от связи, которую вы можете создать между фрагментами информации, а не от самого фрагмента информации.

Язык SQL достаточно сложен и многогранен. При работе же небольшой фирмы, или базы данных в сети Internet круг задач ограничен. Поэтому была создана небольшая, но очень быстрая и функциональная реляционная СУБД MySQL. Тоесть, как вы уже догадались в MySQL задействован не весь язык SQL, а только необходимая его часть.

Основные преимущества пакета MySQL -это многопоточность, поддержка нескольких одновременных запросов, оптимизация связей с присоединением многих данных за один проход, записи фиксированной и переменной длины, ODBC драйвер в комплекте с исходником, гибкая система привилегий и паролей, до 16 ключей в таблице, каждый ключ может иметь до 15 полей. Также есть поддержка ключевых полей и специальных полей в операторе CREATE, поддержка чисел длинной от 1 до 4, строк переменной длины и меток времени, интерфейс с языками C и perl. Основанная на потоках, быстрая система памяти, утилита проверки и ремонта таблицы, все данные хранятся в формате ISO8859_1. Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках, псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице, все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей. Легкость управления таблицей, включая добавление и удаление ключей и полей.

Преимущества РНР:

* Высокая производительность;

* Наличие интерфейсов ко многим различным системам баз данных;

* Встроенные библиотеки для выполнения многих общих задач, связанных с Web;

* Низкая стоимость;

* Простота изучения и использования;

* Переместимость;

* Доступность исходного кода.

Преимущества MySQL:

· Высокая производительность;

· Низкая стоимость;

· Простота использования;

· Переносимость;

· Возможность выгружать и изменять исходный код.

3. СТРУКТУРА БАЗЫ ДАННЫХ

Созданная нами база данных состоит из двух таблиц:

а) users - содержит информацию о пользователях;

б) answers - содержит информацию об ответах.

Содержание таблицы users:

id - уникальный идентификатор пользователя (int(11) NOT NULL auto_increment).

first_name - имя пользователя (varchar(255) default NULL).

last_name - фамилия пользователя (varchar(255) default NULL).

father_name - отчество пользователя (varchar(255) default NULL).

job_title - наименование должности пользователя (varchar(255) default NULL).

job_time - стаж работы пользователя в компании СООО «МТС» (varchar(255) default NULL).

job_up - заинтересованность пользователя в карьерном росте (tinyint(1) default NULL).

job_compliance - мнение пользователя о соответствии занимаемой должности (varchar(255) default NULL).

Содержание таблицы answers:

id - уникальный идентификатор ответов (int(11) NOT NULL auto_increment).

question_id - указатель на идентификатор вопроса (int(11) default NULL).

answer - ответ пользователя (int(11) default NULL).

user_id - указатель на идентификатор пользователя (int(11) default NULL).

4. СТРУКТУРА ПРИЛОЖЕНИЯ

Размещено на http://www.allbest.ru/

Рис 4.1 Структура Web - приложения.

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

5. ОПИСАНИЕ ИНТЕРФЕЙСА И ОТЧЕТНЫХ ФОРМ

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

Рис 5.1 Главная страница системы тестирования профессиональных знаний сотрудников СООО «Мобильные ТелеСистемы».

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

Рис 5.2 Форма анкетирования пользователей.

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

Рис 5.3 Форма тестирования пользователей.

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

Рис 5.4 Форма отображения результатов тестирования пользователей.

6. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

В файле php_test.sql описаны SQL-операторы для создания базы данных, index.php - главная страница системы. profile.php - сценарий ввода анкетных данных пользователя, test.php - сценарий проверки профессиональных знаний пользователя, results.php - сценарий просмотра результатов тестирования пользователей.

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

7. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

При входе на сайт вы попадаете на главную страницу, где можете перейти к тестированию, нажав на ссылку «Тест», либо просмотреть результаты тестирования других сотрудников, нажав на ссылку «Результаты», если таковые уже есть(Рис.7.1).

Рис 7.1 Главная страница системы тестирования профессиональных знаний сотрудников СООО «Мобильные ТелеСистемы».

При нажатии на ссылку «Тест», вы имеете возможность внести в систему персональные данные, такие, как ФИО, должность, стаж работы, отметить заинтересованность в карьерном росте, самостоятельно оценить свое соответствие занимаемой должности(Рис.7.2). На данной странице необходимо заполнить все данные, чтобы перейти непосредственно к тестированию профессиональных знаний. После внесения всех данных необходимо нажать на кнопку «ОТПРАВИТЬ», чтобы перейти к вопросам тестирования.

Рис 7.2 Анкета пользователя.

После отправки данных анкеты, вы имеете возможность ответить на вопросы тестирования(Рис.7.3). В тестировании профессиональных знаний сотрудников СООО «Мобильные ТелеСистемы» представлено 20 вопросов, вопросы размещены слева, варианты ответов - справа. На один вопрос может быть несколько верных ответов. Вопрос засчитывается в том случае, если учтены все верные ответы. Для того, чтобы ответить на вопрос, необходимо поставить галочку возле ответа.

Рис 7.3 Тестирование пользователя.

Чтобы просмотреть результаты тестирования, необходимо нажать кнопку «отправить» после прохождения тестирования и перейти на вкладку «Результаты». Каждый вопрос тестирования имеет вес в 5 баллов.

Итоговая оценка определяется суммированием верных ответов.

Сотрудник набравший от 0 до 50 баллов получает итоговую оценку - НЕДОПУСТИМЫЙ УРОВЕНЬ.

Сотрудник набравший от 55 до 85 баллов получает итоговую оценку - ТРЕБУЕМЫЙ УРОВЕНЬ.

Сотрудник набравший от 90 до 100 баллов получает итоговую оценку - ЭКСПЕРТНЫЙ УРОВЕНЬ.

Рис 7.4 Результаты тестирования пользователей.

Желаем Вам удачи при прохождении тестирования профессиональных знаний через нашу систему!

ЗАКЛЮЧЕНИЕ

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

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

Данной работе мы рассмотрели такие элементы как:

1) Базовые структуры языка PHP: условия, циклы, процедуры, выражения. Передача параметров между страницами Web-ресурсами: GET и POST методы, проверка и обработка передаваемых переменных.

2) Обработка текста средствами регулярных выражений: шаблоны поиска, проверка правильности данных пользователя средствами регулярных выражений.

3) Объектно-ориентированное программирование средствами PHP: инкапсуляция, наследование.

4) Синтаксис языка SQL: запросы на поиск, обновление, удаление записей, составные запросы к нескольким таблицам.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Букварь по PHP и MySQL. Александр Качанов, Вадим Ткаченко, Андрей Головин Версия 1.1 16.04.2004.

2. Лаура Томсон и Люк Веллинг. Разработка web-приложений на рнр и mysql издание второе Москва - Санкт-Петербург - Киев 2003.

3. PHP. Первые шаги. Действительно легкая смена дизайна. - NAS, Webscript.ru.

4. А.Мазуркевич, Д.Еловой. PHP настольная книга программиста.

5. Колисниченко Д.Н. Самоучитель PHP5. - СПб: Наука и техника. 2004ю 506с.: илл.

6. Аргерих Л. и др. Профессиональное РНР программирование, 2-е издание. - Пер. с англ. - СПб: Символ-Плюс, 2003. - 1048 с., ил.

7. А. Качанов, В. Ткаченко, А. Головин. Букварь по PHP и MySQL. Введение в PHP и MySQL. - Версия 1.1

ПРИЛОЖЕНИЕ 1. Разработанная анкета

Рис. П.1.1 Окно анкетирования

Рис. П.1.2 Окно тестирования

Вопросы тестирования профессиональных знаний:

1. Какие предприятия являются учредителями СООО «Мобильные ТелеСистемы»?

р с белорусской стороны - РУП «Белтелеком»

р с белорусской стороны - УП «Городская телефонная сеть»

р с российской стороны - Общество с ограниченной ответственностью «Мобильные ТелеСистемы»

р с российской стороны - Открытое акционерное общество «Мобильные ТелеСистемы»

2. GSM - это

р система глобального позиционирования

р глобальная система подвижной связи

р группа экспертов подвижной связи

р кодовое разделение каналов

3. Радиус действия (теоритический) базовой станции 900 МГц при котором сохраняется возможность соединения:

р 8-10 км

р 18 км

р 35 км

р в пределах видимости

4. При неправильном вводе 10 раз PUK2 кода:

р заблокируется SIM-карта, необходима ее разблокировка через специальное устройство

р заблокируются функции, связанные с возможностями при использовании PIN2 кода

р полностью заблокируется SIM-карта, необходима ее замена

5. Укажите максимальную скорость передачи данных при использовании технологии EDGE:

р 236,8 Кбит/сек

р 171,2 Кбит/сек

р 384 Кбит/сек

р 238 Кбит/сек

6. Стоимость добавления услуги «Антиопределитель номера» на ТП Pre-Paid?

р 1050 руб. (без учета налогов)

р 2100 руб. (без учета налогов)

р бесплатно

р 4200 руб. (без учета налогов)

7. Договор на предоставление услуг связи при подключении абонента действует:

р в течение одного года. Действие настоящего договора продлевается каждый раз на один год, если ни одна из сторон не заявит о его прекращении не позднее, чем за 15 дней до истечения текущего срока действия настоящего договора

р в течение срока, который оговаривается абонентом при подключении. Действие настоящего договора продлевается каждый раз на срок, оговариваемый абонентом при личном визите в центры продаж и обслуживания МТС

р в течение двух лет, если абонент не укажет в договоре более длительный срок

р бессрочно

8. Детализированный отчет по балансу возможно заказать следующими способами:

р при личном визите в Центры обслуживания МТС

р через Мобильный помощник, через Интернет-помощник

р по звонку в Контактный центр, при личном визите в Центр обслуживания МТС

р по звонку в Контактный центр, через Мобильный помощник, через Интернет-помощник, при личном визите в Центр обслуживания МТС

9. На ТП «Вместе» в блокировке «Аппарат утрачен» списывается:

р не списывается ничего

р списывается 60% от абонентской платы

р списывается 50% от абонентской платы

р списывается 50% от минимальной обязательной платы за трафик

10. Переадресация по условию «Телефон выключен или находиться вне зоны радиопокрытия сети» осужествляется по следующему коду:

р 61

р 21

р 62

р 67

р 004

11. Выберите причины, по еоторым SMS НЕ было доставлено до абонента(укажите все варианты):

р аппарат абонента был занят

р была установлена переадресация по коду 21 (все вызовы)

р память SIM-карты была переполнена

р аппарат абонента был выключен, срок хранения SMS в буфере SMS-центра истек

12. В сети МТС максимальная продолжительность вызова, направенного за пределы РБ, не может превышать:

р 10 мин.

р 20 мин.

р 30 мин.

р 60 мин.

р нет ограничений

13. Абонент МТС находиться в роуминге в г.Москва и звонит в Контактный центр МТС РБ по номеру +375297770890. Данный звонок будет:

р платным

р бесплатным

14. Услугой Конференц-связь можно воспользоваться только при наличии услуги:

р Мобильный офис

р Перевод вызова

р Ожидание/удержание вызова

р Переадресация вызова

15. Где хранятся настройки для корректной отправки SMS-сообщений (номер центра сообщений, формат сообщений)?

р в памяти телефонного аппарата

р в памяти SIM-карты

16. Для получения возможности приема и отправки SMS-сообщений на русском языке необходимо(укажите все правильные варианты):

р отправить пустое SMS-сообщение на номер 777-0000

р отправить сообщение с текстом «RUS» на номер 777-0000

р позвонить на номер 777-0000

р отправить сообщение с текстом «RUS» на номер 0

р позвонить на номер 0

17. стоимость услуги «Получение SMS-сообщений с сайта» составляет:

р добавление услуги 2100 руб. и периодическая плата 1050 руб. в месяц (без учета налогов)

р добавление бесплатно и периодическая плата 2100 руб.месяц (без учета налогов)

р добавление услуги 2100 руб. и периодическая плата 2100 руб.в месяц (без учета налогов)

р услуга добавляется бесплатно и периодической платы не имеет

18. Укажите стоимость одного SMS-сообщения, отправляемого через Интернет-помощник:

р 50 руб. (без учета налогов)

р 84 руб. (без учета налогов)

р 105 руб. (без учета налогов)

р 120 руб. (без учета налогов)

19. При доступе в Интернет с использованием услуги GPRS оплата производиться:

р за весь объем полученных данных

р за весь объем переданных данных

р за весь объем полученных и переданных данных

р из расчета 110 руб. за минуту соединения

20. Какие из нижеперечисленных номеров могут быть изъяты у абонентов ТП «Персона» при изменении тарифного плана в течение 12 месяцев с момента заключения Договора (в случае если абонент воспользовался услугой «Выбор номера» при подключении, укажите все варианты)?

р простой

р внеочередной

р серебряный

р золотой

ПРИЛОЖЕНИЕ 2. Схема базы данных

Таблица П.2.1. answers

answers

id

int(11)

question_id

int(11)

answer

int(11)

user_id

int(11)

Таблица П.2.2. users

users

id

int(11)

first_name

varchar(255)

last_name

varchar(255)

father_name

varchar(255)

job_title

varchar(255)

job_time

varchar(255)

job_up

tinyint(1)

job_compliance

varchar(255)

ПРИЛОЖЕНИЕ 3. Листинг программных модулей

Index.php

<?php

include 'lib/helper.php';

function bodyContent() {

return '<div id="wrapper">

<div id="page">

<div id="content">

<div class="post">

<h1 class="title"><a href="#">Welcome to Our Website!</a></h1>

<div class="entry">

<p><strong>Welcome!</strong> You are in a system of testing your knowledge like a specialist of our company. Have fun with it :)</p></p>

</div>

</div>

</div>

<div style="clear: both;">&nbsp;</div>

</div>

</div>';

}

renderHtml();

?>

profile.php

<?php

include 'lib/mysql.php';

include 'lib/helper.php';

connect();

if(isset($_POST['user']) && !empty($_POST['user']['first_name']) && !empty($_POST['user']['last_name'])

&& !empty($_POST['user']['father_name']) && !empty($_POST['user']['job_title'])

&& !empty($_POST['user']['job_time']) && !empty($_POST['user']['job_compliance'])) {

$query = sprintf("INSERT INTO `users` (`first_name`, `last_name`, `father_name`, `job_title`, `job_time`, `job_up`, `job_compliance`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s');",

mysql_real_escape_string($_POST['user']['first_name']),

mysql_real_escape_string($_POST['user']['last_name']),

mysql_real_escape_string($_POST['user']['father_name']),

mysql_real_escape_string($_POST['user']['job_title']),

mysql_real_escape_string($_POST['user']['job_time']),

mysql_real_escape_string($_POST['user']['job_up']),

mysql_real_escape_string($_POST['user']['job_compliance']));

$result = mysql_query($query);

if($result) {

$query = sprintf("SELECT id FROM users WHERE `first_name` = '%s' AND `last_name` = '%s' AND `father_name` = '%s';",

mysql_real_escape_string($_POST['user']['first_name']),

mysql_real_escape_string($_POST['user']['last_name']),

mysql_real_escape_string($_POST['user']['father_name']));

$result = mysql_query($query);

if($result) {

$user = mysql_fetch_assoc($result);

if(!empty($user)) {

setcookie('user', $user['id'], time()+14*24*60*60);

header('Location: /test.php');

}

}

}

}

function bodyContent() {

return sprintf("<div id=\"wrapper\">

<div id=\"page\">

<div id=\"content\">

<div class=\"post\">

<h1>Вопросы для анкетирования</h1>

<form action=\"/profile.php\" method=\"post\">

<table>

<tr class=\"odd\">

<td class=\"left\"><label for=\"user_first_name\">Ваше имя</label></td>

<td class=\"right\"><input id=\"user_first_name\" name=\"user[first_name]\" type=\"text\" maxlength=\"255\" value=\"%s\"></input></td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"user_last_name\">Ваша фамилия</label></td>

<td class=\"right\"><input id=\"user_last_name\" name=\"user[last_name]\" type=\"text\" maxlength=\"255\" value=\"%s\"></input></td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"user_father_name\">Ваше отчество</label></td>

<td class=\"right\"><input id=\"user_father_name\" name=\"user[father_name]\" type=\"text\" maxlength=\"255\" value=\"%s\"></input></td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"user_job_title\">Ваша должность</label></td>

<td class=\"right\">

<select id=\"user_job_title\" name=\"user[job_title]\">

<option value=\"Стажер\">Стажер</option>

<option value=\"Консультант\">Консультант</option>

<option value=\"Специалист по работе с клиентами\">Специалист по работе с клиентами</option>

<option value=\"Ведущий специалист по работе с клиентами\">Ведущий специалист по работе с клиентами</option>

<option value=\"Руководитель группы\">Руководитель группы</option>

</select>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"user_job_time0\">Как долго Вы работаете в СООО «Мобильные ТелеСистемы»?</label></td>

<td class=\"right\">

<input type=\"radio\" value=\"Менее года\" id=\"user_job_time0\" name=\"user[job_time]\"></input><label for=\"user_job_time0\">Менее года</label><br />

<input type=\"radio\" value=\"Один год\" id=\"user_job_time1\" name=\"user[job_time]\"></input><label for=\"user_job_time1\">Один год</label><br />

<input type=\"radio\" value=\"Два года\" id=\"user_job_time2\" name=\"user[job_time]\"></input><label for=\"user_job_time2\">Два года</label><br />

<input type=\"radio\" value=\"Три года\" id=\"user_job_time3\" name=\"user[job_time]\"></input><label for=\"user_job_time3\">Три года</label><br />

<input type=\"radio\" value=\"Более трех лет\" id=\"user_job_time4\" name=\"user[job_time]\"></input><label for=\"user_job_time4\">Более трех лет</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"user_job_up\">Заинтересованы ли Вы в карьерном росте в СООО «Мобильные ТелеСистемы»?</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"user_job_up\" name=\"user[job_up]\"></input><label for=\"user_job_up\">Да</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"user_job_compliance\">Как Вы считаете, насколько Вы соответствуете занимаемой должности в настоящее время?</label></td>

<td class=\"right\">

<input type=\"radio\" value=\"Полностью соответствую\" id=\"user_job_compliance0\" name=\"user[job_compliance]\"></input><label for=\"user_job_compliance0\">Полностью соответствую</label><br />

<input type=\"radio\" value=\"Претендую на более высокую должность\" id=\"user_job_compliance1\" name=\"user[job_compliance]\"></input><label for=\"user_job_compliance1\">Претендую на более высокую должность</label><br />

<input type=\"radio\" value=\"Не соответствую занимаемой должности\" id=\"user_job_compliance2\" name=\"user[job_compliance]\"></input><label for=\"user_job_compliance2\">Не соответствую занимаемой должности</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"></td>

<td class=\"right\"><input type=\"submit\" value=\"Отправить\"></input></td>

</tr>

</table>

</form>

</div>

</div>

<div style=\"clear: both;\">

</div>

</div>

", $_POST['user']['first_name'], $_POST['user']['last_name'], $_POST['user']['father_name']);

}

renderHtml();

?>

test.php

<?php

include 'lib/mysql.php';

include 'lib/helper.php';

connect();

if(isset($_COOKIE['user'])) {

if(isset($_POST['test'])) {

for($i = 1; $i < 21; $i++) {

if(!empty($_POST['test'][$i])) {

$query = sprintf("INSERT INTO `answers` (`user_id`, `question_id`, `answer`) VALUES ('%d', '%d', '%s');",

mysql_real_escape_string($_COOKIE['user']),

mysql_real_escape_string($i),

mysql_real_escape_string(join('', $_POST['test'][$i])));

$result = mysql_query($query);

}

}

setcookie('user', '', time()-3600);

header('Location: /index.php');

}

} else {

header('Location: /index.php');

}

function bodyContent() {

return "<div id=\"wrapper\">

<div id=\"page\">

<div id=\"content\">

<div class=\"post\">

<h1>Вопросы для тестирования</h1>

<form action=\"/test.php\" method=\"post\">

<table>

<tr class=\"odd\">

<td class=\"left\"><label for=\"test_11\">1. Какие предприятия являются учредителями СООО «Мобильные ТелеСистемы»?</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_11\" name=\"test[1][1]\"></input><label for=\"test_11\">с белорусской стороны - РУП «Белтелеком»</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_12\" name=\"test[1][2]\"></input><label for=\"test_12\">с белорусской стороны - УП «Городская телефонная сеть»</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_13\" name=\"test[1][3]\"></input><label for=\"test_13\">с российской стороны - Общество с ограниченной ответственностью «Мобильные ТелеСистемы»</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_14\" name=\"test[1][4]\"></input><label for=\"test_14\">с российской стороны - Открытое акционерное общество «Мобильные ТелеСистемы»</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_21\">2. GSM - это</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_21\" name=\"test[2][1]\"></input><label for=\"test_21\">система глобального позиционирования</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_22\" name=\"test[2][2]\"></input><label for=\"test_22\">глобальная система подвижной связи</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_23\" name=\"test[2][3]\"></input><label for=\"test_23\">группа экспертов подвижной связи</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_24\" name=\"test[2][4]\"></input><label for=\"test_24\">кодовое разделение каналов</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_31\">3. Радиус действия (теоритический) базовой станции 900 МГц при котором сохраняется возможность соединения:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_31\" name=\"test[3][1]\"></input><label for=\"test_31\">8-10 км</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_32\" name=\"test[3][2]\"></input><label for=\"test_32\">18 км</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_33\" name=\"test[3][3]\"></input><label for=\"test_33\">35 км</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_34\" name=\"test[3][4]\"></input><label for=\"test_34\">в пределах видимости</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_41\">4. При неправильном вводе 10 раз PUK2 кода:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_41\" name=\"test[4][1]\"></input><label for=\"test_41\">заблокируется SIM-карта, необходима ее разблокировка через специальное устройство</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_42\" name=\"test[4][2]\"></input><label for=\"test_42\">заблокируются функции, связанные с возможностями при использовании PIN2 кода</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_43\" name=\"test[4][3]\"></input><label for=\"test_43\">полностью заблокируется SIM-карта, необходима ее замена</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_51\">5. Укажите максимальную скорость передачи данных при использовании технологии EDGE:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_51\" name=\"test[5][1]\"></input><label for=\"test_51\">236,8 Кбит/сек</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_52\" name=\"test[5][2]\"></input><label for=\"test_52\">171,2 Кбит/сек</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_53\" name=\"test[5][3]\"></input><label for=\"test_53\">384 Кбит/сек</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_54\" name=\"test[5][4]\"></input><label for=\"test_54\">238 Кбит/сек</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_61\">6. Стоимость добавления услуги «Антиопределитель номера» на ТП Pre-Paid?</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_61\" name=\"test[6][1]\"></input><label for=\"test_61\">1050 руб. (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_62\" name=\"test[6][2]\"></input><label for=\"test_62\">2100 руб. (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_63\" name=\"test[6][3]\"></input><label for=\"test_63\">бесплатно</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_64\" name=\"test[6][4]\"></input><label for=\"test_64\">4200 руб. (без учета налогов)</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_71\">7. Договор на предоставление услуг связи при подключении абонента действует:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_71\" name=\"test[7][1]\"></input><label for=\"test_71\">в течение одного года. Действие настоящего договора продлевается каждый раз на один год, если ни одна из сторон не заявит о его прекращении не позднее, чем за 15 дней до истечения текущего срока действия настоящего договора</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_72\" name=\"test[7][2]\"></input><label for=\"test_72\">в течение срока, который оговаривается абонентом при подключении. Действие настоящего договора продлевается каждый раз на срок, оговариваемый абонентом при личном визите в центры продаж и обслуживания МТС</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_73\" name=\"test[7][3]\"></input><label for=\"test_73\">в течение двух лет, если абонент не укажет в договоре более длительный срок</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_74\" name=\"test[7][4]\"></input><label for=\"test_74\">бессрочно</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_81\">8. Детализированный отчет по балансу возможно заказать следующими способами:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_81\" name=\"test[8][1]\"></input><label for=\"test_81\">при личном визите в Центры обслуживания МТС</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_82\" name=\"test[8][2]\"></input><label for=\"test_82\">через Мобильный помощник, через Интернет-помощник</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_83\" name=\"test[8][3]\"></input><label for=\"test_83\">по звонку в Контактный центр, при личном визите в Центр обслуживания МТС</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_84\" name=\"test[8][4]\"></input><label for=\"test_84\">по звонку в Контактный центр, через Мобильный помощник, через Интернет-помощник, при личном визите в Центр обслуживания МТС</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_91\">9. На ТП «Вместе» в блокировке «Аппарат утрачен» списывается:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_91\" name=\"test[9][1]\"></input><label for=\"test_91\">не списывается ничего</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_92\" name=\"test[9][2]\"></input><label for=\"test_92\">списывается 60% от абонентской платы</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_93\" name=\"test[9][3]\"></input><label for=\"test_93\">списывается 50% от абонентской платы</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_94\" name=\"test[9][4]\"></input><label for=\"test_94\">списывается 50% от минимальной обязательной платы за трафик/</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_101\">10. Переадресация по условию «Телефон выключен или находиться вне зоны радиопокрытия сети» осужествляется по следующему коду:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_101\" name=\"test[10][1]\"></input><label for=\"test_101\">61</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_102\" name=\"test[10][2]\"></input><label for=\"test_102\">21</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_103\" name=\"test[10][3]\"></input><label for=\"test_103\">62</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_104\" name=\"test[10][4]\"></input><label for=\"test_104\">67</label><br />

<input type=\"checkbox\" value=\"5\" id=\"test_105\" name=\"test[10][5]\"></input><label for=\"test_105\">004</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_111\">11. Выберите причины, по еоторым SMS НЕ было доставлено до абонента(укажите все варианты):</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_111\" name=\"test[11][1]\"></input><label for=\"test_111\">аппарат абонента был занят</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_112\" name=\"test[11][2]\"></input><label for=\"test_112\">была установлена переадресация по коду 21 (все вызовы)</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_113\" name=\"test[11][3]\"></input><label for=\"test_113\">память SIM-карты была переполнена</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_114\" name=\"test[11][4]\"></input><label for=\"test_114\">аппарат абонента был выключен, срок хранения SMS в буфере SMS-центра истек</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_121\">12. В сети МТС максимальная продолжительность вызова, направенного за пределы РБ, не может превышать:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_121\" name=\"test[12][1]\"></input><label for=\"test_121\">10 мин.</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_122\" name=\"test[12][2]\"></input><label for=\"test_122\">20 мин.</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_123\" name=\"test[12][3]\"></input><label for=\"test_123\">30 мин.</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_124\" name=\"test[12][4]\"></input><label for=\"test_124\">60 мин.</label><br />

<input type=\"checkbox\" value=\"5\" id=\"test_125\" name=\"test[12][5]\"></input><label for=\"test_125\">нет ограничений</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_131\">13. Абонент МТС находится в роуминге в г.Москва и звонит в Контактный центр МТС РБ по номеру +375297770890. Данный звонок будет:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_131\" name=\"test[13][1]\"></input><label for=\"test_131\">платным</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_132\" name=\"test[13][2]\"></input><label for=\"test_132\">бесплатным</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_141\">14. Услугой Конференц-связь можно воспользоваться только при наличии услуги:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_141\" name=\"test[14][1]\"></input><label for=\"test_141\">Мобильный офис</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_142\" name=\"test[14][2]\"></input><label for=\"test_142\">Перевод вызова</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_143\" name=\"test[14][3]\"></input><label for=\"test_143\">Ожидание/удержание вызова</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_144\" name=\"test[14][4]\"></input><label for=\"test_144\">Переадресация вызова</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_151\">15. Где хранятся настройки для корректной отправки SMS-сообщений (номер центра сообщений, формат сообщений)?</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_151\" name=\"test[15][1]\"></input><label for=\"test_151\">в памяти телефонного аппарата</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_152\" name=\"test[15][2]\"></input><label for=\"test_152\">в памяти SIM-карты</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_161\">16. Для получения возможности приема и отправки SMS-сообщений на русском языке необходимо(укажите все правильные варианты):</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_161\" name=\"test[16][1]\"></input><label for=\"test_161\">отправить пустое SMS-сообщение на номер 777-0000</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_162\" name=\"test[16][2]\"></input><label for=\"test_162\">отправить сообщение с текстом «RUS» на номер 777-0000</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_163\" name=\"test[16][3]\"></input><label for=\"test_163\">позвонить на номер 777-0000</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_164\" name=\"test[16][4]\"></input><label for=\"test_164\">отправить сообщение с текстом «RUS» на номер 0</label><br />

<input type=\"checkbox\" value=\"5\" id=\"test_165\" name=\"test[16][5]\"></input><label for=\"test_165\">позвонить на номер 0</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_171\">17. стоимость услуги «Получение SMS-сообщений с сайта» составляет:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_171\" name=\"test[17][1]\"></input><label for=\"test_171\">добавление услуги 2100 руб. и периодическая плата 1050 руб. в месяц (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_172\" name=\"test[17][2]\"></input><label for=\"test_172\">добавление бесплатно и периодическая плата 2100 руб.месяц (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_173\" name=\"test[17][3]\"></input><label for=\"test_173\">добавление услуги 2100 руб. и периодическая плата 2100 руб.в месяц (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_174\" name=\"test[17][4]\"></input><label for=\"test_174\">услуга добавляется бесплатно и периодической платы не имеет</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_181\">18. Укажите стоимость одного SMS-сообщения, отправляемого через Интернет-помощник:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_181\" name=\"test[18][1]\"></input><label for=\"test_181\">50 руб. (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_182\" name=\"test[18][2]\"></input><label for=\"test_182\">84 руб. (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_183\" name=\"test[18][3]\"></input><label for=\"test_183\">105 руб. (без учета налогов)</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_184\" name=\"test[18][4]\"></input><label for=\"test_184\">120 руб. (без учета налогов)</label>

</td>

</tr><tr class=\"odd\">

<td class=\"left\"><label for=\"test_191\">19. При доступе в Интернет с использованием услуги GPRS оплата производиться:</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_191\" name=\"test[19][1]\"></input><label for=\"test_191\">за весь объем полученных данных</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_192\" name=\"test[19][2]\"></input><label for=\"test_192\">за весь объем переданных данных</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_193\" name=\"test[19][3]\"></input><label for=\"test_193\">за весь объем полученных и переданных данных</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_194\" name=\"test[19][4]\"></input><label for=\"test_194\">из расчета 110 руб. за минуту соединения</label>

</td>

</tr><tr class=\"even\">

<td class=\"left\"><label for=\"test_201\">20. Какие из нижеперечисленных номеров могут быть изъяты у абонентов ТП «Персона» при изменении тарифного плана в течение 12 месяцев с момента заключения Договора (в случае если абонент воспользовался услугой «Выбор номера» при подключении, укажите все варианты)?</label></td>

<td class=\"right\">

<input type=\"checkbox\" value=\"1\" id=\"test_201\" name=\"test[20][1]\"></input><label for=\"test_201\">простой</label><br />

<input type=\"checkbox\" value=\"2\" id=\"test_202\" name=\"test[20][2]\"></input><label for=\"test_202\">внеочередной</label><br />

<input type=\"checkbox\" value=\"3\" id=\"test_203\" name=\"test[20][3]\"></input><label for=\"test_203\">серебряный</label><br />

<input type=\"checkbox\" value=\"4\" id=\"test_204\" name=\"test[20][4]\"></input><label for=\"test_204\">золотой</label>

</td>

</tr><tr>

<td class=\"left\"></td>

<td class=\"right\"><input type=\"submit\" value=\"Отправить\"></input></td>

</tr>

</table>

</form>

</div>

</div>

<div style=\"clear: both;\">

</div>

</div>

</div>";

}

renderHtml();

?>

results.php

<?php

include 'lib/mysql.php';

include 'lib/helper.php';

connect();

function renderTableRow($user, $result = 0, $row = 0) {

if($row == 0) {

$class = 'even';

} else {

$class = 'odd';

}

if($result < 51) {

$result = 'НЕДОПУСТИМЫЙ УРОВЕНЬ';


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.