PHP. Динамическое создание страниц. Динамические страницы в PHP Создаём компонент вывода обычной страницы
Самый простой пример динамического сайта на PHP, это проще, чем кажется изначально.
Данный пример шаблона работает без баз данных MSQL, но это решается в процессе разработки, а на данном этапе все написано на HTML и PHP. В дальнейшем будет показан пример более сложного шаблона, а пока остановимся на простом, которого вполне достаточно, для создания отличного сайта.
Если вам нужно создать и раскрутить сайт под заказ, то следует обратиться в проверенную веб студию по раскрутке сайта .
Для начала, нужно узнать и понять различия динамики от простого html сайта, который описан в прошлом уроке и на основе которого будет построен данный проект. Так что желательно изучить , тогда очень легко будет разобраться в данной статье.
А отличие от простого сайта заключается именно в быстроте обслуживания! Кто уже знаком с простым HTML сайтом, тот знает, что для смены баннера, нужно перелопатить сайт полностью, каждую страницу… Что занимает очень много времени. А в динамическом — все можно сделать за несколько минут, не зависимо от того, сколько страниц у сайта, хоть 1000, на время редактирования это не влияет! Думаю даже этого достаточно, для того чтобы изучить данный пример!
Для примера будет взят шаблон сайта, написанный с применением тега
И так, посмотрите на пример страницы обычного шаблона, которую будем резать на отдельные файлы.
— здесь будет разрез, а содержимое будет отдельным файлом —
Наполнение сайта
— все что ниже, также будет отдельным файлом —
Порезка HTML — шаблона на PHP блоки.
Первый файл будет содержать всю шапку сайта, аж до открытия блока И название файла будет header.php Второй файл будет основным, содержать все наполнение сайта — контент, который не будет меняться в будущем, или очень редко. Статья обычно размещается один раз, а изменения на одной странице, дело не хлопотное. К нему и будут подключаться остальные файлы, отвечающие за дизайн. И называться будет он будет например — title.php
— здесь будет разрез, контент также будет отдельным файлом — И название файла будет title.php Все остальное — блок левого сайдбара и футер, формируем в третий файл — footer.php.
Теперь можно начать собирать наш сайт, как конструктор и понять все таинство создания динамического сайта. Для этого нужно к основному файлу подключить два файла, отвечающие за дизайн и содержащие левый сайдбар. Вот тут нам и нужны элементарные знания PHP, без чего ничего не получиться. И для этого нужно применить уже известную нам функцию require
. — подключение файла footer.php И вот наша страница собрана! А данный файл — title.php
будет шаблоном,с которого формируются новые страницы. И не зависимо от того, какая программа открывает ваши php-файлы, у меня установлена прога PHP Expert Editor, через которую очень удобно перекодировать страницы, должно получиться так, как на изображении. Два файла обязательных и три страницы. А дальше можно добавлять свои изменения, зависимо от того, что Вы хотите от Вашего сайта. Например, если ввести переменную, которая будет выводить заголовок для каждой страницы по отдельности, А в шаблон добавить код, который будет содержать в себе свое уникальное название страницы, что необходимо для правильного . Здесь можно писать что угодно и вставлять любую информацию, Хочу обратить Ваше внимание на один очень важный момент. Это касается разработки сайта любой сложности — перед созданием нового проекта, очень внимательно и четко определитесь со всеми будущими функциями проекта. Например, если будет блог, тогда нужен блок коментариев, а для этого нужно ввести переменную, которая будет определять уникальный адрес страницы и т.д. Одним словом — общую нужно продумывать до … , потому что после — будет много недоработок, которые исправлять очень долго и мучительно, и этот совет относиться и к простым сайтам, и к сложным проектам, построенным на супер-новом движке! Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам - то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим. Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке. Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги - соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д. В корневой папке сайта, которая должна быть пуста на данном этапе, создаём папочку «cfg», в ней с помощью.htaccess закрываем доступ директивой «deny from all». Создаём файл core.php следующего содержания:
// MYSQL Var $link; Function connect() { Function close() { Function run($query) { Этот файл пока содержит только простой класс подключения к базе данных, но в дальнейшем в него можно добавлять разные полезные функции, которые будут доступны из любого места в коде сайта. Не забудьте изменить логин и пароль к Вашей базе. Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор . В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 - конвертируйте файлы в UTF-8 without BOM - это поможет избежать проблем в будущем. Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php - это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:
define("INDEX", ""); // УСТАНОВКА КОНСТАНТЫ ГЛАВНОГО КОНТРОЛЛЕРА Require_once($_SERVER."/cfg/core.php"); // ПОДКЛЮЧЕНИЕ ЯДРА
// ПОДКЛЮЧЕНИЕ К БД
// ГЛАВНЫЙ КОНТРОЛЛЕР Include ($_SERVER."/template.php"); Переменная $_GET будет указывать главному контроллеру какой компонент сайта загружать при запросе. Сейчас в нашем сайте предусмотрено только два компонента: «страница» и «главная страница» (в принципе можно обойтись и одним компонентом вывода обычной страницы, но часто вид главной страницы сайта отличается от обычных страниц пунктов меню). Логика работы главного контроллера такова: из URL строки извлекается название нужного компонента (значение переменной $option), в зависимости от его значения подключается файл самого компонента (содержится в папке /com). Файл компонента выполняет все необходимые работы, извлекает из базы данные и записывает их в переменные, для передачи в шаблон дизайна. В самом конце подключается файл дизайна сайта, в который и передаются все переменные и данные, извлечённые в компонентах. Это звучит намного сложнее, чем работает. В корне сайта создаём папочку «com» - в ней будут храниться файлы компонентов. Компонент сайта, в моём понимании - это файл, в котором происходит обработка данных для разных разделов сайта. Например компонент обычной страницы извлекает из базы данных название, описание и текст материала, и записывает их в переменные $title, $meta_d, $meta_k, $content и др. Эти данные потом передаются в шаблон дизайна (под каждый компонент можно создавать свой шаблон дизайна) и выводятся пользователю в виде HTML-страницы. Например, компонент каталога, который можно создать в будущем, выполнял бы почти то же самое, но с данными про товары - а там своя специфика, другие поля в таблице, итд. По-этому для каждого функционального раздела сайта стоит создавать отдельный компонент. В схеме MVC (Model-View-Controller) компонент выполняет роль модели. Создаём в папке «com» файл «page.php». Содержимое файла следущее:
/* КОМПОНЕНТ СТРАНИЦЫ */ Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта - это просто статья. Тем не менее создадим для неё отдельный компонент - на перспективу, так сказать. Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:
$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1"; В корне сайта создаём файл template.php. По сути это обычный макет web-дизайна в формате HTML+CSS, только с PHP переменными в нужных местах. Между тегами title вставочка =$title?>, в центральной колонке сайта вставочка =$component?> и так по всему шаблону расставляем нужные переменные, которые объявлены в компонентах. В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css - можно настроить стили по своему усмотрению. Для создания чистых ссылок я использую mod_rewrite с прямыми указаниями правил для каждого компонента отдельно, так как разбор адресной строки средствами самого контроллера считаю излишним функционалом. Содержимое.htaccess на данном этапе такое:
RewriteCond %{REQUEST_FILENAME} !-d
# ЗАПРЕЩЁННЫЕ ФАЙЛЫ
# ПРАВИЛА mod_rewrite В будущем мы будем дописывать правила для компонентов поиска, каталога, блога статей и т.д. Смысл один: преобразовать ссылки вида «mysite.com/index.php?option=pages&alias=about » в ссылку вида «mysite.com/pages/about.htm » - смотрится довольно красиво. Старайтесь в разработке избегать массива $_GET в целях безопасности и не надеяться на него. Целесообразно хранить в нём только параметры для главного контроллера (переменная $option) и для компонента (переменная $alias). Также в каждой папке сайта «на всякий случай» создайте пустой файл index.html - это нужно для того, чтобы при обращении к каталогу через адресную строку ничего не отображалось. Теги:
php, mysql, движок сайта, контроллер, создание сайта, mvc Из предыдущих уроков мы узнали, что с помощью метода 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): ?>
">= $article["title"] ?>
Теперь вы можете создавать динамические сайты, на которых количество страниц зависит от количества элементов массива, а не PHP файлов. :) Если на сайте должны быть разные типы страниц, например статья и товар, можно вторым параметром передавать тип страницы: site.ru?type=article&id=5
. Конечно, эта система не идеальна. Через некоторое время вы узнаете, как сделать нормальное ЧПУ (более удобные URL, например site.ru/articles/5/) и хранить статьи в файле или базе данных. Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам - то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим. Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке. Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги - соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д. В корневой папке сайта, которая должна быть пуста на данном этапе, создаём папочку «cfg», в ней с помощью.htaccess закрываем доступ директивой «deny from all». Создаём файл core.php следующего содержания:
// MYSQL Var $link; Function connect() { Function close() { Function run($query) { Этот файл пока содержит только простой класс подключения к базе данных, но в дальнейшем в него можно добавлять разные полезные функции, которые будут доступны из любого места в коде сайта. Не забудьте изменить логин и пароль к Вашей базе. Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор . В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 - конвертируйте файлы в UTF-8 without BOM - это поможет избежать проблем в будущем. Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php - это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:
define("INDEX", ""); // УСТАНОВКА КОНСТАНТЫ ГЛАВНОГО КОНТРОЛЛЕРА Require_once($_SERVER."/cfg/core.php"); // ПОДКЛЮЧЕНИЕ ЯДРА
// ПОДКЛЮЧЕНИЕ К БД
// ГЛАВНЫЙ КОНТРОЛЛЕР Include ($_SERVER."/template.php"); Переменная $_GET будет указывать главному контроллеру какой компонент сайта загружать при запросе. Сейчас в нашем сайте предусмотрено только два компонента: «страница» и «главная страница» (в принципе можно обойтись и одним компонентом вывода обычной страницы, но часто вид главной страницы сайта отличается от обычных страниц пунктов меню). Логика работы главного контроллера такова: из URL строки извлекается название нужного компонента (значение переменной $option), в зависимости от его значения подключается файл самого компонента (содержится в папке /com). Файл компонента выполняет все необходимые работы, извлекает из базы данные и записывает их в переменные, для передачи в шаблон дизайна. В самом конце подключается файл дизайна сайта, в который и передаются все переменные и данные, извлечённые в компонентах. Это звучит намного сложнее, чем работает. В корне сайта создаём папочку «com» - в ней будут храниться файлы компонентов. Компонент сайта, в моём понимании - это файл, в котором происходит обработка данных для разных разделов сайта. Например компонент обычной страницы извлекает из базы данных название, описание и текст материала, и записывает их в переменные $title, $meta_d, $meta_k, $content и др. Эти данные потом передаются в шаблон дизайна (под каждый компонент можно создавать свой шаблон дизайна) и выводятся пользователю в виде HTML-страницы. Например, компонент каталога, который можно создать в будущем, выполнял бы почти то же самое, но с данными про товары - а там своя специфика, другие поля в таблице, итд. По-этому для каждого функционального раздела сайта стоит создавать отдельный компонент. В схеме MVC (Model-View-Controller) компонент выполняет роль модели. Создаём в папке «com» файл «page.php». Содержимое файла следущее:
/* КОМПОНЕНТ СТРАНИЦЫ */ Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта - это просто статья. Тем не менее создадим для неё отдельный компонент - на перспективу, так сказать. Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:
$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1"; В корне сайта создаём файл template.php. По сути это обычный макет web-дизайна в формате HTML+CSS, только с PHP переменными в нужных местах. Между тегами title вставочка =$title?>, в центральной колонке сайта вставочка =$component?> и так по всему шаблону расставляем нужные переменные, которые объявлены в компонентах. В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css - можно настроить стили по своему усмотрению. Для создания чистых ссылок я использую mod_rewrite с прямыми указаниями правил для каждого компонента отдельно, так как разбор адресной строки средствами самого контроллера считаю излишним функционалом. Содержимое.htaccess на данном этапе такое:
RewriteCond %{REQUEST_FILENAME} !-d
# ЗАПРЕЩЁННЫЕ ФАЙЛЫ
# ПРАВИЛА mod_rewrite В будущем мы будем дописывать правила для компонентов поиска, каталога, блога статей и т.д. Смысл один: преобразовать ссылки вида «mysite.com/index.php?option=pages&alias=about » в ссылку вида «mysite.com/pages/about.htm » - смотрится довольно красиво. Старайтесь в разработке избегать массива $_GET в целях безопасности и не надеяться на него. Целесообразно хранить в нём только параметры для главного контроллера (переменная $option) и для компонента (переменная $alias). Также в каждой папке сайта «на всякий случай» создайте пустой файл index.html - это нужно для того, чтобы при обращении к каталогу через адресную строку ничего не отображалось. Теги:
php, mysql, движок сайта, контроллер, создание сайта, mvc Create a file named hello.php and put it
in your web server"s root directory (DOCUMENT_ROOT)
with the following content: Example #1 Our first PHP script: hello.php
Use your browser to access the file with your web server"s URL, ending
with the /hello.php
file reference. When developing locally this
URL will be something like http://localhost/hello.php
or http://127.0.0.1/hello.php
but this depends on the
web server"s configuration. If everything is configured correctly, this
file will be parsed by PHP and the following output will be sent to
your browser:
Hello World This program is extremely simple and you really did not need to use
PHP to create a page like this. All it does is display:
Hello World
using the PHP echo
statement. Note that the file does not need to be executable
or special in any way. The server finds out that this file needs to be interpreted
by PHP because you used the ".php" extension, which the server is configured
to pass on to PHP. Think of this as a normal HTML file which happens to have
a set of special tags available to you that do a lot of interesting things. If you tried this example and it did not output anything, it prompted
for download, or you see the whole file as text, chances are that the
server you are on does not have PHP enabled, or is not configured properly.
Ask your administrator to enable it for you using the
Installation chapter
of the manual. If you are developing locally, also read the
installation chapter to make sure everything is configured
properly. Make sure that you access the file via http with the server
providing you the output. If you just call up the file from your file
system, then it will not be parsed by PHP. If the problems persist anyway,
do not hesitate to use one of the many
options. The point of the example is to show the special PHP tag format.
In this example we used to indicate the
start of a PHP tag. Then we put the PHP statement and left PHP mode by
adding the closing tag, ?>
. You may jump in
and out of PHP mode in an HTML file like this anywhere you want. For more
details, read the manual section on the basic PHP syntax . Note
:
A Note on Line Feeds
Line feeds have little meaning in HTML, however it is still a good idea
to make your HTML look nice and clean by putting line feeds in. A
linefeed that follows immediately after a closing
?>
will be removed by PHP. This can be extremely
useful when you are putting in many blocks of PHP or include files
containing PHP that aren"t supposed to output anything. At the same time
it can be a bit confusing. You can put a space after the closing
?>
to force a space and a line feed to be output,
or you can put an explicit line feed in the last echo/print from within
your PHP block. Note
:
A Note on Text Editors
There are many text editors and Integrated Development Environments (IDEs)
that you can use to create, edit and manage PHP files. A partial list of
these tools is maintained at » PHP Editors
List . If you wish to recommend an editor, please visit the above
page and ask the page maintainer to add the editor to the list. Having
an editor with syntax highlighting can be helpful. Note
:
A Note on Word Processors
Word processors such as StarOffice Writer, Microsoft Word and Abiword are
not optimal for editing PHP files. If you wish to use one for this
test script, you must ensure that you save the file as plain
text
or PHP will not be able to read and execute the script. Note
:
A Note on Windows Notepad
If you are writing your PHP scripts using Windows Notepad, you will need
to ensure that your files are saved with the .php extension.
(Notepad adds a .txt extension to files automatically unless
you take one of the following steps to prevent it.) When you save the file and
are prompted to provide a name for the file, place the filename in quotes
(i.e. " hello.php "). Alternatively, you can click on the
"Text Documents" drop-down menu in the "Save" dialog box and change the setting
to "All Files". You can then enter your filename without quotes. Now that you have successfully created a working PHP script, it is
time to create the most famous PHP script! Make a call to the
phpinfo()
function and you will see a lot of useful
information about your system and setup such as available
predefined variables ,
loaded PHP modules, and configuration
settings. Take some time and review this important information. Example #2 Get system information from PHP
Наполнение сайта
— все что ниже, также будет отдельным файлом —
и название файла будет footer.php
— подключение файла header.php
Наполнение сайта
И сотворим главную, название которой будет index.php
. Для этого просто скопируем файл title.php и при сохранении его в той же папке, дадим название index.php. И по такому же принципу создаются все новые страницы. Отличным будет только наполнение, все остальное у них будет общим, и легко будет поддаваться мгновенным изменениям!!!
тогда нужно добавить такой код в файл header.php
$title =’Пример динамического сайта на PHP. ‘;
require ‘header.php’;
?>
Наполнение сайта
предназначенную для посетителя.
1. Подготовка базы данных. Создаём первую таблицу в БД MySQL
В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:2. Создаём файл конфигурации сайта
class MyDB
{
var $dblogin = "root"; // ВАШ ЛОГИН К БАЗЕ ДАННЫХ
var $dbpass = ""; // ВАШ ПАРОЛЬ К БАЗЕ ДАННЫХ
var $db = "mysite"; // НАЗВАНИЕ БАЗЫ ДЛЯ САЙТА
var $dbhost="localhost";
var $query;
var $err;
var $result;
var $data;
var $fetch;
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("SET NAMES utf8");
}
mysql_close($this->link);
}
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
function row() {
$this->data = mysql_fetch_assoc($this->result);
}
function fetch() {
while ($this->data = mysql_fetch_assoc($this->result)) {
$this->fetch = $this->data;
return $this->fetch;
}
}
function stop() {
unset($this->data);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
}
}3. Создаём index.php - главный контроллер сайта
$db = new MyDB();
$db->connect();
switch ($_GET) {
case "page":
include($_SERVER."/com/page.php");
break;
default:
include($_SERVER."/com/home.php");
break;
}
$db->close(); 4. Создаём компонент вывода обычной страницы
$alias = $_GET;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->run($query);
$db->row();
// ПЕРЕМЕННЫЕ КОМПОНЕНТА
$id = $db->data;
$alias = $db->data;
$title = $db->data;
$h1 = $db->data;
$meta_d = $db->data;
$meta_k = $db->data;
$s_desc = $db->data;
$component = $db->data;
// ЕСЛИ СТРАНИЦЫ НЕ СУЩЕСТВУЕТ
if (!$id) {
header("HTTP/1.1 404 Not Found");
$component = "ОШИБКА 404! Данной страницы не существует";
}
$db->stop(); 5. Создаём компонент вывода главной страницы
6. Создаём шаблон дизайна всего сайта
7. Чистые ссылки и файл.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]
RewriteRule page/(+)([\/]{0,1})\.htm$ index.php?option=page&alias=$1 [L]Создание динамической страницы
= $current_article["title"] ?>
Ошибка 404: страница не найдена
1. Подготовка базы данных. Создаём первую таблицу в БД MySQL
В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:2. Создаём файл конфигурации сайта
class MyDB
{
var $dblogin = "root"; // ВАШ ЛОГИН К БАЗЕ ДАННЫХ
var $dbpass = ""; // ВАШ ПАРОЛЬ К БАЗЕ ДАННЫХ
var $db = "mysite"; // НАЗВАНИЕ БАЗЫ ДЛЯ САЙТА
var $dbhost="localhost";
var $query;
var $err;
var $result;
var $data;
var $fetch;
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("SET NAMES utf8");
}
mysql_close($this->link);
}
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
function row() {
$this->data = mysql_fetch_assoc($this->result);
}
function fetch() {
while ($this->data = mysql_fetch_assoc($this->result)) {
$this->fetch = $this->data;
return $this->fetch;
}
}
function stop() {
unset($this->data);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
}
}3. Создаём index.php - главный контроллер сайта
$db = new MyDB();
$db->connect();
switch ($_GET) {
case "page":
include($_SERVER."/com/page.php");
break;
default:
include($_SERVER."/com/home.php");
break;
}
$db->close(); 4. Создаём компонент вывода обычной страницы
$alias = $_GET;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->run($query);
$db->row();
// ПЕРЕМЕННЫЕ КОМПОНЕНТА
$id = $db->data;
$alias = $db->data;
$title = $db->data;
$h1 = $db->data;
$meta_d = $db->data;
$meta_k = $db->data;
$s_desc = $db->data;
$component = $db->data;
// ЕСЛИ СТРАНИЦЫ НЕ СУЩЕСТВУЕТ
if (!$id) {
header("HTTP/1.1 404 Not Found");
$component = "ОШИБКА 404! Данной страницы не существует";
}
$db->stop(); 5. Создаём компонент вывода главной страницы
6. Создаём шаблон дизайна всего сайта
7. Чистые ссылки и файл.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]
RewriteRule page/(+)([\/]{0,1})\.htm$ index.php?option=page&alias=$1 [L]
Hello World"
;
?>