Динамични страници в PHP. PHP. Динамично създаване на страници Създаване на обикновен компонент за показване на страница

В последния урок разбрахме от какви блокове ще се състои шаблонът за пътуване, така че можете да започнете. Нека започнем със създаването на две папки:

изображения - тази папка ще съдържа всички файлове с изображения, използвани за стилизиране на шаблона. защото все още нямаме никакви дизайнерски разработки, тогава хвърлете всеки един графичен файл в тази папка, в противен случай Joomla няма да инсталира шаблона и ще даде грешка, ако папката е празна.

ВНИМАНИЕ: Графиките на съдържанието не могат да се поставят в папката с изображения на шаблона!

css - тази папка ще съдържа файлове с каскадни стилови листове. Като начало, нека поставим в него празен файл template.css, с помощта на който ще се задават различни стилове на дизайн на елементите на сайта.

След това можете да започнете да създавате най-важния файл index.php, който ще определи визуалното местоположение на елементите на сайта и ще каже на Joomla CMS в кой блок да постави различни компоненти и модули. Файлът е комбинация от PHP и HTML.

Винаги използвам само Macromedia Dreamweaver, когато пиша код. Отлична програма, силно я препоръчвам на начинаещи, защото. ако направите грешка, докато работите върху кода, програмата определено ще подчертае вашия джам.

На сайта ще намерите урок за Macromedia Dreamweaver. Ако ще разработвате уебсайтове, тогава тази програма трябва да бъде усвоена, поне на начално ниво, за да редактирате шаблонни кодове без грешки.

Позиционирането на елементи (блокове) на страницата се извършва с помощта на HTML код, по-конкретно ще използваме DIV тагове. Но начинът, по който нашият сайт ще работи на двигателя на Joomla, т.е. ще бъде динамично, ще трябва да използвате и езика PHP. С негова помощ ще определим в кои блокове ще бъдат разположени позициите за показване на модули и как ще се наричат ​​тези позиции, дали блоковете ще се свиват или не. Нека да свържем таблици със стилове от външни файлове, език на съдържанието, да зададем как ще се променя размерът на сайта и т.н.

index.php

Заглавка на файла

Заглавката на файла се състои от няколко части. Първата част от кода на PHP хедъра е да се увери, че файлът няма директен достъп от съображения за сигурност.

< ?php
дефиниран ("_JEXEC" ) или умрете;
JHtml::_("behavior.framework" , true );
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> xml версия="1.0" кодиране=" < ?php echo $това-> _charset ?> "?>

DOCTYPE е много важен параметър, въз основа на който браузърът решава как да покаже тази страница и как да интерпретира CSS.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: // www.w3.org/ TR/ xhtml1/ DTD/ xhtml1-strict.dtd">

Следният фрагмент извлича инсталирания език от глобалната конфигурация.

< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang=" < ?php echo $това->език; ?>" lang=" < ?php echo $това->език; ?>"директория=" < ?php echo $това-> посока; ?>" >

Следното е кодов фрагмент, който включва допълнителна информация за заглавката, която е зададена в глобалната конфигурация. Можете да видите тази информация, като погледнете изходния код на всяка уеб страница. По-специално, това са мета таговете, за които вече знаете.

< head>
< jdoc:include type= "head" / >

Следващите редове в заглавката съдържат връзки към основните CSS стилове на Joomla.

< link rel= "stylesheet" href= "< ?php echo $това-> baseurl ?> /templates/system/css/system.css"тип = "текст /css" / >
< link rel= "stylesheet" href= "< ?php echo $това-> baseurl ?> /templates/system/css/general.css"тип = "текст /css" / >

За да използваме стиловете за дизайн на шаблона, правим връзка към файла, съдържащ каскадните стилови таблици template.css, който се намира в папката CSS. Няма значение, че този файл все още е празен, основното е да го свържете, ще се занимаваме с дизайна по-късно, когато инсталираме шаблона на Joomla. Така по-лесно ще видите резултата.

< link rel= "stylesheet" href= "< ?php echo $това-> baseurl ?> /шаблони/< ?php echo $това-> шаблон ?> / css/ template.css"тип = "текст /css" / >

Следният кодов фрагмент ни позволява да свием лявата или дясната колона, ако няма модули в позициите „лява“ и „дясна“. Ако и двете колони са свити, тогава съдържанието заема 100% от ширината на страницата. Ако е включена само една колона, съдържанието заема 80%. С включени две колони съдържанието представлява 60% от ширината на страницата.

< ?php
ако ($ това-> countModules("left and right" ) == 0) $contentwidth = "100" ;
ако ($ това-> countModules("left or right" ) == 1) $contentwidth = "80" ;
ако ($ това-> countModules("left and right" ) == 1) $contentwidth = "60" ;
?>

Затваряне на заглавката

< / head>

< body>

Блокът „страница“ съдържа дизайна само на страницата на сайта, той ще бъде с ширина 950px.

< div id= "page" >

Блокът "top" се намира в най-горната част на страницата и съдържа два блока "logo" и "user1".

< div id= "top" >

В "логото" bokeh ще поставим графичния файл на логото, това ще бъде записано в таблиците със стилове. Но ние записваме автоматичното извеждане на името на сайта във файла index.php, а името се поставя в тага H1, което е много важно за оптимизацията на търсачките.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("име на сайт") ; ?>< / h1>
< / div>

Нека дефинираме позицията "user1" в едноименния блок, за да покажем модула за търсене в сайта.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

Извеждане на хоризонталния модул на менюто в блок "user2" на позиция "user2". Блокът ще се свие, ако на тази позиция няма модул.

< ?php if ($това-> countModules("user2") ) : ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Следва блокът на заглавката на сайта „заглавка“. В него ще дефинираме позицията "header" за изхода на модулите. Блокът ще се свие, ако на тази позиция няма модул. Умишлено разширих възможностите на този блок, за да мога да поставя в него не само заглавното изображение, но и ротатори на изображения.

< ?php if ($това-> countModules(" заглавка") ) : ?>
< div id= "заглавка">
< jdoc:include type= "modules" name= "заглавка" style="xhtml" />
< / div>
< ?php endif ; ?>

В блока "user3" дефинирайте позицията "user3" за показване на модули.

