PHP. Динамическое создание страниц. Динамические страницы в PHP Динамическое создание страниц php mysql

В поисках учебного материала по созданию php сайтов я нашла самое упрощенное раскрытие этой темы, что и представляю Вашему обозрению.

Хочу отметить, что современные cms работают на php и этот урок дает упрощенное понятие о принципах работы таких сайтов. Для того, чтобы создать полноценный интернет портал разумнее использовать уже известные движки. Особенно привлекателен Wordpress своей дружественной админкой и постоянной поддержкой сообщества разработчиков.

И узнать все подробности по условиям и ценам.

Для изучения php мне понравился этот пошаговый курс обучения php (к сожалению, автор переквалифицировался, но я предлагаю посмотреть другой урок. Это "]]> Современный PHP: работа с Вконтакте ]]> "), здесь Вы можете спросить о непонятном и получить развернутый ответ. Освоить этот язык программирования помогут о том, как сделать современный php веб-сайт, самоучители php - все для обязательного прочтения.

Перед тем, как рассмотрим создание сайта с помощью php, мы уже поняли, что PHP сам по себе сайтов не делает. И то, что мы видим на экране, изнури ничто иное, как самый обычный HTML, путь даже страница и имеет расширение PHP.

Поэтому, говоря «сделать сайт на PHP», мы подразумеваем, что все-таки сайт делается на HTML, а PHP используем как средство облегчить себе жизнь в дальнейшем при поддержке сайта.

Теоретическая часть в данный момент нам не нужна, да и переписывать теорию с многочисленных источников не буду вовсе. Эти страницы - всего лишь шпаргалки по созданию php сайта. Поэтому, приступим к практической части. На этой странице мы научимся делать шаблон php сайта и создавать на его основе много страниц на php.

Урок 1. Как создать сайт на php

Например, сделаем сайт, состоящий из 5 страниц.

Пусть структура будет такой:

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

Для начала создадим шаблон нашей страницы в HTML:

PHP TEST

Эта страница сделана при помощи PHP (Personal Home Page)

Раздел 1

Раздел 2

Раздел 3

Раздел 4

Раздел 5

Для того, чтобы поменять код сразу на пяти страницах, мы должны разложить этот код на части, то есть - на самостоятельные файлы. Разбиваем наш HTML-код на три части:

PHP TEST

Раздел 1

Раздел 2

Раздел 3

Раздел 4

Раздел 5

Раздел № …

Таким образом, мы увидели каким образом можно разобрать нашу страницу. Очень простой пример, наверное самый легко усваиваемый в сети, за что огромное спасибо автору! Усложнением каждый из нас будет заниматься самостоятельно.

Что ж делать теперь? А вот что.

Сохраняем наши части следующим образом

(обратите внимание на строку, объявляющую PHP код):

Файл - header.php

PHP TEST

Раздел 1

Раздел 2

Раздел 3

Раздел 4

Раздел 5

Файл - footer.php

Куда ж делся файл mainblock.php? Его и не выделяют в отдельный файл. С этим файлом в дальнейшем работает веб-мастер. В нем будет содержаться основной контент страницы. И править мы его будем «ручками», а то размечтались все на автомат поставить;).

Смотрим что получилось в итоге.

Два файла:

Первый файл отвечает у нас за "верхнюю часть" нашей странички, второй - за "нижнюю".

Мы подошли вплотную к созданию php шаблона сайта.

Что делаем теперь? А вот как. Создаем еще один файл. К примеру назовем его - test.php. Этот файл и будет нашим шаблоном. Рассмотрим, как же нам собрать нашу страничку.

Воспользуемся для этого функцией include(); Эта функция позволяет нам включить в наш код PHP, другой файл. Итак! Внимание! Таинство начинается.

Пишем следующее:

#все дальнейшее обрабатывается интерпретатором PHP ?>

#подключаем наш заголовок страницы

include("header.php");

#Подключаем наш подвал

include("footer.php");

Всё. Мы с вами создали на PHP шаблон страницы. Теперь, если мы загрузим этот файл через браузер (предварительно, разобравшись с работой денвера или же установив, отдельно связку Apache + PHP), то получим, при просмотре в "блокноте", следующий код:

PHP TEST

Раздел 1

Раздел 2

Раздел 3

Раздел 4

Раздел 5

Это шаблон нашего сайта. Тут у нас идет основная информация

