Динамічні сторінки у PHP. PHP. Динамічне створення сторінок Створення index php

Ми говорили тільки про статичних сторінках, тобто таких, які, як користувач з ними не взаємодіяв, завжди залишаються незмінними, а щоб вміст або оформлення їх змінилося, господарю сторінки треба правити код вручну.

Динамічні сторінки та що для них потрібно

Крім статичних, є ще динамічні сторінки. Таких нині в Інтернеті більшість. Інформація в них підвантажується із зовнішніх джерел, наприклад, бази даних або інших файлів. Вміст та форматування таких сторінок можуть змінюватись в залежності від дій користувача. Для виправлення динамічних сайтів не обов'язково втручатися в їх код – достатньо змінити контент у спеціально для нього призначеному файлі або базі даних, яка, до речі, є також файлом, лише певним чином структурованим.

Для створення динамічних сайтів лише HTML та CSS недостатньо. Тут використовуються ще й мови програмування, а також бази даних та мови запитів до них. Найчастіше сучасні динамічні сайти використовують у роботі HTML, CSS, PHP, JavaScript, SQL. Перші дві абревіатури вам вже знайомі не з чуток, SQL застосовується для доступу до баз даних, JavaScript - клієнтська мова, команди якої обробляються браузером і часто використовуються, щоб показувати вам будь-яку красу на кшталт шторок або фотографій, що плавно відкриваються, а ось PHP - це серверна мова програмування , який працює, у тому числі, з вмістом сайту і робить його динамічним, з ним ми сьогодні і доторкнемося.

Приклад використання команди include

У попередній статті я розповідав про блокову верстку сайту і наводив як приклад найпростішу сторінку (документ) index.htmlта прив'язаний до нього файл style.css).

Нині ми розділимо документ index.htmlна кілька файлів, кожен з яких міститиме свою частину сторінки, що допоможе ще сильніше розділити код, покращити структуру шаблону і по суті зробити сторінку динамічною. Для цього ми будемо використовувати мова PHP, а точніше лише одну його директиву – функцію include()яка включає один файл в інший.

1. Змініть роздільну здатність створеного у статті про блокову верстку файлу indexз .htmlна .phpщоб документ називався index.php. Тип файлу .PHPвказує серверу, що документ був написаний або використовує вставки однойменною мовою програмування.

2. У папці зі сторінкою створіть директорію blocks.

3. Всю допоміжну інформацію (верх, низ, навігацію та бічну панельсайту) винесемо в окремі файли, які розмістимо у папці blocks.

Отже, створіть у каталозі blocks чотири файли: header.php, navigation.php, sidebar.phpі footer.php. Заповніть файли кодом.

4. Перевірте структуру папки шаблону. У корені повинні бути файли index.php, style.cssта директорія blocks.

Структура папки blocksмає бути такою.

5. У файлі index.phpвидаліть існуючий код та напишіть новий:

Блокова верстка

Основний контент сторінки

У браузері файл index.php виглядає так само, як і раніше, але структура шаблону при цьому повністю змінилася. Про те, що вийшло, поговоримо потім, а зараз відповімо на запитання про загадкові команди виду .

Як і HTML-код, код PHP теж має своє позначення початку та кінця. Так ось починати PHP-вставку потрібно командою , а закінчувати рядком ?> . Поміж цими командами пишеться основний код. У нашому випадку це лише одна команда - include.

Функція include()вставляє у файл код з іншого файлу, даючи можливість зберігати різні частини сторінки у різних документах, цим надійно відокремлюючи їх друг від друга.

В результаті виконаних дій ми отримали динамічну сторінку index.php, частини якої підвантажуються з різних файлів. Завдяки цьому можна створювати інші сторінки, так само підвантажуючи в них допоміжні елементи з файлів папки blocks.

Такий підхід хороший тим, що якщо ви захочете на сайті в 20-30 сторінок змінити, скажімо, назву пункту меню, то в шаблоні з новоствореною структурою знадобиться внести правки тільки в один файл - blocks/navigation.php, і меню зміниться відразу на всіх сторінках, до яких він включений. Якщо сайт був би статичним, то для зміни назви одного пункту меню вам довелося б вносити зміни в кожнуіз 20-30 сторінок. Різниця очевидна.

Потрібно вжити запобіжних заходів. Тому що ресурс може вийти вкрай динамічним. Того й дивись, вкусить!