Блокът ще се свие, ако на тази позиция "user3" не се показва модул.

< ?php if ($това-> countModules("user3") ) : ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Отваря се блокът на лявата колона, който ще се свие, ако няма модул в позиция „лява“.

< ?php if ($това-> countModules("left" ) ) : ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Отваря се най-важният блок от съдържание, който може да заема 100% от ширината на страницата, 80% и 60%, в зависимост от броя на включените колони.

< div id= "content< ?php echo $contentwidth ; ?> " >

Показване на съобщения в компоненти

< jdoc:include type= "message" / >

Изход на съдържание.

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

Отваря се блокът на дясната колона, който ще се свие, ако няма модул в „дясна“ позиция.

< ?php if ($това-> countModules("right") ) : ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Изход на блока "footer", предназначен да показва модула "HTML код" с информация за авторските права. Тук можете да поставите и долно хоризонтално меню или модул за представяне на съдържание. Блокът ще се свие, ако повече от един модул не е показан в тази позиция на "долния колонтитул"

< ?php if ($това-> countModules("footer") ) : ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Блокът на страницата на сайта „страница“, тялото и целият код са затворени.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

Създадохме пълен файл index.php. Сега знаете с какви команди и в какъв ред се показват шаблонните блокове.

ВНИМАНИЕ: За да може кодът на шаблона да бъде прочетен от административния панел на joomla, файлът index.php трябва да бъде отворен в редактора на AkelPad и записан в UTF-8 кодировка, като същевременно премахнете отметката от BOM. Ако сте използвали програмата Macromedia Dreamweaver за работа с файла, тогава трябва да изберете „Редактиране“ > „Свойства на страницата“ в менюто за връщане и да изберете кодирането на документа Unicode (utf-8), като премахнете отметката от „разрешаване на подписи Unicode (BOM) )". Все пак горещо ви съветвам да не редактирате кода от админ панела на Joomla, ако объркате нещо - няма връщане назад, за разлика от програмата Macromedia Dreamweaver, където винаги можете да отмените направените промени.

Самият дизайн на блоковете ще бъде описан в template.css. Но ние ще персонализираме таблиците със стилове, след като инсталираме шаблона на Joomla 3 (joomla 2.5), и за това трябва да създадете

Много читатели във всяка книга за компютри ще прегледат набързо всичко, което не представлява непосредствен интерес, и ще продължат към това, което наистина искамзная. Лично аз правя точно това. Въпреки това няма от какво да се притеснявате - рядко има технически книги, които трябва да бъдат прочетени от кора до кора. Или може би сте направили точно това - пропуснали сте осемте начални глави и сте се заели с тази глава, защото имаше най-интересното заглавие? И кой иска да губи време за подробности, когато друг проект гори по време на работа?

За щастие, тази бързина няма да ви попречи да овладеете втората част на книгата, която е за използването на PHP за създаване на уебсайтове и взаимодействие с мрежата. В тази глава ще научите как лесно да променяте съдържанието на уеб страници и да навигирате в мрежата, като използвате връзки и различни стандартни функции. Следващата глава ще допълни представения материал - тя разглежда подробно средствата за взаимодействие с потребителя в HTML форми.Глава 11 описва организацията на интерфейса с бази данни. Останалите глави в Част 2 обхващат нетривиалните аспекти на уеб програмирането в PHP.

Все пак трябва да се помни, че материалът на част 1 абсолютно необходимоза нормални познания по PHP. Предполага се, че сте прочели първата част, така че примерите ще използват много от концепциите, разгледани по-рано. Така че, ако сте прегледали част от книгата, ще трябва да се връщате към предишните глави от време на време и да наваксвате.

Прости връзки

<а href = "date.php">

$link = "date.php";

печат"<а href = \"$link\">Вижте днешната дата
\н"

