Создание сайта на PHP
Представляем вам курс по созданию полноценного динамического веб сайта на основе языка PHP. При построении сайта нами будут задействованы технологии: HTML, CSS, JavaScript, jQuery, Ajax, PHP и MySQL.
Видеоурок
Информация про курс
В видеокурсе мы будем создавать веб сайт с нуля. Мы построим всю разметку, добавим необходимые стили, а также весь функционал, что будет прописан на основе языка PHP.
Мы рассмотрим основные моменты при создании динамических веб сайтов на основе серверного языка PHP. Перед созданием сайта потребуется изучить: HTML, CSS, JavaScript, jQuery, PHP и MySQL.
Если вы не знаете какую-либо из этих технологий, то изначально стоит ознакомиться с ней. На нашем сайте вы можете найти соответсвующие курсы по этим технологиям:
- Курс по HTML5 ;
- Курс по CSS3 ;
- Курс по JavaScript ;
- Курс по jQuery ;
- Курс по PHP ;
- Курс по MySQL .
Создание сайта на PHP
Предлагаем также вашему вниманию рассмотреть большой урок по созданию полноценного веб сайта на PHP всего за один час.
Создание PHP+MySQL сайта: от простого к сложному — шаг первый
Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам — то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим.
1. Подготовка базы данных. Создаём первую таблицу в БД MySQL
Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке.
В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:
- page_id — идентификатор страницы (SMALLINT, primary key, auto_increment);
- page_alias — псевдоним страницы для строки адреса ЧПУ (VARCHAR, 255);
- page_title — название страницы в окне браузера (VARCHAR, 255);
- page_meta_d — мета описание страницы для тега meta description (VARCHAR, 255);
- page_meta_k — мета ключевые слова для тега meta keywords (VARCHAR, 255);
- page_h1 — заголовок страницы (VARCHAR, 255);
- page_s_desc — краткое описание материала, например если материалы сайта будут в виде блога (TEXT);
- page_content — основной текст страницы, который будет выводиться в центральную колонку сайта (TEXT);
- page_publish — содержит «Y» — если страница опубликована, или «N» — если она скрыта (CHAR, по умолчанию «Y»).
Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги — соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д.
2. Создаём файл конфигурации сайта
В корневой папке сайта, которая должна быть пуста на данном этапе, создаём папочку «cfg», в ней с помощью .htaccess закрываем доступ директивой «deny from all». Создаём файл core.php следующего содержания:
// MYSQL
class MyDB
var $dblogin = «root»; // ВАШ ЛОГИН К БАЗЕ ДАННЫХ
var $dbpass = «»; // ВАШ ПАРОЛЬ К БАЗЕ ДАННЫХ
var $db = «mysite»; // НАЗВАНИЕ БАЗЫ ДЛЯ САЙТА
var $dbhost=»localhost»;
var $link;
var $query;
var $err;
var $result;
var $data;
var $fetch;
function connect() $this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query(‘SET NAMES utf8’);
>
function close() mysql_close($this->link);
>
function run($query) $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);
>
>
Этот файл пока содержит только простой класс подключения к базе данных, но в дальнейшем в него можно добавлять разные полезные функции, которые будут доступны из любого места в коде сайта. Не забудьте изменить логин и пароль к Вашей базе.
Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор Notepad++. В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 — конвертируйте файлы в UTF-8 without BOM — это поможет избежать проблем в будущем.
3. Создаём index.php — главный контроллер сайта
Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php — это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:
define(«INDEX», «»); // УСТАНОВКА КОНСТАНТЫ ГЛАВНОГО КОНТРОЛЛЕРА
require_once($_SERVER[DOCUMENT_ROOT].»/cfg/core.php»); // ПОДКЛЮЧЕНИЕ ЯДРА
// ПОДКЛЮЧЕНИЕ К БД
$db = new MyDB();
$db->connect();
// ГЛАВНЫЙ КОНТРОЛЛЕР
switch ($_GET[option]) case «page»:
include($_SERVER[DOCUMENT_ROOT].»/com/page.php»);
break;
default:
include($_SERVER[DOCUMENT_ROOT].»/com/home.php»);
break;
>
include ($_SERVER[DOCUMENT_ROOT].»/template.php»);
$db->close();
Переменная $_GET[option] будет указывать главному контроллеру какой компонент сайта загружать при запросе. Сейчас в нашем сайте предусмотрено только два компонента: «страница» и «главная страница» (в принципе можно обойтись и одним компонентом вывода обычной страницы, но часто вид главной страницы сайта отличается от обычных страниц пунктов меню). Логика работы главного контроллера такова: из URL строки извлекается название нужного компонента (значение переменной $option), в зависимости от его значения подключается файл самого компонента (содержится в папке /com). Файл компонента выполняет все необходимые работы, извлекает из базы данные и записывает их в переменные, для передачи в шаблон дизайна. В самом конце подключается файл дизайна сайта, в который и передаются все переменные и данные, извлечённые в компонентах. Это звучит намного сложнее, чем работает.
4. Создаём компонент вывода обычной страницы
В корне сайта создаём папочку «com» — в ней будут храниться файлы компонентов. Компонент сайта, в моём понимании — это файл, в котором происходит обработка данных для разных разделов сайта. Например компонент обычной страницы извлекает из базы данных название, описание и текст материала, и записывает их в переменные $title, $meta_d, $meta_k, $content и др. Эти данные потом передаются в шаблон дизайна (под каждый компонент можно создавать свой шаблон дизайна) и выводятся пользователю в виде HTML-страницы. Например, компонент каталога, который можно создать в будущем, выполнял бы почти то же самое, но с данными про товары — а там своя специфика, другие поля в таблице, итд. По-этому для каждого функционального раздела сайта стоит создавать отдельный компонент. В схеме MVC (Model-View-Controller) компонент выполняет роль модели.
Создаём в папке «com» файл «page.php». Содержимое файла следущее:
/* КОМПОНЕНТ СТРАНИЦЫ */
$alias = $_GET[alias];
$query = «SELECT * FROM pages WHERE page_alias='».$alias.»‘ AND page_publish=’Y’ LIMIT 1″;
$db->run($query);
$db->row();
// ПЕРЕМЕННЫЕ КОМПОНЕНТА
$id = $db->data[page_id];
$alias = $db->data[page_alias];
$title = $db->data[page_title];
$h1 = $db->data[page_h1];
$meta_d = $db->data[page_meta_d];
$meta_k = $db->data[page_meta_k];
$s_desc = $db->data[page_s_desc];
$component = $db->data[page_content];
// ЕСЛИ СТРАНИЦЫ НЕ СУЩЕСТВУЕТ
if (!$id) header(«HTTP/1.1 404 Not Found»);
$component = «ОШИБКА 404! Данной страницы не существует»;
>
$db->stop();
5. Создаём компонент вывода главной страницы
Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта — это просто статья. Тем не менее создадим для неё отдельный компонент — на перспективу, так сказать.
Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:
$query = «SELECT * FROM wx_pages WHERE page_alias=’home’ LIMIT 1»;
6. Создаём шаблон дизайна всего сайта
В корне сайта создаём файл template.php. По сути это обычный макет web-дизайна в формате HTML+CSS, только с PHP переменными в нужных местах. Между тегами title вставочка , в центральной колонке сайта вставочка и так по всему шаблону расставляем нужные переменные, которые объявлены в компонентах.
В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css — можно настроить стили по своему усмотрению.
7. Чистые ссылки и файл .htaccess
Для создания чистых ссылок я использую mod_rewrite с прямыми указаниями правил для каждого компонента отдельно, так как разбор адресной строки средствами самого контроллера считаю излишним функционалом. Содержимое .htaccess на данном этапе такое:
# ЗАПРЕЩЁННЫЕ ФАЙЛЫ
RewriteRule .htaccess — [F]
RewriteRule template.php — [F]
# ПРАВИЛА mod_rewrite
RewriteRule page/([a-z0-9_-]+)([\/])\.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
Однако этого недостаточно, чтобы создать даже самый простой сайт с формой регистрации. Для этого необходимы НАВЫКИ ВЕБ-ПРОГРАММИРОВАНИЯ. В эту часть увлекательного путешествия и направляемся.

