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

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

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

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

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

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

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

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

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

Факультет: АВТ                                                                                                                             Преподаватель:

Группа: АМ-509, АМ-510                                                                                                                             Новицкая Ю. В.

Студент: Скоморохов Е. Ю.

Плизга В.

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

Задание

Вариант 6

CGI. Проверка знания словарного запаса (англ. или нем. или франц.) и текстовый счетчик посещения страницы.

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

Краткое описание использованных средств

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

  • CGI – Интерфейс общих шлюзов – использовался для обеспечения взаимодействия клиента в Сети с приложениями, написанными на языке C.
  • PHP – скриптовый язык, исполняемый на стороне сервера, - применялся для написания сценариев формирования некоторых страниц и для обработки данных, поступивших с этих страниц на сервер.
  • HTML – Язык разметки гипертекста – играл роль «строительного материала» при формировании страниц разрабатываемого сайта; кроме того, элементы языка HTML использовались для объединения данных от различных серверных скриптов в одном окне браузера.

Исходные тексты

Исходный код основного CGI-модуля (осуществляющего проверку правильности введенных в форму данных):

#include <stdlib.h>

#include <iostream>

#include <string>

#include <vector>

#include <fstream>

using namespace std;

void main(char *_argv[], int argc)

{

      cout<<"Content-type: text/html\n\n";

//    cout<<"\n"<<getenv("QUERY_STRING")<<endl;

      string query = getenv("QUERY_STRING");

      vector<string> subs;

      for (unsigned idx=0, off=0; off <= query.length() && idx != string::npos; off=idx+1)

      {

             idx = query.find("&", off);

             string tmp = query.substr(off, idx-off);

             subs.push_back(tmp);

//           cout<<"Found: "<<tmp<<"<BR>";

      }

      vector<string> res;

      for(unsigned off=0, i=0, idx=0; i<subs.size(); i++)

      {

             idx = subs[i].find("=");

             string tmp = subs[i].substr(idx+1, subs[i].length()-idx);

             res.push_back(tmp);

//           cout<<"Found: "<<tmp<<"<br>";

      }

      bool error=false;

      ifstream fin("answers.txt");

      for(unsigned i=0; !fin.eof() && i<res.size(); i++)

      {

             string ans;

             fin>>ans;

             if (ans != res[i])

{

                   cout<<"Ошибка: Должно быть: "<<ans<<"; Введено: "<<res[i]<<"<br>";

error = true;

             }

      }

      fin.close();

      if (!error)

cout<<"<h1>Все правильно!</h1>";

      else

             cout<<"<h1>Ошибка! Вам нужно потренироваться еще!</h1>";

}

Исходный код счетчика, реализованного с помощью CGI на С:

Исходный код главной HTML-страницы сайта:

Исходный код страницы опроса, работающего через CGI:


Исходный код страницы опроса, работающего с PHP:

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

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

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