Программирование с использованием PHP и MySQL в разработке Web-приложений

Часть 1. PHP – основы применения при построении Web-сайтов

Comments

Серия контента:

Этот контент является частью # из серии # статей: Программирование с использованием PHP и MySQL в разработке Web-приложений

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Программирование с использованием PHP и MySQL в разработке Web-приложений

Следите за выходом новых статей этой серии.

PHP – это язык сценариев, который используется на стороне сервера и разработан специально для Web. Он позволяет непосредственно в HTML-страницу внедрять код, выполняемый при каждом ее посещении. При этом программа на PHP интерпретируется Web-сервером, а результат ее работы в виде HTML-странички отображается браузером пользователя.

Начало разработки PHP приходится на 1994 год, и вел ее сначала один программист Расмус Лердорф (Rasmus Lerdorf). С тех пор язык претерпел большие изменения, которые вносились многими талантливыми разработчиками. На сегодняшний день мы имеем дело с его зрелой и широко используемой формой, которая применяется более чем в двадцати миллионах доменов по всему миру, и их число постоянно растет. Более точное число хостов, использующих PHP на сегодняшний день, можно посмотреть на сайте http://www.php.net/usage.php.

PHP – это продукт с открытым исходным кодом. Его можно видоизменять, использовать и свободно распространять.

Сегодня актуальной версией является PHP5, которая характеризуется полной переделкой механизма Zend. Домашняя страница PHP находится по адресу http://www.php.net, а домашняя страница Zend Technologies – http://www.zend.com.

К числу основных преимуществ PHP можно отнести следующие.

  1. Высокая производительность. Система PHP очень эффективна – серверы, использующие PHP, обслуживают около миллиона обращений в день.

    Если применять комбинации взаимодействующих серверов, то производительность становится практически неограниченной. Компанией Zend Technologies проводились многочисленные тесты, результаты которых показали более высокую производительность PHP по сравнению с конкурентами.

  2. Тесная интеграция с разнообразными СУБД. В дополнение к MySQL, можно непосредственно работать с такими СУБД, как PostgreSQL, mSQL, Oracle, dbm, FilePro, Hyperware, Informix, InterBase и Sybase. Начиная с 5-й версии, PHP имеет встроенный SQL-интерфейс для работы с плоскими (двумерными) файлами, а используя стандарт ODBC, можно подключаться к любой СУБД, для которой есть ODBC-драйвер.
  3. Наличие встроенных библиотек. PHP имеет в своем составе большое количество функций, решающих самые разнообразные задачи, связанные с Web. К числу таких возможностей относится генерация «на лету» GIF-изображений, подключение к Web и другим сетевым службам, обработка XML-документов, отправка электронной почты, работа с cookie-наборами и генерация PDF-файлов.
  4. Одним из основных преимуществ PHP является его бесплатность.
  5. Простота освоения. Отличительной особенностью PHP является похожесть его синтаксиса на C и Perl, поскольку он основан на этих языках. Зная их, любой желающий может быстро начать эффективную работу и с PHP.
  6. Объектно-ориентированный подход в программировании. Пятая версия PHP полностью поддерживает все возможности объектно-ориентированного программирования. Поддержка таких основ, как наследование, приватные и защищенные атрибуты и методы, абстрактные классы и методы, интерфейсы, конструкторы и деструкторы очень похожа по духу и синтаксису на их реализацию в Java или C++.
  7. Высокая степень переносимости. PHP очень хорошо работает под управлением множества операционных систем. Сам код можно разрабатывать как в среде свободных UNIX-подобных операционных систем (например, Linux или FreeBSD), так и в коммерческих версиях UNIX. Существуют и реализации PHP для Microsoft Windows.
  8. Для PHP имеется поддержка, правда на коммерческой основе. Компания Zend Technologies финансирует дальнейшее его развитие и осуществляет техническую поддержку, а также разработку проприетарного ПО.

Отличительные черты 5-й версии PHP:

  1. Полная поддержка объектно-ориентированного программирования на основе новой объектной модели;
  2. Использование механизма исключений, обеспечивающего масштабируемую обработку ошибок;
  3. SimpleXML для простой обработки XML-данных;
  4. Улучшение поддержки потоков и добавление поддержки SQLLite;

Взаимодействие клиентов и серверов в Интернет

При обращении к серверу клиент, как правило, просит выполнить некоторый запрос и дать на него ответ. При этом на сервере выполняются различные Web-приложения, соблюдая интерфейсы CGI или HTTP.

Одним из наиболее распространенных применений любого языка серверных сценариев является написание HTML-форм. Рассмотрим пример создания такой формы. Предположим, что гипотетический покупатель через Интернет зашел в универмаг и хочет сделать заказ из нескольких товаров. Сервер предоставляет ему HTML-форму (см. рисунок 1) для заполнения, которая учитывает, что заказывает клиент. Затем данные, введенные в форму, передаются обработчику формы или сценарию, который принимает эти данные, обрабатывает их по определенному алгоритму и выдает ответ заказчику в виде HTML (см. рисунок 2). При этом интерпретатор PHP, выполнив свой код, полностью формирует ответ на чистом HTML. Это означает, что из PHP-кода можно построить чистый HTML-код, допускающий просмотр в любом браузере.

Рисунок 1. Форма заказа
Рисунок 1. Форма заказа
Рисунок 1. Форма заказа
Рисунок 2. Ответ сервера
Рисунок 2. Ответ сервера
Рисунок 2. Ответ сервера

HTML-код Web-формы имеет вид:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" > 
  <title>Универмаг Краснодар</title>
</head>
<body>
<h1>Универмаг Краснодар</h1>
<h2>Результаты заказа</h2>