Frontend и Backend
Программирование можно условно разделить на 2 части: Frontend и Backend.
Frontend разработка — это внешний вид сайта, результат этой работы видят пользователи на экране монитора.
Backend — это внутренняя часть сайта, результат этой работы вы видите через frontend разработку. Когда вы делаете любой запрос: в поиске, нажимаете активную ссылку, кнопку и т.д., то практически мгновенно получаете результат на экран.
Этот путь от вашего запроса до получения результата и есть невидимая сторона работы любого сайта: логика всех запросов, чтобы выдать требуемый результат.

Приведем аналогию с устным счетом: сложите 32 и 47. Ваш мыслительный процесс никто не видит, он внутри вас. Вы используете свою логику подсчета, так же и сайт использует для выполнения поставленной задачи логику backend разработки.
Основы backend-разработки — PHP/MySQL
PHP — это язык программирования для создания веб-сайтов.
Веб-сайт (website) — совокупность HTML страниц и других электронных документов, с общим дизайн, взаимосвязанных гиперссылками и расположенных на одном доменном имени.
PHP хорошо встраивается в верстку уже известного вам языка HTML.
PHP применяется тогда, когда нужно какую-то информацию хранить на сервере.
Язык PHP отвечает ЗА ЛОГИКУ поведения сайта, но само знание языка не сделает из вас разработчика, вам необходимо научиться СТРОИТЬ АЛГОРИТМЫ.
Например, строим логику таким образом, что только администратор может изменить запись в блоге или посмотреть отчет о продажах в интернет-магазине, другим пользователям эти действия недоступны .

