Статья
Версия для печати
Обсудить на форуме (4)
Создание динамического веб-сайта, с использованием ПХП(часть первая)


Создание динамического веб-сайта с использованием ПХП (часть первая).

В этой статье я опишу один из способов создания простейшего сайта с использованием скриптового языка программирования PHP. В чём же преимущество этого способа перед обыкновенным созданием статических ХТМЛ страниц? А вот в чём:

ХТМЛ
В ХТМЛ страницах есть много элементов, которые одинаковы на всех страницах. Например, "шапка"(хедер) и низ(футер), а также пункты меню и т.д. Поэтому при увеличении количества статических ХТМЛ страниц, соответственно, в каждой из них нужно копировать повторяющиеся элементы, что затрудняет и увеличивает расход времени на внесение изменений в какой-нибудь из повторяющихся элементов, потому что эти изменения надо вносить во все имеющиеся статические страницы.

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

Для начала сделаем простенький HTML код для того, чтобы продемонстрировать то, что описано выше.
index.html
Код: (HTML)
<html>
<head>
<meta http-equiv="Content type" content="text/html; charset=windows-1251">
<title>::: PHP Site :::</title>
</head>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" bgcolor="#EFEFEF">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr> <td width="100%" align="center" colspan="2">LOGO + BANNER</td> </tr>
<tr>
  <td width="40%" align="center" valign="top">MENU </td>
  <td width="60%" align="center" valign="top">'DATA'</td>
</tr>
<tr> <td width="100%" align="center" valign="middle" colspan="2">FOOTER</td> </tr>
</table>
</body>
</html>

А теперь отделим редко изменяющиеся части дизайна в отдельные PHP файлы :
так как часть "шапка" в нашем случае не изменяется, то и вынесем её в отдельный файл также.
shapka.php
Код: (HTML)
<html>
<head>
<meta http-equiv="Content type" content="text/html; charset=windows-1251">
<title>::: PHP Site :::</title>
</head>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" bgcolor="#EFEFEF">

header.php
Код: (PHP)
<?php
        print "LOGO + BANNER";
?>

menu.php
Код: (PHP)
<?php
        print "MENU";
?>

data.php
Код: (PHP)
<?php
        print "DATA";
?>

footer.php
Код: (PHP)
<?php
        print "FOOTER";
?>

Далее, соответственно, переименуем наш index.html в index.php и перепишем так:
Код: (HTML)
<?php require_once("shapka.php"); ?>
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr> <td width="100%" align="center" colspan="2"><?php require_once("header.php"); ?></td> </tr>
<tr>
  <td width="40%" align="center" valign="top"><?php require_once("menu.php"); ?></td>
  <td width="60%" align="center" valign="top"><?php require_once("data.php"); ?></td>
</tr>
<tr> <td width="100%" align="center" valign="middle" colspan="2"><?php require_once("footer.php"); ?> </td> </tr>
</table>
</body>
</html>

В итоге получаем то, что и требовалось. Если надо изменить какой-то пункт меню, то изменяем его ОДИН раз в файле menu.php, соответственно? то же самое и с другими файлами.

Так в чём же всё-таки динамичность? А вот в чём: теперь, если нам нужно выводить в части DATA различную информацию, то нам не надо заново создавать новый файл с полностью тем же дизайном, что и был. Теперь нас волнует только изменяющаяся часть. Для этого сделаем простенький "движок", который и даст нам "динамичность".

Отредактируем файл menu.php и добавим туда несколько пунктов меню:
menu.php
Код: (HTML)
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <a href="index.php?action=about">О Нас</a>
   </td>
</tr>
<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <a href="index.php?action=contacts">Контакты</a>
   </td>
</tr>
</table>

Поясню запись: index.php?action=contacts. Здесь action и будет нашей переменной, по значению которой мы и будем определять, какие данные выводить в раздел DATA.

Теперь соответственно перепишем файл data.php так, чтобы по нажатию на нужный пункт меню выводились нужные данные :
data.php
Код: (PHP)
<?php
switch($_GET['action']) { //получаем значение переменной action
   case "about" :
      require_once("about.php"); // выводим данные О Нас
   break;
   case "contacts" :
      require_once("contacts.php"); // выводим данные Контакты
   break;
   default : // если значение переменной action не указано, либо её не существует, либо нет искомого значения
      print "Данных нет";
   break;
}
?>

Теперь осталось создать файлы about.php и contacts.php с соответствующими данными.
about.php
Код:
<?php
print 
"Здесь содержатся данные О Нас!";
?>


contacts.php
Код:
<?php
print 
"Здесь содержатся данные Контакты!";
?>


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

P.S. Из-за проблем с HTML кодом я добавил пробел перед открывающей скобкой < и закрывающей > в HTML тегах.

Мороз
Версия для печати
Обсудить на форуме (4)