Изтаев Ж.Д., Кошкарова М.А.

Южно-Казахстанский Государственный университет, г.Шымкент

 

Применение РНР-технологии в динамических WEB-проектах

 

Введение. HTML-документы обычно описываются на языке HTML (HyperText Markup Language, язык гипертекстовой разметки), ставшем основным языком описания документов в Internet. Язык РНР (Hypertext Preprocessor, гипертекстовый препроцессор) предназначен для создания динамических Web-проектов в Интернете.

Цель данной статьи познакомить пользователя с той частью РНР-технологий, которая связана с созданием интерактивных интерфейсов и предполагается что пользователь знаком с основами WWW, HTML и РНР.

Интерактивый интерфейс. В общем случае, интерактивный интерфейс пользователя представляет собой систему, обеспечивающую взаимодействие пользователя и Web-проекта. Для WWW, интерактивный интерфейс можно определить как последовательность HTML-документов, реализующих интерфейс пользователя.

Можно условно классифицировать принципы построения интерфейса по типу формирования Web-проекта:

·        статический

·        динамический

В первом случае источником интерфейса является HTML-документ, созданный в текстовом редакторе. Следовательно, данный документ остается неизменным в течение использования. Во втором случае источником интерфейса является HTML-документ сгенерированный cgi-модулем. Следовательно, появляется некоторая гибкость в видоизменении интерфейса во время использования.

Задача построения выше названных интерфейсов делится на две части:

·        клиентская 

·        серверная 

Для создания клиентской части необходимо создать HTML-документ, в котором реализован интерфейс с пользователем. В языке HTML это возможно посредством форм. Серверная часть состоит из исполняемого модуля, решающего основные задачи обработки данных поступающих от клиентской части, формирования ответа в формате HTML, и т.д. Такой модуль называется 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 можно скачать с официального сайта разработчиков – www.apache.org.

Основным источником сведений  по РНР является официальный сайт его разработчиков – www.php.net. Именно на этом сайте представлены дистрибутивы различных версий РНР для разных платформ. Также на www.php.net размещаются руководства по РНР на разных языках, а кроме того, списки сайтов, посвященных программированию на РНР.

Для работы с большинством типов баз данных в РНР есть встроенные функции, поэтому достаточно лишь установить на web-сервере программу работы с базой данных. Наиболее часто используется бесплатная МуSOLhttp://www. mysql.com.

Программный пакет «Denwer». Установка Apache, PHP, MySQL из их оригинальных дистрибутивов может стать для вас весьма затруднительной вследствие определенной сложности в настройке этих программ. Но имеется специализированные программные пакеты для установки этих приложений. Наиболее совершенным и самым популярным среди них является проект «Denwer».

«Denwer» – это комплект программ, состоящий из последних версий [1]:

·        Web-сервера Apache;

·        Интерпретатора языка PHP;

·        Интерпретатора языка Perl;

·        СУБД MySQL.

Чтобы превратить ваш компьютер в тестировочную площадку, необходимо загрузить свежую версию «Denwer» с сайта проекта http://www.denwer.ru.

В «Denwer» все эти компоненты избавлены от малоиспользуемых модулей и объединены в единый установочный пакет. Кроме того, в «Denwer» входят PHPMyAdmin (набор сценариев для работы с MySQL) и особые программы для запуска компонентов пакета и их остановки.

Общая схема «Denwer» такова. В той папке, в которую пакет будет установлен, частично воспроизводится структура каталогов операционной системы Unix. На основе именно этой системы построены практически все сервисы хостинга, и разработчики пакета решили максимально точно воспроизвести то окружение, которое имеется на таких сервисах. В эти каталоги и осуществляется установка программных файлов, и там же находится место для размещения сайтов пользователя, тех самых, которые и требуется строить и отлаживать.

Пример: В данном примере будет рассмотрен алгоритм организации на проекте такого интересного сервиса, как отправка бесплатных SMS. Один из способов отправки сообщений через Интернет осуществляется с помощью отсылки письма на e-mail следующего вида: номер@адрес сайта оператора [2].

  На первом этапе разработаем форму, через которую пользователь вводить необходимые данные: имя оператора и номер телефона, а также текст SMS-сообщения. Внешний вид формы можно увидеть на рисунке.

Далее напишем РНР-скрипт, который будет обрабатывать полученные данные.

<html>

<head>

<title> Отправка SMS по Казахстану </title>

</head>

<body>

<form metod=POST action=smskz.php>

<table border=1 align=center>

<tr><td> Оператор </td>

       <td><select name=”operator”>

               <option value=”kcell”> Kcell </option>

               <option value=”beeline”> Beeline </option>

        </select></td></tr>

<tr><td> Номер </td> // номер телефона 7 цифр

       <td><input type=text name=nomer maxlength=7></td></tr>

<tr><td> Текст </td>

        <td><textarea name=smskz cols=40 rows=6></textarea></td></tr>

<tr><td><center><input type=hidden name=action value=true>

        <input type=submit value=”Отправить></center></td></tr>

</table></form>

<p><font color=”#000080”>

<?php

if  (!isset($action) || $action!=true) exit;

if (!isset($operator) || $operator===”” { echo “Не выбран оператор; exit; }

switch($operator) {

case ‘kcell’: $oper=”8701”; $addr=”@sms.kcell.kz”; break;

case ‘beeline’: $oper=”8777”; $addr=”@sms.beeline.kz”; break; }

if  (!isset($nomer) || strlen($nomer)!==7) { echo “номер-?”; exit; }

if  (!isset($oper)) { echo “оператор-?”; exit; }

if  (!isset($smskz) || $smskz==””) { echo “Введите текст”; exit; }

$email=$oper.$nomer.$addr;

mail($email, “”, $smskz;);

echoСообщение отправлено на номер:“ .$oper.$nomer;

$action=false;

?>

</font>

</body>

</html>

 

Литература

 

1.     Орлов А.А. РНР: Полезные приемы. 2-е изд., перераб. и доп. –М.: Телеком, 2006. -272 с.:ил.

2.     Парижский С.М., Литвиненко Н.А. РНР: Теория и практика –К.: МК-Пресс, 2006. -384 с., ил.