PHP та HTML

Нині ці дві дисципліни пов'язані майже воєдино. Їхній тандем є основою, на якій побудовано «життя» більшої частини інтернету. Звичайно, у зв'язці з html застосовуються інші серверні мови (Perl, ASP.NET ). Але їх поширеність у всесвітній павутині в порівнянні з PHP, носить суто епізодичний характер.

Згідно зі статистикою, архітектура більшості ресурсів в інтернеті побудована на основі php та html.


Для багатьох початківців взаємозв'язок між цими технологіями виглядає незрозумілим. З одного боку статичний HTML, який інтерпретується браузерами на стороні клієнта. А з іншого - програмна мова, що обробляється на сервері. Тому перед написанням сайту на php з нуля наведемо простий приклад взаємодії цих двох технологій:

  • Створимо новий файл з розширенням php;
  • Помістимо туди наступний код:

Untitled web-page Яка зараз година?

  • Збережемо файл на локальному сервері та відкриємо його у браузері. Потім натиснемо на праву клавішу миші та в контекстному менюоберемо пункт « Перегляд html сторінки».

Як видно на скріншоті, рядокне відображається у html коді сторінки. І в браузері, і в коді видно лише повернені дата та час. А це означає, що скрипт було оброблено на серверній стороні. Тому створення сайту на PHP кардинально відрізняється від написання простих html сторінок.

Динамічний сайт

Сучасні сайти бувають двох основних типів:

  • Статичні - створені лише на основі html. Такі сайти не змінюють вміст у відповідь на дії користувачів. Звичайно, статичний ресурс може реагувати на події та користувальницькі дії. Але реалізація динамічності сторінок за клієнта має вузький діапазон застосування, обмежений можливостями Java Script .

Код Java Script виконується у браузері на стороні клієнта.

  • Динамічні – здатні змінювати свій стан та вміст – html сторінки динамічних сайтів формуються нальоту в момент виконання коду у відповідь на запит користувача, надісланий ним із браузера на сервер. Найчастіше генерація сторінок за сервера відбувається з допомогою коду, написаного на php .

Динамічний сайт на php складається з наступних файлів:

  • index.php – є основним файлом проекту;
  • Шаблони – включають структуру тієї чи іншої частини сторінки ( шапки, підвалу, основної частини);
  • CSS – зберігають у собі всі стильові описи ресурсу.

Крім цього проект сайту може складатися з файлів, що зберігають код функцій і методів php . А також включати базу даних.

У більшості CMS джерелом контенту для наповнення сторінок, динамічно згенерованих на стороні сервера, є база даних. Найчастіше застосовується СУБД MySQL.

Як пишеться сайт на PHP

Щоб розібратися, як створюється сайт на PHP, розглянемо практичний приклад. Звичайно, багато в ньому спрощено, але весь механізм роботи та етапи створення збережені.

Є html сайт з наступною структурою та дизайном:

Його код:

Приклад сайту на php

Шапка

Контент

Код файлу style.css :

