Министерство образования и науки Российской Федерации
Новосибирский Государственный Технический Университет
Кафедра Вычислительной техники
Лабораторная работа №3
по дисциплине «Инфокоммуникации»
«Создание тестовой системы и счетчика посещений страницы средствами CGI и PHP»
Факультет: АВТ Преподаватель:
Группа: АМ-509, АМ-510 Новицкая Ю. В.
Студент: Скоморохов Е. Ю.
Плизга В.
Новосибирск 2009
Вариант 6
CGI. Проверка знания словарного запаса (англ. или нем. или франц.) и текстовый счетчик посещения страницы.
PHP. Проверка знания словарного запаса (англ. или нем. или франц.) с записью результатов прохождения теста разными пользователями в файл и вывода результатов в виде диаграммы.
При выполнении работы были задействованы следующие технологии и языки:
Исходный код основного 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:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.