Исходный код PHP-сценария для проверки правильности выполнения упражнения:
<html>
<head>
</head>
<body>
<p align= right>Пользователь: <?php echo $_REQUEST["login"] ?></p>
<?php
$answers = fopen("../cgi-bin/answers.txt", "r");
$cnt_err=0;
$cnt_right=0;
for($i=0; isset($_REQUEST['word'.$i]) && !feof($answers); $i++)
{
$ans = fgets($answers);
$ans = trim($ans);
if ($ans != $_REQUEST['word'.$i])
{
$cnt_err++;
echo "Ошибка! Должно быть: $ans, Введено:".$_REQUEST['word'.$i]."<br>";
}
else
{
$cnt_right++;
}
}
if ($cnt_err !=0)
echo "<h1>Ошибки!</h1>";
else
echo "<h1>Все правильно!</h1>";
$stat = fopen("users/".$_REQUEST["login"].".txt", "a");
fputs($stat, date("d.m.y H:i:s")."%".$cnt_right."\n");
fclose($stat);
$stat = fopen("users/".$_REQUEST["login"].".txt", "r");
$tmp = array();
for($i=0; !feof($stat); $i++)
{
$tmp = fgets($stat);
if ($tmp == null)
break;
$m = explode("%", $tmp);
$results[$m[0]] = $m[1];
}
// print_r($results);
// генерация диаграммы с помощью gd2
$img = ImageCreate(650,1800);
$WhiteClr = ImageColorAllocate($img, 255,255,255);
$BlackClr = ImageColorAllocate($img, 0, 0, 0);
$BlueClr = ImageColorAllocate($img, 0, 0, 255);
$FiolerClr = ImageColorAllocate($img, 131, 9, 76);
$i = 0;
foreach($results as $date_x => $cnt_y ){
$y0 = $i*20;
ImageString($img, 5, 0, $y0, $date_x.' - '.$cnt_y[0], $BlackClr);
$x0 = 250;
// print_r($cnt_y);
ImageFilledRectangle($img, $x0, $y0 + 5, $x0 + $cnt_y*30, $y0 + 15, $FiolerClr );
$i++;
}
// сохранение изображения на диске, чтобы можно было заюзать в теге
IMageJPEG($img, "users/".$_REQUEST["login"].".jpg");
ImageDestroy($img)
?>
<center>
<H3><font color=BLUE>Диаграмма успешности прохождения теста</font></H3>
<img src=<?php echo "users/".$_REQUEST["login"].".jpg" ?>>
</center>
</body>
</html>
Пример результата выполнения реализованных сценариев и страниц представлен на следующем рисунке:
В ходе выполнения третьей лабораторной работы мы приобрели навыки разработки Web-приложений с использованием двух наиболее распространенных технологий: CGI и PHP. Нам удалось на личном опыте убедиться в существенной разнице между уровнями сложности разработки этими двумя технологиями. Так, в частности, разбор строковых параметров, поступающих в скрипт из клиентской страницы, представлял отнюдь не тривиальную задачу на языке C даже с использованием библиотеки STL, в то время как в PHP-сценарии эта задача не возникала вовсе, а все переданные параметры могли быть легко получены из встроенных в язык структур данных. Таким образом, можно заключить – язык PHP является превосходным средством разработки нетривиальных Web-приложений, позволяющим максимально быстро и эффективно решать поставленные задачи, не отвлекаясь на тонкости взаимодействия с несетевыми компонентами приложения.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.