Search
Write a publication
Pull to refresh

Свой движок сайта на php в связке с MySql, для начинающих

Среди обычных пользователей различных CMS, есть те, у которых есть желание создать свою собственную CMS. Одним из таких пользователей был я.
В конце декабря я загорелся желанием сделать что то свое, при очень малом знании языков. И теперь, я хочу помочь рядовому пользователю несколько освоится в связке php и MySql, и в том, как можно написать свой сайт.

Во первых, мы должны понять, что у нас будет за сайт, и какова будет его структура.
У меня была идея фикс — истории из игр, чтобы любой пользователь мог их добавлять и выводились они постранично из БД MySql.

И так, сначала разметим структуру страницы. Для меня это было:

Header
Menu
Content
Sidebar
Footer

Header — шапка сайта;
Menu — соответственно меню;
Content — содержимое страниц в моем случае истории, но содержимым может быть все, что угодно;
Sidebar — боковая колонка, где находились новости и лучшие истории;
Footer — нижняя часть сайта (подвал) с копирайтом.

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

После этого, я создал 6 пустых php: index.php, config.php, connect.php, header.php, menu.php, content.php, sidebar.php и footer.php.

Забыл отметить, что для удобства редактирование кода стоит скачать программу Notepad++ — русская версия в ней есть.

Итак, начнем с простого. Для начала, в файл index.php добавим вот этот код:

<?php
include('header.php');
include('menu.php');
include('content.php');
include('sidebar.php');
include('footer.php');
?>

Тэгами <?php и ?> мы открываем и закрываем наш код (вместо <?php можно использовать просто <?).
А конструкция include(' '); позволяет включать файлы в код PHP скрипта во время выполнения сценария. Т.Е. в код нашей главной страницы автоматически, и в заданном нами порядке будет включен код из всех файлов, которые мы «включили».

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

Наша следующая задача — создать в базе данных таблицы и заполнить их данными, касательно названия нашего сайта и тп.
Здесь мы можем пойти двумя путями:

  1. Создать полноценный установщик сайта, и панель администратора.
  2. Либо просто создать страницу типа install.php, в которую мы внесем все нашы данные и один раз перейдем на нее, для выгрузки данных и создания таблиц.


Для начала, пройдем вторым путем — простым.
Для этого мы сначала внесем в наш файл config.php данный код:

<?php
$title = GStories; // Введите заголовок сайта

/* Параметры подключения к MySql базе данных */
$username = "имя_пользователя"; // Логин пользователя MySql
$password = "пароль"; // Пароль для доступа к MySql
$server = "localhost"; // Сервер MySql ДБ
$database = "имя_базы_данных"; // Название вашей дб в MySql

$sitetitle = "название"; // Название сайта, отображаемое в Header
$about = "описание сайта";
?>


Помимо комментариев в самом коде, хочу добавить то, что $any_text — это переменные, которые мы задаем. Также, в php после любой функции, конструкции и тп. необходимо добавлять ";".

Итак, конфиг сайта мы создали, теперь перейдем к самому файлу установки.
<?php 
include('config.php');
$db = mysql_connect($server, $username, $password); // Задаем функцию подключения к бд
mysql_select_db($database,$db);  // выбираем к какой бд необходимо подключаться
echo "Подключение к БД прошло успешно<br>"; //выводим текст о успешном подключении к бд

//Подключаемся к бд, затем задаем переменной t_si_c функцию создания базы данных и исполняем ее
mysql_select_db($database, $db);
$t_si_c = "CREATE TABLE SiteConfig (option_id int(3), option_name varchar(50), option_value varchar(244) )";
mysql_query($t_si_c,$db);
echo "Таблица SiteConfig успешна создана<br>";

$id_1 = "INSERT INTO SiteConfig (option_id, option_name, option_value) VALUES ('1', 'SiteTitle', '$sitetitle')";
$id_2 = "INSERT INTO SiteConfig (option_id, option_name, option_value) VALUES ('2', 'Title', '$title')";
$id_3 = "INSERT INTO SiteConfig (option_id, option_name, option_value) VALUES ('3', 'About', '$about')";
mysql_query($id_1,$db);  
mysql_query($id_2,$db);  
mysql_query($id_3,$db);  
echo "Данные Title, About и SiteTile успешни записаны<br>";
*/
$t_content_c = "CREATE TABLE Content (id TEXT(1000), time DATETIME(), rating TEXT(10000), tags TEXT(500), name TEXT(300), story TEXT(1000000) )";
mysql_query($t_content_c,$db);


mysql_query("CREATE TABLE Content(
id INT NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(id),
time TIMESTAMP(14),
rating TEXT(10000),
tags TEXT(500),
name TEXT(300),
story TEXT(1000000) 
 CHARACTER SET utf8 COLLATE utf8_general_ci 
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci")
 or die(mysql_error());  
echo "Content!";


include('close-connection.php'); 
echo "Подключение к MySql БД закрыто<br>";
echo "Установка успешно завершена";?>


Данный файл установки очень примитивен. К примеру, если вы хотите, чтобы при любых ошибках вам выдавались сообщения, то вы можете использовать "or die". Пример:

mysql_select_db($database,$db) or die ('<br>Выбор БД не произошел: ' .mysql_error());
echo "<br>Подключение к БД прошло успешно<br>";

В данном случаем, при ошибке будет выводиться строка: «Выбор БД не произошел: и далее сама ошибка».

Подведем некоторые итоги: у нас есть пустая база сайта, как бы это ни было печально, и созданные в БД таблицы, которые были заполнены.

Продолжение следует…
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.