Може би се чудите защо има обратна наклонена черта (\) преди кавичките (") в кода на връзката? Това е така, защото кавичките са специални знаци в PHP и се използват като разделители на низове. Следователно кавичките са буквални низове в низове. трябва да бъдат защитени .

Ако необходимостта да избягвате кавички ви дразни, просто включете режима magic_quotes_gpc във вашия файл php.ini. Резултатът е всички апострофи, кавички, обратни наклонени черти и нулеви знаци. се екранират автоматично в текста!

Нека развием дадения пример. За бързо показване на списък с връзки в браузъра можете да използвате масив:

// Създаване на масив от секции

$contents - array("уроци", "статии", "скриптове", "контакт");

// Преминаване и извеждане на всеки елемент от масива последователно

за ($i = 0; $i< sizeof($contents; $i++)

печат" ".$съдържание[$i]."
\н";

// - специално обозначение на маркерна точка endfor;

Файлови компоненти (шаблони)

Стигнахме до една от любимите ми функции на PHP. Шаблонът (приложен към уеб програмирането) е част от уеб документ, който ще използвате в няколко страници. Шаблоните, подобно на PHP функциите, ви спестяват досадното копиране/поставяне на фрагменти от съдържанието на страницата и програмния код. С увеличаването на мащаба на сайта нараства и значението на шаблоните, тъй като те ви позволяват лесно и бързо да правите модификации на ниво целия сайт. Този раздел ще опише някои от възможностите, които се отварят при използване на най-простите шаблони.

Обикновено общи части от съдържание/код (т.е. шаблони) се съхраняват в отделни файлове. Когато създавате уеб документ, вие просто "включвате" тези файлове на подходящите места на страницата. PHP има две функции за това: include() и require().

включвам() и изисквам()

Един от най-забележителните аспекти на PHP е способността да се създават шаблони и програмни библиотеки и след това да се вмъкват в нови скриптове. Използването на библиотеки спестява време и усилия за използване на обща функционалност в различни уебсайтове. Читателите с

опит в програмирането на други езици (напр. C, C++ или Java), запознаване с концепцията за функционални библиотеки и тяхното използване в програми за разширяване на функционалността.

Включването на един или повече файлове в скрипт се извършва с помощта на стандартните функции PHP require() и include(). Както ще бъде показано в следващия раздел, всяка от тези функции се използва в конкретна ситуация.

Функции

PHP има четири функции за включване на файлове в PHP скриптове:

  • включвам();
  • включване_веднъж();
  • изисквам();
  • изисквам_веднъж().

Въпреки сходството на имената, тези функции изпълняват различни задачи.

Функцията include() включва съдържанието на файл в скрипт. Синтаксисът на функцията include() е:

включване (файл файл]

Функцията include() има една интересна особеност – може да се изпълнява условно. Например, ако извикване на функция е включено в блок на оператор if. тогава файлът се включва в програмата само ако условието i f е вярно. Ако функцията includeO се използва в условна команда, тогава тя трябва дада бъдат оградени във фигурни скоби или алтернативни разделители. Сравнете разликите в синтаксиса в списъци 9.1 и 9.2.

Листинг 9.1. Неправилно използване на include()

ако (някое_условно)

включва ("text91a.txt"); друго

включва ("text91b.txt");

Списък 9.2. Правилно използване на include()

ако (някое_условно) :

включва ("text91a.txt");

включва ("text91b.txt");

Целият PHP код във файла за включване Задължителное в PHP тагове. Не предполагайте, че простото съхраняване на PHP команда във файл ще гарантира, че тя се обработва правилно:

Вместо това трябва да оградите командата в съответните тагове, както е показано в следния пример:

print "това е невалиден включен файл";

Функцията include_once() прави същото като include(), с едно изключение: тя проверява дали файлът вече е бил включен, преди да бъде включен в програмата. Ако файлът вече е включен, извикването include_once() се игнорира, а ако не, файлът се включва по подразбиране. Във всички други отношения, include_once() не се различава от include(). Синтаксисът на функцията include_once() е:

include_once (файл файл)

Като цяло функцията require() е подобна на include() -- тя също включва шаблона във файла, съдържащ извикването на require(). Синтаксисът на функцията require() е:

изисквам (файл файл)

Има обаче една важна разлика между функциите require() и include(). Файлът, указан от параметъра require() е включен в скрипта, независимо от местоположението на require() в скрипта. Например, ако извикате requirere() в if блок с невярно условие, файлът пак ще бъде включен в скрипта!

В много ситуации е удобно да създадете файл с променливи и друга информация, която се използва в целия сайт, и след това да го включите, ако е необходимо. Въпреки че името на този файл е произволно, аз обикновено го наричам init.tpl (съкратено от "initializaion.template"). Листинг 9.3 показва как изглежда един много прост файл init.tpl. В листинг 9-4 съдържанието на init.tpl е включено в скрипта с командата require().

Списък 9.3. Примерен файл за инициализация

$site_title = "PHP рецепти";!}

$contact_email = " [имейл защитен]";

$contact_name = "WJ Gilmore";

Списък 9.4. Използване на файла init.tpl

<? print $site_title; ?>

\"mai1 to:$contact_email\">$contact_name."; ?>

Предаването на URL при извикване на require() е разрешено само ако е активиран режимът „URL fopen wrappers“ (този режим е активиран по подразбиране).

С увеличаването на размера на сайта може да се случи някои файлове да бъдат включени в скрипта повече от веднъж. Понякога това не създава проблеми, но в някои случаи повторното активиране на файла нулира променените променливи. Ако функциите са дефинирани във включен файл, могат да възникнат конфликти на имена. С това казано, стигаме до следващата функция, require_once().

Функцията require_once() гарантира, че файлът ще бъде включен в скрипта само веднъж. След извикване на requi re_onse(), всички следващи опити за включване на същия файл се игнорират. Синтаксисът на функцията require_onse() е:

Вероятно ще използвате функцията за включване на файл по-често, тъй като вашите уеб приложения нарастват по размер. Тези функции често се използват в примерите в тази книга за намаляване на излишъка на кода. Първите примери се обсъждат в следващия раздел за принципите на изграждане на основни шаблони.

Строителни компоненти

Когато определям структурата на типична уеб страница, обикновено я разделям на три части: горен колонтитул, основен текст и долен колонтитул. Обикновено повечето добре организирани уебсайтове ще имат заглавие, което не се променя много; основната част показва исканото съдържание на сайта, така че то се променя често; И накрая, долният колонтитул съдържа информация за авторските права и връзки за навигация. Долният колонтитул, подобно на горния колонтитул, обикновено остава непроменен. Не ме разбирайте погрешно - изобщо не се опитвам да потисна креативността ви. Виждал съм много страхотни сайтове, които не следват тези принципи. Просто се опитвам да измисля обща структура, която може да послужи като отправна точка за по-нататъшна работа.

заглавка

Заглавен файл (като този в листинг 9.5) присъства в почти всеки един от моите уебсайтове с активиран PHP. Този файл съдържа

информация за целия сайт, като заглавие, информация за контакт и определени компоненти на кода на HTML страницата.

Списък 9.5. Пример за заглавен файл

// Файл: header.tpl

// Цел: Заглавен файл за сайта PhpRecipes.

$site_name = "PHPRecipes";

$site_email=" [имейл защитен]";

$site_path = "http://localhost/phprecipes";

<? print $site_name; ?>

// Показване на текущата дата и час

печат на дата ("F d, h:i a");

Често срещано е посетителите да ограничават достъпа до включени файлове, особено ако файловете съдържат чувствителна информация (като пароли). В Apache можете да предотвратите преглеждането на определени файлове, като редактирате файловете http.conf или htaccess. Следният пример показва как да деактивирате прегледа на всички .tpl файлове:

ред разреши, откажи

Разрешаване от 127.0.0.1

Въпросите, свързани със сигурността на PHP и сайта, са разгледани подробно в Глава 16.

Текущо заглавие

Хедър (футър) обикновено се нарича информацията, разположена в долната част на страниците на сайта – данни за контакт, връзки и информация за авторски права. Тази информация може да бъде поставена в отделен файл и включена като шаблон по същия начин като заглавката. Да кажем, че с настъпването на новата година трябваше да промените информацията за авторските права и да я пренесете във формуляра „Авторско право © 2000-2001“. Има два начина: прекарайте Бъдни вечер в трескаво редактиране на стотици статични страници илиизползвайте шаблон като този в листинг 9.6. Една проста промяна и можете да се върнете към празничните задължения.

Списък 9.6.Пример за файл с долен колонтитул (footer.tpl)

контакт |

вашата поверителност

Обърнете внимание на използването на глобалната променлива $site_email в долния колонтитул. Стойността на тази променлива е за цялата страница и предполагаме, че файловете header.tpl и footer.tpl ще бъдат включени в една и съща крайна страница. Също така обърнете внимание на наличието на $site_path във връзката за поверителност. Винаги включвам пълните пътища до всички връзки в моите шаблони - ако URL адресът на връзката се състои от едно име privacy.php, тогава файлът с долния колонтитул ще бъде твърдо кодиран в конкретна директория.

Главна част

Съдържанието на горния и долния колонтитул е включено в основната част на страницата. По същество това е основната част, която съдържа информацията, която представлява интерес за посетителите на сайта. Хедърът изглежда ефектно, долният колонтитул съдържа полезна информация, но за основната част от страницата потребителите се връщат на сайта отново и отново. Въпреки че не мога да дам съвет относно конкретната структура на страницата, шаблони като този в листинг 9-7 правят администрирането на страницата много по-лесно.

Списък 9.7. Пример за основното тяло на страницата (index_body.tpl)

/tutorials.php">уроци

статии

скриптове

контакт

Добре дошли в PHPRecipes. началното място за PHP скриптове, уроци,

и информация за гурме готвенето!

Събираме всичко заедно: горен колонтитул, долен колонтитул и основен текст

Може би настроението ми е най-добре изразено от полковник "Ханибал" Смит (Джордж Пепард) от прочутия сериал A-Team: "Обичам, когато всичко си идва на мястото." Изпитвам нещо подобно, когато различни шаблони се комбинират, за да образуват пълен уеб документ. Като комбинирате три раздела на документа: header.tpl, index_body.tpl и footer.tpl, можете бързо да създадете проста страница като тази в листинг 9-8.

Списък 9.8. Изграждане на страницата index.php чрез включване на няколко файла

// Файл: index.php

// Дестинация: начална страница на PHPRecipes

// Показване на заглавие

включва ("header.tpl");

// Основно тяло на изхода

включва ("индекс_тяло.tpl");

// Изходен колонтитул

включва ("долен колонтитул.tpl");

Е, как? Три прости команди - и имате завършена страница пред вас. Текстът на страницата с резюме е показан в листинг 9.9.

Списък 9.9. HTML страницата, изградена в листинг 9-8 (index.php)

PHPRecipes

23 август, 15:17 ч

уроци

статии

скриптове

контакт

Добре дошли в PHPRecipes, началното място за PHP скриптове, уроци,

и гурме готварски съвети и рецепти!

Copyright 2000 PHPRecipes. Всички права запазени.

контакт |

вашата поверителност

На фиг. Фигура 9-1 показва как изглежда получената страница в браузъра. Въпреки че обикновено не използвам граници на таблици, този път ги включих, така че трите части на страницата да се открояват по-ясно на фигурата.

Ориз. 9.1. Външният вид на страницата, изградена в листинг 9.8

Оптимизация на шаблони

Във втория (според мен по-предпочитан) вариант шаблоните са направени под формата на функции, разположени в отделен файл. Това осигурява допълнително структуриране на вашите шаблони. Наричам този файл файл за инициализация и съхранявам друга полезна информация в него. Тъй като вече разгледахме сравнително дългите примери за горен и долен колонтитул, листинги 9-10 и 9-11 бяха леко съкратени, за да илюстрират новата идея.

Листинг 9.10. Оптимизиран шаблон за сайт (site_init.tpl)

// Файл: site_init.tpl

// Предназначение: Файл за инициализиране на PhpRecipes

$site_name = "PHPRecipes";

$site_email = " [имейл защитен]";

$site_path = "http://localhost/phprecipes/";

функция show_header($site_name) (

<? print $site_name: ?>

Това е заглавката

функция показване на долен колонтитул()

Това е долният колонтитул

Списък 9.11. Прилагане на инициализиращ файл

// Включете файл за инициализация

включва ("site_init.tpl");

// Показване на заглавие

показване на заглавка ($site_name);

// Съдържание на тялото Това е информация за тялото

// Показване на долен колонтитул Show_footer();

Проект: генератор на страници

Въпреки че повечето уебсайтове, които съм създал, са генерирали основното съдържание на страниците въз основа на информация, прочетена от базата данни, винаги ще има няколко страници, които почти не се променят. По-специално, те могат да показват информация за екипа за разработка, информация за контакт, реклами и т.н. Обикновено съхранявам тази „статична“ информация в отделна папка и използвам PHP скрипт, за да я заредя, когато бъде поискано. Разбира се, имате въпрос - ако това е статична информация, за какво е PHP скриптът? Защо не заредите нормални HTML страници? Предимството на PHP е, че можете да използвате шаблони и да вмъквате статични фрагменти, ако е необходимо.

<а href = "/static.php?content=$content">Име на статична страница

Нека започнем със създаването на статични страници. За простота ще се огранича до три страници, съдържащи информация за сайта (списък 9.12), реклама (списък 9.13) и информация за контакт (списък 9.14).

Листинг 9.12. Информация за сайта (about.html)

Относно PHPRecipes

Кой програмист не смесва целонощно програмиране с гурме бисквитки. Тук, в PHPRecipes, почти не минава вечер, без някой от нашите програмисти да смеси малко HTML с вкусна чиния с гъби Портобело или дори фондю. Затова решихме да ви предложим най-доброто от това, което обичаме най-много: PHP и храна!

Точно така, читатели. Уроци, скриптове, суфлета и други. 0самов PHPRecipes.

Рекламна информация

Независимо дали идват, за да научат най-новите PHP техники или за да освежат как

за печене на пиле, можете да се обзаложите, че нашите читатели вземат решения. Те са индустрията

професионалисти, които вземат решения за това какво купува тяхната компания.

За рекламна информация, свържете се с

">[имейл защитен].

Листинг 9.14. Данни за контакт (contact.html)

Свържете се с нас

Имате ли съвет за кодиране?

Знаете ли идеалния топинг за захаросан ямс?

Информирай ни! Свържете се с екипа на [имейл защитен].

Нека да преминем към изграждането на страницата static.php, която показва исканата статична информация. Този файл (вижте листинг 9-15) включва компонентите на страницата на нашия сайт и файла за инициализация site_init.tpl.

Листинг 9.15. Общ изход на статични страници (static.php)

// Файл: static.php

// Цел: Показване на заявени статични страници.

// ПРЕДУПРЕЖДЕНИЕ: предполага се, че файлът "site_init.tpl" и всички

// статичните файлове са в същата директория.

// Зареждане на функции и променливи include("site_init.tpl"):

// Показване на заглавие show_header($site_name);

// Показване на исканото съдържание include("$content.html"):

// Показване на долен колонтитул show footer();

Сега всичко е готово за изграждане на основния скрипт. Просто включете в страницата

<а href = "static.php?content=about">Статично име на страница

Рекламна информация

Свържете се с нас

Щракването върху някоя от тези връзки ще зареди съответната статична страница, вградена в static.php в браузъра!

Резултати

В тази глава научихте за основната цел, която PHP е проектиран да решава: динамично изграждане на уеб страници. Бяха разгледани следните въпроси:

  • URL обработка;
  • изграждане на динамично съдържание;
  • включване и изграждане на основни шаблони.

Главата завършва с генератор на страници, програма, която зарежда статични страници в шаблон и улеснява поддържането на голям брой статични HTML страници.

Следващата глава е за използването на PHP в комбинация с HTML форми за значително подобряване на интерактивността на вашия сайт. И след това - взаимодействие с бази данни! Трябва да научите много интересни неща.

От предишните уроци научихме, че с помощта на метода GET можете да подадете някои параметри директно към URL адреса. Нищо обаче не ни пречи да направим това без формуляри, просто да ги изброим в URL адреса.

Можем да предаваме параметри чрез URL. И можем да получим тези параметри направо в скрипта. И така, какво ни пречи да показваме на потребителя различни страници в зависимост от параметрите в URL адреса?

Създайте динамична страница

За да покажете на потребителя различни страници, трябва да подготвите съдържанието. Нека лежи в многомерен масив:

"Създаване на динамични страници", "съдържание" => "Текстът на статията за динамични страници." ], [ "title" => "Как да хванем коте", "content" => "Текстът на статията за котенца." ] ]; ?>