Любой язык прост, если научиться его понимать!
Наша задача научить вас ЧИТАТЬ чужой код, и СОЗДАВАТЬ свой.Что это значит?
Когда вы видите код уже написанной программы, то читая его, легко представите себе, что будет происходить на экране монитора в результате логики работы алгоритмов.

Чтобы научиться web-программированию разбиритесь — какой у вас есть строительный материал для сайтостроения. На данном этапе это язык программирования PHP и база данных MySQL.
Чтобы понимать язык достаточно разобраться в синтаксисе, основных определениях и правилах применения.
Ваши основные строительные материалы:
— переменные и их типы,
— массивы и работа с ними,
— функции и создание собственных функций,
— отправка и получение данных из HTML-форм (GET, POST),
— объектно-ориентированное программирование (Классы, инкапсуляция, полиморфизм, наследование, интерфейсы)
Основы безопасности сайта

Важно знать, КАК защитить свое творение. В этом модуле PHP/MySQL научитесь грамотно писать программы на PHP, чтобы вероятность взлома сайта стремилась к нулю.
Перейдем к базам данных MySQL/MariaDB
Практически любой сайт имеет базу данных. Это хранилище, в котором собирается и структурируется используемая на сайте информация. Например, если это блог, то в базе хранятся: темы статей, сами статьи, имена авторов, дата публикации, название рубрики, комментарии и т.д.
Вам интересно узнать статистику своего сайта? Сколько посещений, время нахождения на сайте, количество новых пользователей, сколько было продаж и т.д. Это аналитическая информация и она тоже хранится в базе данных.

MySQL/MariaDB — это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Большинство данных веб-сайта хранится в MySQL/MariaDB.
SQL — язык запросов к базам данных, с помощью которого можно выбирать данные из таблиц, сортировать данные, суммировать числовые данные, которые хранятся в ячейках таблицы. Таблицы в базах данных похожи на таблицы в Excel, но с помощью SQL можно удобно работать с этими данными.

Научиться работать с базами данных необходимо.
Основные операции:
— ввод и вывод данных,
— сортировка,
— обновление,
— удаление.
В процессе обучения вы знакомитесь с системой администрирования сайта и спроектируйте свою первую структуру таблиц базы данных.

Подружите их в своей деятельности по сайтостроению на курсе PHP/MySQL на интерактивной он-лайн платформе beONmax.
На PHP пишут программы по: регистрации и авторизации пользователей, поиску по сайту, можно создать собственные движки, вычислительного робота, автоматизировать повторяющиеся алгоритмы, создать интернет-магазин и т.д.
Очень много вакансий на работу PHP-программистом! PHP — это один из самых распространенных языков веб-программирования! То есть, зная всего один язык программирования, сможете реализовать тысячи всевозможных проектов, как для себя, так и для других людей за хорошие деньги!
PHP достаточно прост и это будет очень важно для тех, кто еще ни разу не программировал! Научившись PHP, вы проще осваиваете другие языки программирования.

Секрет неуклонного движения вперед в том, чтобы сделать первый шаг. Секрет первого шага в том, чтобы разбить сложные задачи на простые и начать с самой первой.
Марк Твен
Будь на максимуме! Включайся в web!
команда beONmax
Ждать не нужно когда наберется группа или наступит дата начала курса — на beONmax вы приступаете к обучению сразу!
Поделитесь в социальных сетях
Как самостоятельно сделать сайт на PHP?
Перед тем, как сделать сайт на php , нужно предпринять меры предосторожности. Потому что ресурс может получиться крайне динамичным. Того и гляди, укусит!
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 сайт со следующей структурой и дизайном:

Код файла 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
Перед тем, как написать сайт на php до конца, весь html код нужно раскинуть по нескольким файлам:
- В header.php войдет весь код с начала и до конца слоя « header »;
- В footer.php – слой « foot » и « footer »;
- В content.php – весь код, оставшийся посредине.
Теперь создаем основную страницу index.php , в которой будут размещены вызовы файлов, содержащие в себе код нужных элементов дизайна. Итого в основном файле оказалось всего 3 строчки скрипта:
А если просмотреть в браузере html код страницы, то вы увидите код первоначального исходника:

Конечно, этот вариант подходит лишь для генерации основной страницы сайта. Но если код боковушки убрать в отдельный файл, тогда шаблон можно использовать и для генерации внутренних страниц сайта.
Путь в обход
Но такая разработка сайта требует затраты сил, наличия специализированного программного обеспечения и знаний. Поэтому хотелось бы найти более легкий вариант. Тогда следует воспользоваться конструктором php сайтов.
Они представляют собой определенный набор шаблонов с расширенным диапазоном настроек. Из-за чего они сильно схожи с обычными CMS . Конечно, высокой уникальности дизайна будущего сайта никто не гарантирует, и в дальнейшем могут возникнуть проблемы с переносом и адаптацией ресурса на другой хостинговой площадке или платформе. Вот несколько проверенных вариантов таких онлайн-сервисов:
- wix.com – дополнительно к конструктору предлагается бесплатный хостинг, подключение домена и оптимизация созданного сайта для работы на мобильных устройствах.

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