Header ( margin-left:auto; margin-right:auto; margin-bottom:10px; width:1000px; height:100px; border:1px solid #000000; background: #009966; background-image: url(img/1.) gif); ) .pages ( margin-left:auto; margin-right:auto; width:1000px; ) .content ( margin-right:10px; width:806px; # 999999; float: left; . :10px;margin-left:auto;margin-right:auto;width:1000px;height:50px;border:1px solid #000000;background:#333399;

Перед тим, як написати сайт на php до кінця, весь html код потрібно розкинути по кількох файлах:

  • У header.php увійде весь код з початку до кінця шару «header»;
  • У footer.php - шар "foot" та "footer";
  • У content.php - весь код, що залишився посередині.

Тепер створюємо основну сторінку index.php, в якій будуть розміщені виклики файлів, що містять код потрібних елементів дизайну. Разом в основному файлі виявилося всього 3 рядки скрипту:

А якщо переглянути в браузері html код сторінки, то ви побачите код початкового вихідного коду:

Звичайно, цей варіант підходить лише для створення основної сторінки сайту. Але якщо код боковушки прибрати в окремий файл, шаблон можна використовувати і для генерації внутрішніх сторінок сайту.

Шлях в обхід

Але така розробка сайту потребує витрати сил, наявності спеціалізованого програмного забезпеченнята знань. Тому хотілося б знайти легший варіант. Тоді слід користуватися конструктором php веб-сайтів.

Вони є певним набором шаблонів з розширеним діапазоном налаштувань. Через що вони сильно схожі зі звичайними CMS. Звичайно, високої унікальності дизайну майбутнього сайту ніхто не гарантує, і надалі можуть виникнути проблеми з перенесенням та адаптацією ресурсу на іншому хостинговому майданчику чи платформі. Ось кілька перевірених варіантів таких онлайн-сервісів.

Вітаю! Зараз ми спробуємо реалізувати найпростішу реєстрацію на сайті за допомогою PHP+MySQL. Для цього на вашому комп'ютері потрібно встановити Apache. Нижче наведено принцип роботи нашого скрипта.

1. Почнемо зі створення таблички users у базі. Вона міститиме дані користувача (логін та пароль). Зайдемо в phpmyadmin (якщо ви створюєте базу на своєму ПК http://localhost/phpmyadmin/). Створюємо таблицю users, у ній буде 3 поля.

Я створюю її в базі mysql, ви можете створювати в іншій базі. Далі встановлюємо значення, як у малюнку:

2. Необхідне з'єднання з цією таблицею.Давайте створимо файл bd.php. Його зміст:

$db = mysql_connect ("ваш MySQL сервер", "логін до цього сервера", "пароль до цього сервера");
mysql_select_db ("ім'я бази, до якої підключаємося", $ db);
?>

У моєму випадку це виглядає так:

$ db = mysql_connect ("localhost", "user", "1234");
mysql_select_db ("mysql", $ db);
?>

Зберігаємо bd.php.
Чудово! Ми маємо таблицю в базі, з'єднання до неї. Тепер можна приступати до створення сторінки, на якій користувачі залишатимуть свої дані.

3. Створюємо файл reg.php із змістом (усі коментарі всередині):



Реєстрація


Реєстрація
















4. Створюємо файл, який буде заносити дані до бази та зберігати користувача. save_user.php(Коментарі всередині):



{
}
//якщо логін і пароль введені, то обробляємо їх, щоб теги та скрипти не працювали, мало що люди можуть ввести


//видаляємо зайві прогалини
$ login = trim ($ login);
$ password = trim ($ password);
// Підключаємося до бази
// Перевірка на існування користувача з таким самим логіном
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
if (!empty($myrow["id"])) (
exit ("Вибачте, введений вами логін вже зареєстрований. Введіть інший логін.");
}
// якщо такого немає, зберігаємо дані
$result2 = mysql_query ("INSERT INTO users (login,password) VALUES("$login","$password")");
// Перевіряємо, чи є помилки
if ($result2=="TRUE")
{
echo "Ви успішно зареєстровані! Тепер ви можете зайти на сайт. Головна сторінка";
}
else (
echo "Помилка! Ви не зареєстровані.";
}
?>

5. Тепер наші користувачі можуть реєструватися!Далі необхідно зробити "двері" для входу на сайт вже зареєстрованим користувачам. index.php(Коментарі всередині) :

// Вся процедура працює на сесіях. Саме в ній зберігаються дані користувача, доки він знаходиться на сайті. Дуже важливо запустити їх на самому початку сторінки!
session_start();
?>


Головна сторінка


Головна сторінка











Зареєструватись



// Перевіряємо, чи порожні змінні логіна та id користувача
if (empty($_SESSION["login"]) or empty($_SESSION["id"]))
{
// Якщо порожні, ми не виводимо посилання
echo "Ви увійшли на сайт, як гість
Це посилання доступне лише зареєстрованим користувачам";
}
else
{

У файлі index.phpми виведемо посилання, яке буде відкрито лише для зареєстрованих користувачів. У цьому полягає вся суть скрипта - обмежити доступом до будь-яким даним.

6. Залишився файл із перевіркою введеного логіну та пароля. testreg.php (коментарі всередині):

session_start(); // вся процедура працює на сесіях. Саме в ній зберігаються дані користувача, доки він знаходиться на сайті. Дуже важливо запустити їх на самому початку сторінки!
if (isset($_POST["login"])) ( $login = $_POST["login"]; if ($login == "") ( unset($login);) ) //заносимо введений користувачем логін в змінну $login, якщо він порожній, то знищуємо змінну
if (isset($_POST["password"])) ( $password=$_POST["password"]; if ($password =="") ( unset($password);) )
//заносимо введений користувачем пароль у змінну $password, якщо він порожній, то знищуємо змінну
if (empty($login) or empty($password)) //якщо користувач не ввів логін або пароль, то видаємо помилку та зупиняємо скрипт
{
exit ("Ви ввели не всю інформацію, поверніться назад і заповніть всі поля!");
}
//якщо логін і пароль введені,то обробляємо їх, щоб теги та скрипти не працювали, мало що люди можуть ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//видаляємо зайві прогалини
$ login = trim ($ login);
$ password = trim ($ password);
// Підключаємося до бази
include ("bd.php");// файл bd.php повинен бути в тій же папці, що й інші, якщо це не так, то просто зміните шлях

$result = mysql_query("SELECT * FROM users WHERE login="$login"", $db); //витягуємо з бази всі дані про користувача з введеним логіном
$myrow = mysql_fetch_array($result);
if (empty($myrow["password"]))
{
//якщо користувача з введеним логіном немає
}
else (
//якщо існує, то звіряємо паролі
if ($myrow["password"]==$password) (
//якщо паролі збігаються, то запускаємо користувачеві сесію! Можете його привітати, він увійшов!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//ці дані дуже часто використовуються, ось їх і буде "носити з собою" користувач
echo "Ви успішно увійшли на сайт! Головна сторінка";
}
else (
//якщо паролі не зійшлися

Exit ("Вибачте, введений вами login або пароль неправильний.");
}
}
?>

Ну от і все! Може урок і нудний, але дуже корисний. Тут показана тільки ідея реєстрації, далі Ви можете вдосконалити її: додати захист, оформлення, поля з даними, завантаження аватарів, вихід з акаунту (для цього просто знищити функцією змінні з сесії) unset) і так далі. Успіхів!

Все перевірив, чи працює справно!

Багато читачів у будь-якій книзі про комп'ютери перегортають усе, що не має безпосереднього інтересу, і переходять до того, що вони дійсно хочутьзнати. Особисто я роблю саме так. Втім, у цьому немає нічого страшного – рідко зустрічаються технічні книги, які необхідно читати від кірки до кірки. А може, ви саме так і вчинили - пропустили вісім початкових розділів і взялися за цей розділ, бо мав найцікавішу назву? Та й кому захочеться гаяти час на подробиці, коли на роботі «горить» черговий проект?

На щастя, подібна квапливість не завадить вам нормально засвоїти матеріал другої частини книги, присвяченої використанню PHP для побудови сайтів та взаємодії з Web. У цьому розділі ви навчитеся легко модифікувати вміст веб-сторінок і здійснювати навігацію в Web за допомогою посилань та різних стандартних функцій. Наступний розділ доповнить викладений матеріал - у ньому докладно розглядаються засоби взаємодії з користувачем у формах HTML У розділі 11 описано організацію інтерфейсу з базами даних. В інших розділах другої частини розглядаються нетривіальні аспекти web-програмування на PHP.

Однак слід пам'ятати, що матеріал частини 1 абсолютно необхіднийдля нормального володіння PHP. Передбачається, що ви все ж таки прочитали першу частину, тому в прикладах будуть використовуватися багато з описаних раніше концепцій. Отже, якщо ви перегорнули частину книги, вам доведеться час від часу повертатися до попередніх розділів і надолужувати втрачене.

Прості посилання

<а href = "date.php">

$link = "date.php";

print "<а href = \"$link\">View today's date
\n"

Ймовірно, у вас виникло питання - чому в коді посилання перед лапками (") ставиться зворотна коса риса (\)? Справа в тому, що лапки в PHP є спеціальними символами і використовуються як обмежувач рядків. Отже, лапки-літерали в рядках" повинні екрануватись.

Якщо потреба екранувати лапки вас дратує, просто увімкніть режим magic_quotes_gpc у файлі php.ini. В результаті всі апострофи, лапки, зворотні косі риси та нуль-символи. у тексті автоматично екрануються!

Розвинемо наведений приклад. Для швидкого виведення списку посилань у браузері можна скористатися масивом:

// Створити масив розділів

$contents - array("tutorials", "articles", "scripts", "contact");

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

for ($i = 0; $i< sizeof($contents; $i++)

print " | ".$contents[$i]."
\n";

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

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

Ми підійшли до однієї з моїх улюблених можливостей PHP. Шаблоном (стосовно web-програмування) називається частина web-документа, яку ви збираєтеся використовувати в декількох сторінках. Шаблони, як і функції PHP, позбавляють вас зайвого копіювання/вставки фрагментів змісту сторінки та програмного коду. Зі збільшенням масштабів сайту значення шаблонів зростає, оскільки вони дозволяють легко та швидко проводити модифікації на рівні цілого сайту. У цьому розділі буде описано деякі можливості, які відкриваються при використанні найпростіших шаблонів.

Як правило, загальні фрагменти змісту/коду (тобто шаблони) зберігаються в окремих файлах. При побудові web-документа ви просто «включаєте» ці файли у місця сторінки. У PHP для цього існують дві функції: include() та require().

include() та require()

Одним із найвидатніших аспектів PHP є можливість побудови шаблонів та програмних бібліотек та їх подальшої вставки у нові сценарії. Застосування бібліотек заощаджує час та зусилля щодо використання спільних функціональних можливостей на різних веб-сайтах. Читачі, які мають

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

Включення одного або декількох файлів до сценарію здійснюється стандартними функціями PHP require() та include(). Як буде показано в наступному розділі, кожна з цих функцій застосовується у певній ситуації.

Функції

У PHP існують чотири функції для включення файлів у сценарії PHP:

  • include();
  • include_once();
  • require();
  • require_once().

Незважаючи на схожість імен, ці функції вирішують різні завдання.

Функція include() включає вміст файлу сценарію. Синтаксис функції include():

include (file файл)

У функції include() є одна цікава особливість - її можна виконувати умовно. Наприклад, якщо виклик функції включено до блоку команди if. то файл входить у програму лише тому випадку, якщо умова i f істинно. Якщо функція includeO використовується в умовній команді, то вона повиннабути укладена у фігурні дужки чи альтернативні обмежувачі. Порівняйте відмінності у синтаксисі лістингів 9.1 та 9.2.

Лістинг 9.1. Неправильне використання include()

if (some_conditional)

include ("text91a.txt"); else

include ("text91b.txt");

Лістинг 9.2. Правильне використання include()

if (some_conditional) :

include ("text91a.txt");

include ("text91b.txt");

Весь код PHP у файлі обов'язковополягає в теги PHP. Не слід вважати, що просте збереження команди PHP у файлі забезпечить її правильну обробку:

Натомість необхідно укласти команду у відповідні теги, як показує наступний приклад:

print "це is invalid include file";

Функція include_once() робить те саме, що й include(), за одним винятком: перш ніж вмикати файл у програму, вона перевіряє, чи не був він включений раніше. Якщо файл вже був увімкнений, виклик include_once() ігнорується, а якщо ні – відбувається стандартне включення файлу. У всьому іншому include_once() нічим не відрізняється від include(). Синтаксис функції include_once():

include_once (file файл)

Загалом функція require() схожа на include() -- вона також включає шаблон у той файл, в якому знаходиться виклик require(). Синтаксис функції require():

require (file файл)

Тим не менш, між функціями require() та include() існує одна важлива відмінність. Файл, який визначається параметром require(), включається до сценарію незалежно від місцезнаходження require() у сценарії. Наприклад, при виклику requi ге() в блоці if за помилкової умови файл все одно буде включений в сценарій!

У багатьох ситуаціях буває зручно створити файл зі змінними та іншою інформацією, яка використовується в масштабах сайту, а потім підключати його за необхідності. Хоча ім'я цього файлу вибирається довільно, зазвичай називаю його init.tpl (скорочення від «initializaion.template»). У лістингу 9.3 показано, як виглядає простий файл init.tpl. У лістингу 9.4 вміст init.tpl включається до сценарію командою require().

Лістинг 9.3. Приклад ініціалізації файлу

$site_title = "PHP Recipes";!}

$contact_email = " [email protected]";

$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 rе_оnсе() всі подальші спроби ввімкнення того ж файлу ігноруються. Синтаксис функції requiге_оnсе():

Ймовірно, ви станете частіше використовувати функції включення файлів у міру того, як ваші веб-програми почнуть збільшуватися в розмірах. Ці функції часто зустрічаються в прикладах цієї книги, щоб скоротити надмірність програмного коду. Перші приклади розглядаються у наступному розділі, присвяченому принципам побудови базових шаблонів.

Побудова компонентів

При визначенні структури типової web-сторінки зазвичай розбиваю її на три частини: заголовок, основну частину і колонтитул. Як правило, у більшості правильно організованих web-сайтів є заголовок, який практично не змінюється; в основній частині виводиться запит сайту, тому вона часто змінюється; нарешті, колонтитул містить інформацію про авторські права та навігаційні посилання. Колонтитул, як і заголовок, зазвичай залишається незмінним. Не зрозумійте мене неправильно - я зовсім не намагаюся придушувати ваші творчі устремління. Мені зустрічалося чимало чудових сайтів, які не дотримувалися цих принципів. Я лише намагаюся виробити загальну структуру, яка може послужити відправною точкою для подальшої роботи.

Заголовок

Заголовний файл (на кшталт наведеного в лістингу 9.5) є практично в кожному з моїх web-сайтів з підтримкою PHP. Цей файл містить

інформація, що діє на рівні всього сайту, - наприклад, заголовок, контактні дані та деякі компоненти коду HTML-сторінки.

Лістинг 9.5. Приклад файлу заголовка

// Файл: header.tpl

// Призначення: заголовний файл для сайту PhpRecipes.

$site_name = "PHPRecipes";

$site_email=" [email protected]";

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

<? print $site_name; ?>

// Вивести поточну дату та час

print date ("F d, h:i a");

Досить часто доступ до файлів з боку відвідувачів обмежується, особливо якщо ці файли містять конфіденційну інформацію (наприклад, паролі). В Apache можна заборонити перегляд деяких файлів редагуванням http.conf або htaccess. Наступний приклад показує, як заборонити перегляд усіх файлів із розширенням.tpl:

Order allow,deny

Allow from 127.0.0.1

PHP та проблеми безпеки сайтів докладно описані у розділі 16.

Колонтитул

Колонтитулом (footer) зазвичай називається інформація, розташована в нижній частині сторінок сайту, - контактні дані, посилання та інформація про авторські права. Цю інформацію можна розмістити в окремому файлі і включати як шаблон так само, як це робиться з заголовком. Допустимо, з настанням нового року вам потрібно змінити інформацію про авторські права та привести її до вигляду «Copyright © 2000-2001». Є два шляхи: витратити напередодні Різдва на гарячкове редагування сотень статичних сторінок абоскористатися шаблоном на кшталт наведеного у лістингу 9.6. Одна проста зміна - і ви можете повертатися до святкових клопотів.

Лістинг 9.6.Приклад файлу колонтитулу (footer.tpl)

contact |

your privacy

Зверніть увагу на використання глобальної змінної $site_email у колонтитульному файлі. Значення цієї змінної діє в масштабах усієї сторінки, а ми припускаємо, що файли header.tpl та footer.tpl будуть включені до однієї підсумкової сторінки. Також зверніть увагу на наявність шляху $site_path у засланні Privacy (Конфіденційність). Я завжди вмикаю в шаблони повні шляхи до всіх посилань - якби URL-адреса посилання складалася з одного імені privacy.php, то файл колонтитула був би жорстко прив'язаний до конкретного каталогу.

Основна частина

В основному сторінки підключається вміст заголовка та колонтитула. По суті, саме основна частина містить інформацію, яка цікавить відвідувачів сайту. Заголовок ефектно виглядає, колонтитул містить корисні відомості, але саме заради основної частини сторінки користувачі знову та знову повертаються на сайт. Хоча я не зможу надати жодних рекомендацій щодо конкретної структури сторінок, шаблони, подібні до наведеного в лістингу 9.7, грунтовно спрощують адміністрування сторінок.

Лістинг 9.7. Приклад основної частини сторінки (index_body.tpl)

/tutorials.php">tutorials

articles

scripts

contact

Welcome to PHPRecipes. starting place for PHP scripts, tutorials,

and information про gourmet cooking!

Всі разом: заголовок, колонтитул та основна частина

Мабуть, мій настрій найкраще висловлюється фразою полковника «Ганнібала» Сміта (Джордж Пеппард) зі знаменитого серіалу «Команда А»: «Люблю, коли все стає на свої місця». Я відчуваю щось подібне, коли розрізнені шаблони поєднуються і утворюють повний web-документ. Комбінуючи три секції документа: header.tpl, index_body.tpl і footer.tpl, можна швидко побудувати найпростішу сторінку на кшталт тієї, що наведена в лістингу 9.8.

Лістинг 9.8. Побудова сторінки index.php включенням кількох файлів

// Файл: index.php

// Призначення: домашнясторінка PHPRecipes

// Вивести заголовок

include ("header.tpl");

// Вивести основну частину

include ("index_body.tpl");

// Вивести колонтитул

include ("footer.tpl");

Ну як? Три прості команди – і перед вами готова сторінка. Текст підсумкової сторінки наведено у лістингу 9.9.

Лістинг 9.9. Сторінка HTML, побудована у лістингу 9.8 (index.php)

PHPRecipes

August 23, 03:17 pm

tutorials

articles

scripts

contact

Welcome до PHPRecipes, запустити місце для PHP scripts, tutorials,

and gourmet cooking tips and recipes!

Copyright 2000 PHPRecipes. Всі права захищені.

contact |

your privacy

На рис. 9.1 показано, як отримана сторінка виглядає у браузері. Хоча я зазвичай не користуюся рамками таблиць, цього разу я їх вивів, щоб на малюнку наочно виділялися три частини сторінки.

Мал. 9.1. Зовнішній вигляд сторінки, побудованої у лістингу 9.8

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

У другому (на мій погляд, кращому) варіанті шаблони оформляються у вигляді функцій, що знаходяться в окремому файлі. Тим самим забезпечується додаткове структурування ваших шаблонів. Я називаю цей файл ініціалізаційним файлом та зберігаю в ньому іншу корисну інформацію. Оскільки ми вже розглянули відносно довгі приклади заголовка та колонтитула, вміст листингів 9.10 та 9.11 був трохи скорочений для наочної демонстрації нової ідеї.

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

// Файл: site_init.tpl

// Призначення: ініціалізаційний файл PhpRecipes

$site_name = "PHPRecipes";

$site_email = " [email protected]";

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

function show_header($site_name) (

<? print $site_name: ?>

This is the header

function show footer()

This Is the footer

Лістинг 9.11. Застосування ініціалізаційного файлу

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

include("site_init.tpl");

// Вивести заголовок

show header ($ site_name);

// Вміст основної частини This is some body information

// Вивести колонтитул Show_footer();

Проект: генератор сторінок

Хоча у більшості створених мною web-сайтів основний вміст сторінок формувався на основі інформації, прочитаної з бази даних, завжди знайдеться кілька сторінок, які практично не змінюються. Зокрема, на них можуть виводитися відомості про команду розробників, контактні дані, реклама і т.д. Я зазвичай зберігаю цю «статичну» інформацію в окремій папці та використовую сценарій PHP для її завантаження під час надходження запиту. Звичайно, у вас виникає питання – якщо це статична інформація, для чого потрібен сценарій PHP? Чому не завантажувати звичайні сторінки HTML? Перевага PHP полягає в тому, що ви можете використовувати шаблони та вставляти статичні фрагменти за необхідності.

<а href = "/static.php?content=$content">Static Page Name

Почнемо зі створення статичних сторінок. Для простоти я обмежуся трьома сторінками, що містять інформацію про сайт (листинг 9.12), рекламу (листинг 9.13) та контактні дані (листинг 9.14).

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

About PHPRecipes

What programmer doesn"t mix all night programming with gourmet cookies. Here at PHPRecipes. hardly a night goes by without one of our coders mixing a little bit of HTML with a tasty plate of Portobello Mushrooms or even Fondue. best of what we love most: PHP and food!

That's right, readers. Tutorials, scripts, souffles and more. 0nly at PHPRecipes.

Advertising Information

Беззастережно, де вони беруться до пізнання останніх PHP технологій або для бризкування вгору

до bake chicken, ви можете між нашими лідерами є рішення makers. Вони є Industry

Professionals, які роблять рішення про те, що їх фірма придбає.

Для advertising information, contact

">[email protected].

Лістинг 9.14. Контактні дані (contact.html)

Contact Us

Have a coding tip?

Know the perfect topping for candied yams?

Let us know! Contact the team at [email protected].

Переходимо до побудови сторінки 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 Page Name

Advertising Information

Contact Us

Якщо натиснути на будь-яке з цих посилань, у браузері завантажується відповідна статична сторінка, впроваджена в static.php!

Підсумки

У цьому розділі ви познайомилися з першочерговим завданням, для вирішення якого і створювався PHP - динамічною побудовою web-сторінок. Було розглянуто такі питання:

  • обробка URL;
  • побудова динамічного змісту;
  • включення та побудова базових шаблонів.

Глава завершується генератором сторінок - програмою, яка завантажує статичні сторінки шаблон і дозволяє легко організувати підтримку великої кількості статичних сторінок HTML.

Наступний розділ присвячений використанню PHP у поєднанні з формами HTML, що помітно підвищують ступінь інтерактивності вашого сайту. А потім – взаємодія з базами даних! Вам доведеться дізнатися багато цікавого.

Останнє оновлення: 1.11.2015

Зараз ми створимо невеликий сайт, який покликаний дати початкове розуміння роботи з PHP.

Для створення програм на PHP нам знадобиться текстовий редактор. Найбільш популярним сьогодні є програма Notepad++

Перейдемо до раніше створеного каталогу C:\localhost, який зберігатиме всі документи сайту. Створимо текстовий файл та назвемо його index.html. Відкриємо його в текстовому редакторі і додамо до нього наступний код:

Перший сайт на PHP

Введи свої дані:

Введіть ім'я:

Введіть прізвище:

Код HTML містить форму з двома текстовими полями. При натисканні на кнопку дані цієї форми надсилаються скрипту display.php, оскільки він вказаний в атрибуті action.

Тепер створимо цей скрипт, який оброблятиме дані. Додамо до папки C:\localhostновий текстовий файл. Перейменуємо його на display.php. За промовчанням файли програм на php мають розширення .php. Отже, додамо у файл display.php наступний код:

Перший сайт на PHP ".$name . " " . $surname . ""; ?>

Тут уже в розмітці html йдуть вкраплення PHP коду. Для додавання виразів PHP на сторінку використовуються теги, між якими йдуть інструкції PHP. У коді php ми отримуємо дані форми та виводимо їх на сторінку.

Кожен окремий вираз PHP має завершуватися крапкою з комою. В даному випадку ми маємо три вирази. Два з них отримують передані дані форми, наприклад $name = $_POST["firstname"]; .

$name - це змінна, яка зберігатиме певне значення. Всі змінні в PHP передуються знаком $. Оскільки форма на сторінці index.html використовує для відправки метод POST, то за допомогою виразу $_POST["firstname"] ми можемо отримати значення, яке було введене в текстове поле з атрибутом name="firstname" . І це значення потрапляє до змінної $name.

За допомогою оператора echo можна вивести на сторінку будь-яке значення або текст після оператора. В даному випадку (echo "Ваше ім'я: ".$name . " " . $surname . "") за допомогою знака точки текст у лапках з'єднується зі значеннями змінних $name та $surname і виводиться на сторінку.

Тепер звернемося до форми введення, перейшовши на адресу http://localhost:8080:

Введемо якісь дані і натиснемо на кнопку відправити:

Отже, у нас спрацював скрипт display.php, який отримав та вивів надіслані дані на сторінку.

 
Статті потемі:
Чим відрізняється отримання інформації від отримання повідомлення
Інформація - це відомості про що-небудь Поняття та види інформації, передача та обробка, пошук та зберігання інформаціїРозгорнути зміст Згорнути зміст Інформація - це, визначення Інформація - це будь-які відомості, що приймаються та передаються, зберігаються
Що таке посадкова сторінка і як вона має виглядати Як називається посадкова сторінка в інтернеті
Більшість власників приватного бізнесу, різних сервісів та малих організацій розуміють, наскільки важливо вести бізнес онлайн. Створення сайту та ведення сторінки в соцмережах тепер є частиною маркетингової стратегії будь-якої компанії. Але деякі компанії та ор
Як встановити свій шаблон на ucoz - Програма про яку ви не знали, вчимося підключати!
Вибір, встановлення та налаштування шаблону, є одним з найважливіших етапів у створенні сайту на Joomla. У цьому уроці ми розглянемо, як встановити шаблон
Файбісович – довідник з проектування електричних мереж
З П Р А В О Ч Н І К З П РОЕКТУВАННЯ ЕЛЕКТРИЧНИХ МЕРЕЖ Під редакцією Д. Л. ФАЙБИСОВИЧА Видання 4-е, перероблене та доповнене Рецензент В. В. Могирєв : І. Г. Карапетян (пп. 3.2, 5.1, 5.3–5.8, розд. 6, розд. 7), Д. Л. Файбісові