Создание тестовой системы и счетчика посещений страницы средствами CGI и PHP (CGI-модуль и PHP-скрипт психологического теста)

Страницы работы

Содержание работы

Министерство образования и науки РФ

Новосибирский государственный технический университет

Кафедра вычислительной техники

Дисциплина «Инфокоммуникации»

Лабораторная работа №3

«Создание тестовой системы и счетчика посещений страницы средствами CGI и PHP»

Факультет: АВТ

Группа: АМ-510

Студенты: Петричук Е. В.

                   Умрихина Е. В.

Преподаватель: Новицкая Ю.В.

Новосибирск 2009

Задание

Во всех вариантах задания необходимо разработать CGI-модуль и PHP-скрипт.

Вариант 3

CGI. Любой психологический тест и текстовый счетчик посещения страницы.

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

Структура CGI – модуля

Этот модуль состоит из трех исполняемых файлов:

l  test_print.exe ­ стартовая страница психологического теста, в которой частично происходит обработка результатов теста, при помощи тега iframe на странице отображается текстовый счетчик посещения страниц;

l  test_result.exe – страница, отображающая результаты теста;

l  test_visit.exe – текстовый счетчик посещения страниц.

Структура PHP – скрипта

Этот модуль состоит из двух скриптов:

l  test_print.php ­ стартовая страница психологического теста;

l  test_result.php – страница, отображающая результаты теста; при повторном входе пользователя отображается его предыдущий результат, также отображается список качеств в порядке убывания (то есть первый в списке – это наиболее развитое качество).

Обработка результатов

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

Выводы по работе

l  Доступ к переменной окружения в PHP реализован проще, так как внутренние механизмы PHP сами разбивают строку на внутренние переменные.

l  Отладка CGI-модуля чрезвычайно сложная процедура. PHP-скрипты отлаживать гораздо легче.

l  Типы данных в PHP присваиваются автоматически в зависимости от контекста. Механизм доступа к значению переменной похож на язык Bash для Unix. А в языке C типы данных присваиваются «руками».

l  PHP достаточно легок в изучении благодаря схожести синтаксиса с языком C.

Исходные тексты стартовых страниц

CGI-модуль

#include <iostream.h>

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

//Вопросы на тест

char voprosy[49][120] = {

       "Самооценка структуры темперамента",

       ...

       "Бывает, что вы говорите о вещах, в которых не совсем разбираетесь?"};

void print_answer_form(int i)

{

       cout << "<input type = radio name = Answer value = 1 onclick = 'javascript:checking(answer_form_" << i << ");'> да" << endl;

       cout << "<br><input type = radio name = Answer value = 0 onclick = 'javascript:checking(answer_form_" << i << ");'> нет" << endl;

       cout << "</form>" << endl;

}

void print_submit_form()

{

       cout << "<form name = submit_form action = http://localhost/cgi/test_result.exe method = get>" << endl;

       cout << "<input type = hidden name = iskren_hidden>" << endl;

       cout << "<input type = hidden name = extrav_hidden>" << endl;

       cout << "<input type = hidden name = rigid_hidden>" << endl;

       cout << "<input type = hidden name = emo_vozb_hidden>" << endl;

       cout << "<input type = hidden name = temp_reak_hidden>" << endl;

       cout << "<input type = hidden name = aktiv_hidden>" << endl;

       cout << "<input type = submit value = 'Получить результаты теста' onclick = 'javascript:update_submit_form();'>" << endl;

       cout << "</form>" << endl;

}

void print_script()

{

       cout << "<script language = 'javascript'>" << endl;

       cout << "var iskren = 0" << endl;                 //Искренность

       cout << "var extrav = 0" << endl;                 //Экстраверсия

       cout <<       "var rigid = 0" << endl;                   //Ригидность

       cout <<       "var emo_vozb = 0" << endl;                //Эмоциональная возбудимость

       cout << "var temp_reak = 0" << endl;              //Темп реакций

       cout <<       "var activ = 0" << endl;                   //Активность

       cout <<       "var i = 0" << endl;

       cout <<       "var param = 2" << endl;

       //Проверка на искренность

       cout << "function check_iskren(temp_param, i)" << endl;

       cout << "{" << endl;

       cout << "if((temp_param == 1) && ((i == 30) || (i == 36) || (i == 42) || (i == 48)))" << endl;

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

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
59 Kb
Скачали:
0