Делаем много страниц нашему php сайту

Теперь мы можем переименовывать эту страницу хоть сотней различных имен (пользоваться сохранить как..., умеют уж все). Соответственно множим страницы с именами:

Изменяем информацию на этих страницах между

Это Раздел 1

Это Раздел 2

Это Раздел 5

Если Вы уже перечитали необходимую литературу по php , то без труда догадались, что все эти файлы должны быть сохранены в одной директории. Если Вы, к примеру, сохраняете шаблоны страниц в отдельной директории, то строчка включения файла в код будет выглядеть следующим образом: include("dir_name/header.php");. Где "dir_name" имя вашей директории.

Подведем итог.

Мы получили 5 файлов, которые выглядят одинаково. При этом, редактируя файлы header.php и footer.php имеем возможность изменить внешний вид всех 5 файлов. Попробуйте, покликайте по ссылкам. Смело изменяйте что-нибудь в файлах header.php или footer.php и посмотрите как эти изменения коснутся каждой страницы. Что и требовалось получить. Вот так вот несложно.

Приведенный пример прост и примитивен, что и нужно для первых шагов в изучении и создании сайта на языке php.

Все поставленные цели в начале этого урока выполнены:

Создали сайт на PHP

Облегчили себе всю дальнейшую жизнь, связанную с поддержкой сайта

Добились того, что страницы выдержаны в одном стиле

Этот урок был написан в 2003 году, с тех пор сам php совершенствовался не раз. Урок найден по ссылке как сделать сайт на php.

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

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

Если же вы готовы к серьезному изучению php, то лучше видео курса от Попова найти сложно. У него огромный опыт и хороший слог.

Из предыдущих уроков мы узнали, что с помощью метода GET можно передавать некоторые параметры прямо в URL. Однако ничто не мешает нам делать это без форм, просто перечисляя их в URL.

Мы можем передавать параметры через URL. И мы можем получить эти параметры прямо в скрипте. Так что нам мешает показывать пользователю разные страницы в зависимости от параметров в URL?

Создание динамической страницы

Чтобы показывать пользователю разные страницы, нужно подготовить контент. Пусть он лежит в многомерном массиве:

"Создание динамических страниц", "content" => "Текст статьи про динамические страницы." ], [ "title" => "Как поймать котёнка", "content" => "Текст статьи про котят." ] ]; ?>

Динамический параметр в URL будет называться id, а ловить его будем в $_GET["id"] . Мы могли бы добавить поле id каждому элементу массива, но тогда пришлось бы перебирать все элементы и искать подмассив с нужным id. Поэтому гораздо проще в качестве id использовать ключи главного массива.

Проще говоря, мы берём id и пытаемся найти статью с таким ключом в массиве $articles. Выглядит это следующим образом:

Осталось только набросать вывод меню и проверку id на корректность. Получается настоящий php-роутер!

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

Ошибка 404: страница не найдена

Теперь вы можете создавать динамические сайты, на которых количество страниц зависит от количества элементов массива, а не PHP файлов. :) Если на сайте должны быть разные типы страниц, например статья и товар, можно вторым параметром передавать тип страницы: site.ru?type=article&id=5 .

Конечно, эта система не идеальна. Через некоторое время вы узнаете, как сделать нормальное ЧПУ (более удобные URL, например site.ru/articles/5/) и хранить статьи в файле или базе данных.

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

Динамические страницы и что для них нужно

Помимо статических есть ещё динамические страницы. Таких сейчас в Интернете большинство. Информация в них подгружается из внешних источников, например базы данных или других файлов. Содержимое и форматирование таких страниц может меняться в зависимости от действий пользователя. Для правки динамических сайтов не обязательно вмешиваться в их код – достаточно изменить контент в специально для него предназначенном файле или базе данных, которая, к слову, представляет собой тоже файл, только определённым образом структурированный.

Для создания динамических сайтов только 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; height:450px; border:1px solid #000000; background: #999999; float:left; } .sidebar { width:180px; height:450px; border:1px solid #000000; background: #FF9900; float:left; } .foot { clear:both; } .footer { margin-top: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 . Конечно, высокой уникальности дизайна будущего сайта никто не гарантирует, и в дальнейшем могут возникнуть проблемы с переносом и адаптацией ресурса на другой хостинговой площадке или платформе. Вот несколько проверенных вариантов таких онлайн-сервисов.