Динамичният параметър в URL ще се нарича id и ще го хванем в $_GET["id"] . Можем да добавим поле за идентификатор към всеки елемент от масива, но тогава ще трябва да преминем през всички елементи и да потърсим подмасив с желания идентификатор. Следователно е много по-лесно да използвате ключовете на основния масив като id.

Просто казано, вземаме идентификатор и се опитваме да намерим статия с този ключ в масива $articles. Изглежда така:

Остава само да скицира изхода от менюто и да провери правилността на идентификатора. Оказва се истински php-рутер!

"Главна страница", "съдържание" => "Текст на статия за нашия сайт" ], [ "title" => "Създаване на динамични страници", "съдържание" => "Текст на статия за динамични страници." ], [ "title" => "Как да хванем коте", "content" => "Текстът на статията за котенца." ] ]; # Ако id е подаден, напишете статия в $article или null, ако няма статия с този id if(isset($_GET["id"])) $current_article = $articles[$_GET["id"]] ?? нула; # Ако id не е подаден, тогава това е главната страница, можем да покажем страницата с id = 0 иначе $current_article = $articles; ?> $статия): ?> ">

Грешка 404: страницата не е намерена

Сега можете да създавате динамични сайтове, където броят на страниците зависи от броя на елементите на масива, а не от PHP файловете. :) Ако сайтът трябва да има различни типове страници, например статия и продукт, можете да подадете типа на страницата като втори параметър: site.ru?type=article&id=5 .

