Оразов И., Еркеева Ж.Н.
Южно-Казахстанский
государственный университет им. М.Ауезова, Казахстан
Применение CGI-технологии в WEB
программировании
Введение. HTML-документы обычно описываются
на языке HTML (HyperText Janarup Language, язык гипертекстовой разметки), ставшим основным языком описания документов в Internet. Язык РНР (Hypertext Preprocessor, гипертекстовый препроцессор) предназначен для создания динамических Web-проектов в
Интернете.
Цель данной статьи познакомить пользователя с той частью Web-программирования, которая связана с созданием интерактивных интерфейсов. Предполагается,
что пользователь знаком с основами WWW, HTML и РНР.
Интерактивый интерфейс. В общем случае, интерактивный интерфейс пользователя представляет собой
систему, обеспечивающую взаимодействие пользователя и Web-проекта. Для WWW,
интерактивный интерфейс можно определить как последовательность Web-документов, реализующих интерфейс пользователя.
Можно условно классифицировать принципы
построения интерфейса по типу формирования Web-проекта [1]:
·
статический
·
динамический
В первом случае
источником интерфейса является Web-документ,
созданный в текстовом редакторе. Следовательно, данный документ остается
неизменным в течение использования. Во втором случае источником интерфейса является
Web-документ, сгенерированный cgi-модулем. Следовательно,
появляется некоторая гибкость в видоизменении интерфейса во время
использования.
Задача построения выше названных
интерфейсов делится на две части:
·
клиентская
·
серверная
Практически любая задача, решающая
проблему получения данных от клиента, связана с построением интерфейса.
Наиболее интересным является построение интерфейсов к различным базам данных,
доступ к SQL-серверу, получение информации от периферийных устройств, создание
клиентских рабочих мест. Все это возможно посредством CGI-технологии.
CGI (Common Gateway Interface) –
технология, позволяющая запускать на Web-сервере
программы
(серверная часть интерактивного интерфейса),
поддерживаемые этим Web-сервером. Для реализации такой технологии необходимо использовать взаимодействие
WWW-сервера с запускаемыми CGI-модулями.
Если программа, запускаемая на Web-сервере, представлена не двоичным кодом, а текстовым (CGI-скрипт), то для ее
выполнения требуется препроцессор. Препроцессор включается
в состав web-сервера и вызывается им при
необходимости заняться выполнением программного кода. PHP является именно препроцессором, что, собственно, и
видно из его названия.
Web-программирование – разработка любых программных проектов, предназначенных для работы на WWW. В настоящее время под Web-программированием понимают использование в Web-проекте технологий JavaScript для достижения сложных эффектов и создание CGI-приложений.
Все языки
программирования, используемые при разработке Web-проектов, можно разделить на две большие группы. К первой
относится JavaScript, код которого выполняется на клиентской части Web-проекта.
PHP относится ко второй группе – программа на PHP (РНР-скрипт) исполняется на web-сервере. Однако от других CGI-языков PHP очень сильно
отличается в лучшую сторону, прежде всего своей простотой.
Работа с РНР. Язык PHP
обрабатывает данные на сервере. Чтобы проверить работу РНР-скрипта, нужен Web-сервер в Интернете. Эту
проблему можно решить двумя способами. Традиционный путь решения прост – зарегистрировать проект в Интернете на сервере с поддержкой PHP и закачивать туда
обновления РНР-скрипта. Иногда используют режим редактирования в FTP-клиенте. Или другой,
которым мы воспользуемся, установить Web-сервер
(Apache) на компьютере. Он занимает мало места на жестком диске и очень удобен
в использовании (проверять скрипты на своем компьютере и не нужен доступ в Интернет). Последнюю версию сервера Apache можно скачать с официального сайта разработчиков [2].
Основным источником сведений по РНР
является официальный сайт его разработчиков [3]. Именно на этом сайте
представлены дистрибутивы различных версий РНР для разных платформ. Также на сайте
размещаются руководства по РНР на разных
языках, а кроме того, списки сайтов, посвященных программированию на РНР.
Для работы с большинством
типов баз данных в РНР есть встроенные функции, поэтому достаточно лишь
установить на web-сервере программу работы с
базой данных. Наиболее часто используется бесплатная МуSOL [4].
Программный пакет «Denwer». Установка Apache, PHP, MySQL из их оригинальных дистрибутивов может стать для вас
весьма затруднительной вследствие определенной сложности в настройке этих
программ. Но
имеются специализированные программные пакеты для установки этих приложений. Наиболее совершенным и самым популярным среди них
является проект «Denwer».
«Denwer» – это комплект программ,
состоящий из последних версий [5]:
·
Web-сервера Apache;
·
Интерпретатора языка PHP;
·
Интерпретатора языка Perl;
·
СУБД MySQL.
В «Denwer» все эти
компоненты избавлены от малоиспользуемых модулей и объединены в единый установочный
пакет.
Общая схема «Denwer»
такова. В той папке, в которую пакет будет установлен, частично воспроизводится
структура папок
операционной системы Unix. На основе именно этой системы
построены практически все сервисы хостинга, и разработчики пакета решили
максимально точно воспроизвести то окружение, которое имеется на таких
сервисах. В эти папки и осуществляется установка
программных файлов, и там же находится место для размещения сайтов
пользователя, тех самых, которые и требуется строить и отлаживать.
Пример: Рассмотрим пример одного РНР-скрипта для голосования
(опроса общественного мнения). Опросы можно делать на любые темы, например,
узнать мнение посетителей о дизайне Web-проекта.
Проект будет состоять из трех файлов. Это сам скрипт, файл данных с
количеством голосов и файл хранения ip-адреса посетителя, который проголосовал последним. Файл
данных назовем – dayis.dat, а файл для хранения ip-адреса – ip.txt. Оба должны находиться в
текущей папке.
Сначала напишем РНР-скрипт, который будет обрабатывать полученные данные (dayis.рһр).
<html> <!-- dayis.рһр -
Еркеева Жанар Нуртазаевна - - >
<head> <title>
Дауыс беру </title> </head> <body><center>
<?php
$dayis = file ("dayis.dat"); $i
= 0;
$f1 = fopen ("ip.txt", "r") or die ("ip.txt –
файлының ашылуы қате");
$ip = fgets ($f1);
fclose ($f1); if (isset ($janar) && $remote_addr! = $ip)
{$dayis [$janar-1] = 1;
$f1 = fopen ("dayis.dat", "w=") or die ("dayis.dat – файлының ашылуы
қате");
for ($j = 0; $j<5; $j++) {fputs ($f1, $dayis [$j]); if ($j == $janar-1) fputs
($f1,
"\r\n"); }
fclose ($f1);
$f1 = fopen ("ip.txt", "w+") or die ("ip.txt – файлының ашылуы
қате");
fputs ($f1, $remote_addr); fclose ($f1); }
$sum = 0; for
($j = 0; $j<count ($dayis); $j++) {$sum+=$dayis[$j];}
for ($j = 0; $j<count ($dayis); $j++) {$procent [$j] = round (100 *
$dayis[$j] /
$sum), "%";} $j = 0;
?>
Теперь напишем РНР-скрипт для вывода формы и статистики голосования.
<form method=get action="dayis.php">
<table border=1 cellspacing=0 width=200><tr
bgcolor="#ffffff"> <td align=center>
<font color="#0000ff"> <b><br>
Веб-бет
сізге ұнады ма? </td> </tr>
<tr bgcolor="#ffffff"><td><br>
<input type="radio" name="janar" checked value=1> өте ұнады
<?php echo $dayis[$i++]; echo $procent [$j++]; ?> <br>
<input type="radio" name="janar" checked value=2> ұнады
<?php echo $dayis[$i++]; echo $procent [$j++]; ?> <br>
<input type="radio" name="janar" checked value=3> орташа
<?php echo $dayis[$i++]; echo $procent [$j++]; ?> <br>
<input type="radio" name="janar" checked value=4>
ұнаған
жоқ
<?php echo $dayis[$i++]; echo $procent [$j++]; ?> <br>
<input type="radio" name="janar" checked value=5>
білмеймін
<?php echo $dayis[$i++]; echo $procent [$j++]; ?>
</b></font><br>
</td></tr>
</table></form></center></body></html>
Внешний вид формы можно увидеть на рисунке.
Литература
1.
Ибрагимов О.М. Web-бағдарламалауға
кіріспе. Оқу
құралы. -Шымкент: ОҚМУ, 2012. -128 б. ISBN 9965-467-41-2
2.
http://www.apache.org
3.
http://www.php.net
4.
http://www. mysql.com
5.
http://www.denwer.ru