<form action="php_var.php" method=post>
<table border=1>
<tr bgcolor=#cccccc>
  <td width=150>Товар</td>
  <td width=150>Количество</td>
</tr>
<tr>
  <td>Сыр</td>
  <td align="center"><input type="text" name="tireqty" size= "3" maxlength="3"></td>
</tr>
<tr>
  <td>Растительное масло</td>
  <td align= "center"><input type="text" name="oilqty" size="3" maxlength="3"></td>
</tr>
<tr>
  <td>Майонез</td>
  <td align="center"><input type="text" name="sparkqty" size= "3" maxlength="3"></td>
</tr>
<tr>
  <td>Ваш адрес</td>
  <td align="center"><input type="text" name="address"></td>
</tr>
<tr>
  <td colspan="2" align="center"><input type="submit" value= "Подтвердить заказ"></td>
</tr>
</table>
</form>

</body>
</html>

Здесь в третьей строке задается имя скрипта PHP, который будет заниматься обработкой полученных данных php_var.php. Затем формируется таблица из двух столбцов и нескольких строк с наименованием предлагаемых товаров и полем для ввода адреса клиента. Ниже выводится кнопка «Подтвердить заказ», при нажатии на которую данные формы методом post (см. строку <form action="php_var.php" method=post>) отправляются на сервер, где и подвергаются обработке.

Код PHP-скрипта, обрабатывающего данные HTML-формы, имеет вид:

<?php
//Создаем короткие имена переменных, используя длинную форму записи.

  $tireqty = $HTTP_POST_VARS['tireqty'];
  $oilqty = $HTTP_POST_VARS['oilqty'];
  $sparkqty = $HTTP_POST_VARS['sparkqty'];
  $address = $HTTP_POST_VARS['address'];
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Универмаг Краснодар</title>
</head>
<body>
<h1>Универмаг Краснодар</h1>
<h2>Ваш заказ</h2>

<?php

//вычисляем общее количество товара 
  $totalqty = 0;
  $totalqty = $tireqty + $oilqty + $sparkqty;

// Проверяем на пустой заказ
if ($totalqty == 0)
{
	echo '<font color=red>';
	echo 'Вы ничего не заказали!!!';
	echo '</font>';
	exit;
}
  echo '<p>Результаты Вашего заказа:</p>';
  echo $tireqty . ' - сыра;</br>';
  echo $oilqty . ' - растительного масла;</br>';
  echo $sparkqty . ' - майонеза;</br>';
  echo 'Ваш адрес:  ' . "$address</br>";
  echo 'Ваш заказ: '. "$totalqty</br>";

  $totalamount = 0.00;
  // Расчет итоговой суммы с учетом цен в прайс-листе

  define('TIREPRICE',100); 
  define('OILPRICE',10);
  define('SPARKPRICE',4);

  $totalamount =  $tireqty * TIREPRICE 
    + $oilqty * OILPRICE
    + $sparkqty * SPARKPRICE;
  echo 'Итого: '.number_format($totalamount,3).' руб'.'</br>'; 

  $taxrate = 0.10;  // Местный налог с продаж составляет 10%
  $totalamount = $totalamount * (1 + $taxrate);
  echo 'Всего, включая налог с продаж: '. 
  number_format($totalamount,3).' руб'.'<br>';
  echo "<p>Заказ обработан: "; echo date('H:i, jS F');
  $date = date('H:i, jS F');
  
// открываем файл, указав абсолютный путь /var/www/html/orders/orders.txt 
  @ $fp = fopen("/var/www/html/orders/orders.txt", "a");

flock($fp, 2); // блокируем файл – файл недоступен другим
//Проверяем, открылся ли файл. Если мы вошли внутрь файла, 
то $fp имеет значение //TRUE
if (!$fp)
 {
  echo '<p><strong>Вы не можете сейчас сделать заказ – 
  база данных недоступна!.</strong></p>';
  exit;
 }
//Если файл доступен – идет запись в строку для каждого заказа
$outputstring=$date."\t".$tireqty."tire\t"
.$oilqty."oil\t"
.$sparkqty."spark\t\$".$totalamount."\t".$address."\n";
// записываем данные в файл 
fwrite($fp, $outputstring);

flock($fp, 3); // Снимаем блокировку файла
fclose($fp); // закрываем файл
#echo phpinfo();
?>
</body>
</html>

В начале сценария переменным $tireqty, $oilqty , $sparkqty, $address присваиваются значения, получаемые из HTML-формы. После суммирования общего количества всех заказанных товаров совершается проверка на отсутствие заказа (нажимается кнопка «подтвердить заказ» при пустых полях формы). Если поля не были заполнены, выводится сообщение о том, что вы ничего не заказали. Если значения переменных не нулевые, то выводится результирующая информация о том, чего и сколько было заказано с указанием текущей даты и сколько все это стоит с учетом местного налогообложения. После этого открывается текстовый файл, куда заносится информация (по одному заказу в строку) о сделанных заказах и адресе клиента, которые он указал в форме. До процесса записи в файл он блокируется для исключения возможности одновременной записи и потери информации. После окончания записи блокировка файла снимается, и он закрывается.

Выводы

В первой статье цикла мы рассмотрели только основные моменты, связанные с использованием языка PHP для разработки Web-приложений. Конечно, опытные программисты едва ли узнают из нее что-то новое, но автор надеется, что статья будет полезна начинающим разработчикам. В продолжение цикла мы рассмотрим более сложные вопросы применения PHP.


Ресурсы для скачивания


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=501433
ArticleTitle=Программирование с использованием PHP и MySQL в разработке Web-приложений: Часть 1. PHP – основы применения при построении Web-сайтов
publish-date=07202010