Разбира се, тази система не е съвършена. След известно време ще научите как да направите нормално CNC (по-удобни URL адреси, като site.ru/articles/5/) и да съхранявате статии във файл или база данни.

За да създадете обещаващ, разширяем и ефективен сайт с всякаква сложност, трябва да започнете с прост. Този процес не е лесен, изисква някои основни познания по PHP и MySQL, но ако го разгледате точка по точка, можете да съставите един вид „работен план“, който ще бъде полезен при създаването на нови сайтове. Нека подготвим "ядрото" и основата за проекта. Първоначално това ще бъде обикновен сайт за визитки, но след това, чрез добавяне на функционалност, може да се превърне във всичко. Така че да започваме.

1. Подготовка на база данни. Създайте първата таблица в базата данни MySQL

Създайте нова база данни, например "mysite". Лично аз съм свикнал да работя с UTF-8 кодиране, така че веднага ще направя резервация: уверете се, че всички текстови файлове на сайта, самата база данни, таблици и полета на таблици са в същото кодиране.
Създайте таблица в нова база данни. Нека го наречем "страници". Тази таблица ще съхранява статичните страници на бъдещия сайт и информация за тях. Таблицата трябва да съдържа следните полета:

  • page_id - ID на страница (SMALLINT, първичен ключ, auto_increment);
  • page_alias - псевдоним на страницата за CNC адресния низ (VARCHAR, 255);
  • page_title - заглавие на страницата в прозореца на браузъра (VARCHAR, 255);
  • page_meta_d - мета описание на страницата за тага за мета описание (VARCHAR, 255);
  • page_meta_k - мета ключови думи за тага meta keywords (VARCHAR, 255);
  • page_h1 - заглавие на страница (VARCHAR, 255);
  • page_s_desc - кратко описание на материала, например, ако материалите на сайта ще бъдат под формата на блог (ТЕКСТ);
  • page_content - основният текст на страницата, който ще се показва в централната колона на сайта (TEXT);
  • page_publish - съдържа "Y", ако страницата е публикувана, или "N", ако е скрита (CHAR, по подразбиране е "Y").

Веднага след създаването на таблицата вмъкнете стойностите за главната страница на сайта в нея. В полето „page_alias“ за главната страница предлагам да вмъкнете стойността „home“. Мета тагове – според тематиката на целия сайт. По същия начин можете да създадете други страници, например „За компанията“ с псевдоним „about“ и собствени мета тагове или „Контакти“ с псевдоним „контакти“ и т.н.

2. Създайте конфигурационен файл на сайта

В главната папка на сайта, която на този етап трябва да е празна, създаваме папка “cfg”, в нея, използвайки .htaccess, затваряме достъпа с директивата “deny from all”. Създайте файл core.php със следното съдържание:

// MySQL
клас MyDB
{
var $dblogin = "root"; // ВХОД В ВАШАТА БАЗА ДАННИ
var $dbpass = ""; // ВАШАТА ПАРОЛА ЗА БАЗА ДАННИ
var $db = "mysite"; // ИМЕ НА БАЗАТА ЗА САЙТА
var $dbhost="localhost";

var$link;
var$query;
променлива $ грешка;
var $result;
var$data;
var $fetch;

Функция connect() (
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("ЗАДАДЕНИ ИМЕНА utf8");
}

функция close() (
mysql_close($this->link);
}

Функция run($query) (
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
функция ред() (
$this->data = mysql_fetch_assoc($this->result);
}
извличане () (
докато ($this->data = mysql_fetch_assoc($this->result)) (
$this->fetch = $this->data;
връща $това->извличане;
}
}
функция stop() (
unset($this->data);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
}
}

Понастоящем този файл съдържа само обикновен клас за връзка с база данни, но в бъдеще можете да добавите различни полезни функции към него, които ще бъдат достъпни от всяко място в кода на сайта. Не забравяйте да промените вашето потребителско име и парола за вашата база данни.

Ако работите в Windows среда, мога да препоръчам използването на . Този редактор има номериране на редове и лесно превежда текст от едно кодиране в друго. ВНИМАНИЕ! Ако работите с UTF-8 кодиране - преобразувайте файлове в UTF-8 без BOM - това ще ви помогне да избегнете проблеми в бъдеще.

3. Създайте index.php - основния контролер на сайта

Конфигурационният файл е създаден. Сега създаваме index.php в основната папка на сайта - това ще бъде основният скрипт на сайта, един вид "основен контролер". Съдържание на файла index.php:

define("ИНДЕКС", ""); // НАСТРОЙКА КОНСТАНАТА НА ГЛАВНИЯ КОНТРОЛЕР

Require_once($_SERVER."/cfg/core.php"); // СВЪРЗВАНЕ НА ЯДРОТО

// СВЪРЗВАНЕ КЪМ БД
$db = нов MyDB();
$db->свързване();

// ОСНОВЕН КОНТРОЛЕР
превключвател ($_GET) (
случай "страница":
включва ($_SERVER."/com/page.php");
прекъсване;
по подразбиране:
включва ($_SERVER."/com/home.php");
прекъсване;
}

Включи ($_SERVER."/template.php");
$db->затвори();

Променливата $_GET ще каже на главния контролер кой компонент на сайта да зареди при поискване. Сега нашият сайт има само два компонента: „страница“ и „главна страница“ (по принцип можете да се справите с един компонент за показване на обикновена страница, но често външният вид на главната страница на сайта се различава от обичайните страници на елементи от менюто). Логиката на главния контролер е следната: името на необходимия компонент (стойността на променливата $option) се извлича от URL низа, в зависимост от неговата стойност се включва самият файл на компонента (съдържащ се в / папка com). Файлът на компонента върши цялата необходима работа, извлича данни от базата данни и ги записва в променливи, които да бъдат предадени на шаблона за дизайн. В самия край се свързва файлът за дизайн на сайта, в който се прехвърлят всички променливи и данни, извлечени в компонентите. Това звучи много по-сложно, отколкото работи.

4. Създайте компонент за нормален изход на страница

В корена на сайта създайте папка "com" - в нея ще се съхраняват компонентните файлове. Компонентът на сайта според моето разбиране е файл, в който се обработват данни за различни раздели на сайта. Например, компонентът на обикновена страница извлича заглавието, описанието и текста на материала от базата данни и ги записва в променливите $title, $meta_d, $meta_k, $content и т.н. След това тези данни се прехвърлят към шаблон за дизайн (можете да създадете свой собствен шаблон за дизайн за всеки компонент) и се показва на потребителя като HTML страница. Например компонент на каталог, който може да бъде създаден в бъдеще, би направил почти същото, но с данни за продукти - и има свои собствени специфики, други полета в таблицата и т.н. Следователно за всеки функционален раздел на сайта си струва да създадете отделен компонент. В схемата MVC (Model-View-Controller) компонентът играе ролята на модел.

Създайте файл "page.php" в папката "com". Съдържанието на файла е както следва:

/* КОМПОНЕНТ НА ​​СТРАНИЦАТА */
$псевдоним = $_GET;
$query = "ИЗБЕРЕТЕ * ОТ страници WHERE page_alias="".$alias."" И page_publish="Y" LIMIT 1";
$db->изпълни($заявка);
$db->ред();
// КОМПОНЕНТНИ ПРОМЕНЛИВИ
$id = $db->данни;
$псевдоним = $db->данни;
$title = $db->данни;
$h1 = $db->данни;
$meta_d = $db->данни;
$meta_k = $db->данни;
$s_desc = $db->данни;
$component = $db->data;
// АКО СТРАНИЦАТА НЕ СЪЩЕСТВУВА
ако (!$id) (
заглавие ("HTTP/1.1 404 не е намерено");
$component = "ГРЕШКА 404! Тази страница не съществува";
}
$db->стоп();

5. Създайте компонента за показване на началната страница

Основната страница в нашата база данни се съхранява под псевдонима "дом" и досега не се различава по структура от обичайните страници на сайта - това е просто статия. Въпреки това ще създадем отделен компонент за него - за бъдещето, така да се каже.


Съдържанието на компонента "home.php" в папката "com" е почти същото като съдържанието на компонента на нормалната страница, с изключение на низа за заявка към базата данни и името на компонента. Низът на заявката сега изглежда така:

$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1";

6. Създайте шаблон за дизайн на целия сайт

Създайте файл template.php в корена на сайта. Всъщност това е нормално оформление за уеб дизайн във формат HTML + CSS, само с PHP променливи на правилните места. Вмъкване между заглавните тагове, в централната колона на сайта вмъкнетеи така в шаблона поставяме необходимите променливи, които са декларирани в компонентите.

Основната папка също трябва да има папки "css" и "images" за елементи на дизайна. Във файла /css/style.css - можете да персонализирате стиловете по ваш вкус.

7. Изчистете връзките и .htaccess файла

За създаване на чисти връзки използвам mod_rewrite с директни инструкции за правилата за всеки компонент поотделно, тъй като анализирането на адресната лента с помощта на самия контролер се счита за ненужна функционалност. Съдържанието на .htaccess на този етап е:


Rewrite Engine On
RewriteBase /

RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %(REQUEST_FILENAME) !-f

# ЗАБРАНЕНИ ФАЙЛОВЕ
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]

# mod_rewrite ПРАВИЛА
RewriteRule page/(+)([\/](0,1))\.htm$ index.php?option=page&alias=$1 [L]

В бъдеще ще добавим правила за компонентите за търсене, каталог, блог със статии и др. Има само един момент: да конвертирате връзки като "mysite.com/index.php?option=pages&alias=about" във връзка като "mysite.com/pages/about.htm" - изглежда доста добре. При разработката се опитайте да избегнете масива $_GET от съображения за безопасност и не разчитайте на него. Препоръчително е в него да се съхраняват само параметри за главния контролер (променлива $option) и за компонента (променлива $alias).

Също така, във всяка папка на сайта, „за всеки случай“, създайте празен файл index.html - това е необходимо, за да не се показва нищо при достъп до директорията през адресната лента.

Етикети: php, mysql, двигател на сайта, контролер, създаване на сайт, mvc

2017-01-10


Изграждане на динамичен уебсайт с php

Здравейте скъпи посетителю!

Днес от главната страница, използвайки езика за програмиране PHP, ще създадем динамична страница, която по-късно ще се формира на сървъра при всяка заявка на потребител.

Така, променяйки структурата на сайта и запълвайки го с подобни променящи се страници, ще получим динамичен сайт, което значително ще опрости техническата му поддръжка и развитие в бъдеще в сравнение със статичната версия.

  • Защо имате нужда от динамичен уебсайт
  • Как да конвертирате статичен сайт в динамичен
  • Оформяме блокове на динамичен сайт
  • Преобразуване на уеб страница от статична в динамична
  • Изходни файлове на сайта

Защо имате нужда от динамичен уебсайт

Защо се нуждаете от динамичен сайт беше обсъдено в самото начало на инструкциите стъпка по стъпка в статията Инсталиране на локален уеб сървър Denwer, която обяснява необходимостта от инсталиране на локален уеб сървър. Следователно можем да се върнем и да опресним този въпрос.

Освен това, ако трябва да разгледате допълнително плюсовете и минусите на статичните и динамичните сайтове, можете да ви посъветвате да се запознаете със страниците на онлайн директорията "Puzzleweb.ru" в раздела Видове сайтове, където обясненията са доста кратки, но в същото време ясно дадени за различни опции на сайта.

екранна снимка 12

Към това можем само да добавим, че за да получите наистина пълноценен интернет ресурс, е невъзможно да пропуснете тази стъпка и да останете с опцията за статичен сайт.

Затова вече няма да се задълбочаваме в теоретичната дискусия за необходимостта от създаване на динамичен сайт, а ще преминем към обмисляне как ще го направим.

Как да конвертирате статичен сайт в динамичен

Както знаете, основната разлика между динамичен сайт и статичен сайт е, че при статичен сайт готовите уеб страници лежат на сървъра и чакат на опашка, за да бъдат изпратени до браузъра на потребителя. В същото време, ако страниците имат дори незначителни разлики, да речем, че разликата е само в една фраза или дори в една дума, тогава те пак ще бъдат отделни страници.

В динамичната версия формирането на страници се извършва на сървъра при всяка заявка на потребителя, в зависимост от исканата информация.

По прост начин това може да се сравни с конструктор, където голям брой различни форми могат да бъдат направени от ограничен брой елементи. В същото време, ако направите промяна в един от елементите, това ще се отрази в цялата структура, която включва този елемент.

Въз основа на това ще направим нашата създадена главна страница да изглежда като конструктор, състоящ се от определени елементи (в нашия случай това ще бъдат файлове), от които впоследствие ще бъдат сглобени уеб страници по заявка на потребителя.

За да обясним стъпките, които ще изпълним за това, ще използваме HTML кода на рамката на главната страница, получен на един от етапите на създаване на сайта в статията.

  1. "utf-8" >

    <span><b>Заглавие на страница</b> </span>

    "Описание"съдържание = „Кратко описание на съдържанието на страницата“ >

  2. "обвивка" >

    Шапка

    Ротатор

    Главно съдържание

    странична лента

    Мазе

Както можете да видите от HTML кода, контейнерът , предназначен да побере видимата част на уеб страницата, съдържа следните основни блокове:

  • Шапка;
  • ротатор;
  • главно съдържание;
  • странична лента;
  • Мазе.

В този случай трябва да обърнете внимание на факта, че четири от пет блока са общи и само един блок „Основно съдържание“ ще бъде различен за всяка страница.

За да получим елементи на динамичен сайт, ние ще разделим съдържанието от тези блокове в отделни файлове, които по-късно ще включим при сглобяването на различни уеб страници по искане на потребителите.

Сега, на този етап, ще има само пет от тези файлове. Но в бъдеще, когато добавяте страници или допълнителна функционалност към сайта, ще се свързват нови файлове и т.н., ако е необходимо.

Такава конструкция на структурата на сайта ще позволи в бъдеще да не се занимавате с рутинна работа по промяна на HTML кода на всички страници в случай на замяна или допълване на общ за тях фрагмент. В такива случаи ще бъде достатъчно да направите промени само в конкретен файл и това ще завърши цялата процедура за подмяна. Както можете да видите, има предимство.

Но за да можем да направим това, се нуждаем от езика PHP, с който уеб страниците могат да имат достъп до тези разпределени блокове и да прехвърлят тяхното съдържание към себе си.

Ако някой все още не се е сблъсквал с езика PHP, тогава е препоръчително да го опознае по-добре, тъй като PHP е един от най-важните инструменти за разработка на уебсайтове. Това може да стане с помощта на различни видове справочна литература, която може да се намери в големи количества в Runet.

Като опция, многократно споменатото ръководство "Puzzleweb.ru", в което една от неговите части е посветена на темата за PHP. За по-задълбочено изучаване на PHP можете да използвате и специализиран справочник, специално пригоден за този език, публикуван на сайта "php.ru". Използвайки връзката "https://php.ru/manual/control-structures.intro.html", можете да стигнете до неговата страница "Въведение", откъдето можете лесно да изберете всеки раздел от ръководството, който ви интересува.

Но за да направите сега динамичен сайт и да осигурите възможност за свързване на файлове към HTML страници, достатъчно е да използвате само една езикова инструкция (в PHP всеки скрипт се състои от последователност от инструкции). Това може да бъде една от четири възможни опции за инструкции за свързване на файлове:

  • включват;
  • изисквам;
  • включване_веднъж;
  • изисквам_веднъж.

Няма смисъл да описвате техните характеристики тук, тъй като това е обяснено подробно в справочници, например, като използвате връзката "http://www.puzzleweb.ru/php/26_inc_files.php", можете да го разберете добре.

Ще използваме инструкцията "require_once" при създаването на сайта, обикновено използвам тази опция, за мен е най-удобна.

Е, след като разбрахме какво ще правим, нека да преминем към практически действия.

Оформяме блокове на динамичен сайт

За да формирате блокове, които след това ще участват в сглобяването на уеб страници, първо трябва да ги създадете. Това се прави в текстовия редактор на Notepad++ по същия начин, както създадохме първия файл на сайта "index.html" в статията. Създайте уеб страница и я хоствайте на локален уеб сървър. Само разширението в този случай трябва да бъде посочено не "html", а "php". В същото време е необходимо да се обърне внимание на кодирането, за да се избегне появата на различни видове неразбираеми знаци на страниците в бъдеще.

Файловете ще бъдат създадени в отделна, новосъздадена папка "блокове". За файлове, които са общи за всички страници, ще присвоим имена въз основа на имената на съответните блокове. А за "основния" блок ще посочим конкретно име за всяка страница от сайта.

Така за главната страница ще свържем файл, наречен "block_glavnaya", към "основния" блок. За останалите: "header", "section", "aside" и "footer".

Когато създавате файлове, можете също да вземете предвид, че за да опростите тази процедура, е възможно да ги копирате с помощта на менюто "Файл", като посочите ново име на файл при записване "Запиши като".

Като цяло създаването на файлове е стандартна процедура, така че не би трябвало да има никакви затруднения. В крайна сметка трябва да изглежда така.


След това копираме съдържанието на всеки блок и го прехвърляме в съответния файл. Нека да разгледаме това по-подробно, използвайки примера "header.php".

1. Отворете файла "index.html" в редактора на Notepad++, изберете желаната област от блока "header" и последователно натиснете десния и левия бутон на мишката, за да го копирате в клипборда.

Трябва да се отбележи, че тук копираме цялото съдържание на блока, с изключение на менюто. Това е така, защото за отразяване на активния бутон на менюто в атрибутите на етикета

  • необходимо е всяка страница да присвои стойност на класа class "актив". Същото важи и за подобния фрагмент в блока "футър".

    В бъдеще ще преместим и тези фрагменти от менюто в блоковете "header" и "footer" в отделни файлове, но засега няма да ги усложняваме и ще ги оставим на едно и също място.

    Как да изберете и копирате в клипборда фрагмент от блока "заглавка" е показано на екранната снимка по-долу.



    3. И накрая, за да преместите съдържанието на файла в Notepad ++ вляво, трябва да натиснете няколко пъти "Tab", докато натискате бутона "Shift". В резултат на това получаваме генерирания файл "header.php" в следната форма.


    Ще направим същото и за други файлове. Екранните снимки по-долу показват как ще изглежда тяхното съдържание, когато всички необходими действия бъдат изпълнени.


    Фиг.6 Файл "section.php".


    Фиг.7 Файл "block_glavnaya.php"


    Фиг.8 файл "aside.php".


    Фиг.9 Файл "footer.php"

    Така получихме всички файлове за създаване на динамична страница и вече можем да преминем директно към нейния HTML код.

    Преобразуване на уеб страница от статична в динамична

    За да сте сигурни, че нашата главна страница зарежда файловете, които са създадени в предишния раздел, първо трябва да промените разширението на файла "index" от "html" на "php" и след това да го отворите отново в редактора на Notepad++ и да направите следните промени:

    • Изтрийте съдържанието на блоковете, които преди това са били прехвърлени към новосъздадените файлове.
    • Напишете инструкции "require_once" в PHP на освободеното място, като посочите пътя до съответните файлове.
    • В етикетите на менюто
    • , които указват пътя към страниците, за главната страница сменете разширението от „html“ на „php“, а за други посочете имената на новосъздадените страници.
    • Посочете „Начало“ в заглавието.

    След извършване на тези операции нашата главна страница трябва да изглежда така.


    От екранната снимка по-горе можете да видите, че всички PHP инструкции са маркирани с отварящ таг. Тази нотация се използва, за да посочи кога да започне и спре обработката на код, написан на PHP. Следователно в бъдеще всички PHP кодове ще се отличават с това обозначение.

    Можете също така да обърнете внимание, че имената на новите страници са направени, като се вземе предвид тяхното предназначение, така че структурата и кодът на сайта се възприемат по-добре.

    Това завършва всички наши трансформации. И сега, ако отворим отново главната страница в браузъра, тогава не трябва да виждаме никакви промени с предишната версия на сайта, той трябва да се отвори по същия начин, както преди. Но ако резултатът е нещо грешно, това означава, че трябва да потърсите грешката, допусната в горните операции.

    Нека сега опресним браузъра и се опитаме да отворим главната страница.


    Както можете да видите, в нашия случай главната страница се отвори без никакви проблеми. Но за разлика от предишната работа на сайта, страницата придоби тази форма в резултат на нейното формиране на сървъра при обработка на заявката.

    Така вече нашият сайт има своята първа динамична страница. И след добавянето на други подобни страници към него, този сайт с право може да се нарече динамичен с всички произтичащи от това последствия, т.е. ще има всички предимства, присъщи на динамичните сайтове. И ще можем да проверим това, когато го напълним с различни видове функционалност в бъдеще.

    С това ще завършим този важен етап от развитието на сайта и в следващата статия ще създадем нови динамични страници за него. Изходните кодове на най-новата версия на сайта могат да бъдат изтеглени, както обикновено, от връзката в края на статията.

    Изходни файлове на сайта

    Изходните файлове на сайта с актуализациите, направени в тази статия, могат да бъдат изтеглени от прикачения файл допълнителни материали.