Categories: Создание сайта

Программа для управления сайтом – движок сайта – на PHP с нуля[:en]Прогр

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

✪ DEMO⇊ СКАЧАТЬ

Описание

Систему управления сайтом написана на PHP. Она позволяет изменять элементы на странице (заголовок, текст, ссылки в футере).
На странице для пользователя отображается меню, в котором пункты меню – это заголовки страниц.

Необходимые программы

– пакет DENWER (http://www.denwer.ru/);
– текстовый редактор Nodepad++ (https://stepfor.top/download/notepad/).

Предполагается, что у читателя уже есть базовые знания по работе с сайтами, поэтому все объяснения будут достаточно краткими. Но ведь всегда можно задать вопрос в комментариях 🙂

Для начала нужно установить пакет Denwer и создать в на локальном сервере папку, где будет проект этой программы.
c:\WebServers\home\localhost\www\название_папки\

Создание Базы Данных – БД

Config.php – файл конфигурации для подключения к серверу

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

config.php – файл конфигурации для подключения к серверу

<?php  $mysql['server'] = 'localhost';
  $mysql['name'] = 'root';
  $mysql['pass'] = '';
  $mysql['db'] = 'stepfortop'; ?>

– $mysql – переменная – ассоциативный массив, когда индексом массива является не число, а буква(слово);
Заполнены параметры массива:
– сервер – localhost
– имя сервера – root (в DENWER по умолчанию)
– пароль – без пароля (в DENWER по умолчанию)
– база данных – любое название

Создание Базы Данных – setup.php

Если у сайта есть уже установленный движок, то он подключается к уже имеющейся Базе Денных. А в нашем случае мы все создаем с нуля.
Для начала работы, прежде всего нужно создать основную Базу данных, в которой будут хранится все данные сайта.
Для этого в корне сайта создаем еще один файл setup.php

<?php  
include ("config.php"); 
 mysql_connect ($mysql['server'], $mysql['name'], $mysql['pass']); //подключение к серверу
 mysql_query ("CREATE DATABASE stepfortop"); //Команда создания Базы данных
  
  ?>

После создания БД, файл Setup.php можно удалить.
Создать Базу данных можно и с phpMyAdmin (На localhost он находится по адресу: http://localhost/Tools/phpMyAdmin/index.php.)

Подключение к Базе данных – connect.php

Практически каждая страница должна будет подключатся к Базе Данных. Поэтому этап подключения выносится в отдельный файл.
Нужно создать файл Connect.php.

<?php
 /*Подключение к Базе данных*/ $id = mysql_connect ($mysql['server'], $mysql['name'], $mysql['pass']); //подключение к серверу
 $query = "SET NAMES 'utf8'";
 $result = MYSQL_QUERY($query,$id); //определение кодировки подключения
 mysql_select_db($mysql['db']); //выбор Базы данных
 ?>

– $id – переменная, в ней запрос на подключение к серверу;
– mysql_connect – функция подключения к серверу.
– mysql_select_db – функция выбора Базы данных;

Создание таблицы в БД – install – index.php

В самой базе данных нужно создать таблицу с необходимым количеством полей.
В нашем случае это таблица page, которая имеет 3 поля: id, заголовок, текст.
Для этого нужно создать папку install, а в ней файл index.php

<?php
 include ("../config.php"); 
 include ("../connect.php"); 
 $query = "CREATE TABLE page (
   id int(10) auto_increment, 
   header varchar(50), 
   text text, 
   PRIMARY KEY (id))"; //Создание таблицы  c названием page и 4 колонками: порядковый номер, заголовок, текст, первичный ключ
   
 mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
 echo ("<br><b>Таблица страниц - установлена!</b><br>"); 


 ?>

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

Первичное наполнение таблицы – insert – index.php

Теперь заполним данные таблицы. Для этого нужно создать папку insert, а в ней файл- index.php:

<?php
 /*Наполнение таблицы page*/ header ('Content-Type: text/html; charset=utf-8');
 include ("../config.php"); 
 include ("../connect.php"); 
 $query = 'INSERT INTO page 
   (header, text) 
   VALUES
   ("Главная страница", "Текст главной страницы")'; //Заполняем поля таблицы page 
   
 mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
 echo ("<br><b>Запись внесена!</b><br>"); 
 ?>

Если повторить запуск этого файла несколько раз, при этом менять значения для header и text, можно создать несколько страниц.
Вот, что получилось в phpMyAdmin

Традиционно после запуска этого файла – его нужно удалить.

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

Вывод всех данных таблицы на экран – select.php

Данные таблицы можем вывести на экран. А если добавить в них ссылки “редактировать” и “удалить” – получится настоящая административная панель сайта.
Также справа мы добавим ссылку на “Создание новой станицы” (то есть новой записи в таблице).

<?php
 /*Вывод результата наполнения таблицы page*/ header ('Content-Type: text/html; charset=utf-8');
 include ("config.php"); 
 include ("connect.php"); 
 $query = 'SELECT * from page'; //Выборка всех полей из таблицы page
 $result = mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query 
 ?>
 <div style='display:inline-box; float: right'><a href='create.php'>Создать новую страницу</a></div>
 <?php
 echo "<table border = 1>";
 while ($out = mysql_fetch_array($result))
 {
  echo "<tr><td>".$out["id"]."</td><td>" .$out["header"]."</td><td>".$out["text"]."</td>
 <td><a href = 'update.php?id=". $out["id"]."'>Редактировать</a></td>
 <td><a href = 'delete.php?id=". $out["id"]."'>Удалить</a></td></tr> ";
 }
 echo "</table>";
 ?>

– mysql_fetch_array – функция php, которая обрабатывает РЯД результата запроса $result, возвращая ассоциативный массив (также может численный массив или оба);
– while ($out = mysql_fetch_array($result) – цикл, который работает пока не закончатся ряды массива $result;

Редактирование ряда таблицы в Базе данных – update.php

Файл Update.php – выводит форму, в которой поля заполнены данными из таблицы. Изменив значения полей и нажав кнопку отправки формы, обновленные данные отправляются в файл update_save.php, который уже сохраняет их в таблице.

<?php   /*Редактирование ряда таблицы в БД*/header('Content-Type: text/html; charset=utf-8');
 include ("config.php"); 
 include ("connect.php"); 
 $id = $_GET['id'];
 
 
 $query = 'SELECT * from page where id = '.$id; //запрос - выбор строки с нужным ID
 $result = mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
 
 echo "<form action = 'update_save.php' method='post'><table>";
 while ($out = mysql_fetch_array($result))
 {
  echo "<tr><td><input type = 'text' name = 'id' value = ".$out["id"]." readonly></td></tr>
 <tr><td><input type = 'text' name = 'header' value = ".$out["header"]."></td></tr> 
 <tr><td><textarea name = 'text'>".$out["text"]."</textarea></td></tr>"; 
 }
 echo "<tr><td><input type = 'submit' value = 'Отправить'></td></tr></table>";

 ?>

$_GET[‘id’] – ассоциативный массив переменных, переданных скрипту через параметры URL (известные также как строка запроса). В нашем файле берет результат id.

Сохранение изменений в таблице Базы данных – update_save.php

update_save.php – принимает данные из формы файла update.php и сохраняет их в Базу Данных

<?php   /*Сохранение данных в таблицу в БД*/header('Content-Type: text/html; charset=utf-8');
 include ("config.php"); 
 include ("connect.php"); 
 $id = $_POST['id'];
 $header = $_POST['header'];
 $text = $_POST['text'];
  
 $query = 'UPDATE page SET header = "'. $header . '" , text = "' . $text . '" where id = '.$id; //запрос по изменению данных
 mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
 /* $_POST['id'] - 
  
 */  ?>
 <b>Изменения произведены успешно</b>
 <br><a href='select.php'>Вернуться на страницу ввода данных</a>

Удаление данных из БД – delete.php и delete_save.php

Файл delete.php задает уточняющий вопрос перед удалением.

<?php   /*Удаление данных из таблицы в БД*/header('Content-Type: text/html; charset=utf-8');
 
 echo "Вы действительно хотите удалить запись с номером ".$_GET['id']."?<br>";
 echo "<a href='delete_save.php?id=".$_GET['id']."'>Да</a>   <a href='select.php'>Нет</a>";
 
 ?>

Файл delete_save.php получает через метод GET значение id и удаляет из таблицы page запись, у которой значение поля id соответствует переданному

<?php   /*Удаление данных из таблицы в БД*/header('Content-Type: text/html; charset=utf-8');
 include ("config.php"); 
 include ("connect.php"); 
 $id = $_GET['id'];
 $query = 'DELETE FROM page where id = '.$id; //запрос по изменению данных
 mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
  ?>
 <b>Строка успешно удалена</b>
 <br><a href='select.php'>Вернуться на страницу ввода данных</a>

Создание данных в БД – create.php

Если данные можно удалить – то их можно и создать/добавить. И добавлять данные мы будет уже не как ранее (выше), а с помощью формы, похожей на форму редактирования.
Для этого нужен файл create.php

<?php   /*Создание данных в БД*/header('Content-Type: text/html; charset=utf-8');

 include ("config.php"); 
 include ("connect.php"); 
  
  
  if(isset($_POST['save'])){
       
 $query = "INSERT INTO page 
   (header, text) 
   VALUES
   ('".$_POST["header"]."','".$_POST["text"]."')"; //Заполняем поля таблицы page 
   mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
   header("Location: ".$_SERVER['REQUEST_URI']."?showmsg=true"); //Перенаправление, чтобы очистить форму с добавлением строки для последующего GET запроса
  }
  
      
   function show_confirmation()
   {
   return isset($_GET['showmsg']) && $_GET['showmsg'] == 'true';
   }
   ?>

    <form action="create.php" method="post"> 
   

    <label>Заголовок:</label><br/>
    <input type = "text" name = "header" ><br/>

    <label>Текст:</label><br/>
    <textarea type = 'text' name = 'text'></textarea><br/>

    <button type="submit" name="save">save</button>
     </form>
 
  
 <div style="display:<?php echo show_confirmation() ? 'block' : 'none'; ?>">
 <b>Запись внесена!</b>
 </div>
 <br><a href='select.php'>Вернуться на страницу ввода данных</a>

Чтобы обнулить данные метода POST используется перезагрузка (обнуление) страницы.
Чтобы вывести запись об успешном создании страницы применяется функция show_confirmation()

Лицевая страница сайта

Все что было выше – это “Административная часть” сайта, то есть та часть программы, с помощью которой пользователь может вводить и изменять данные.
Далее нужно создать видимую часть сайта, а именно шаблон страницы и подключить к ней работу с Базой данных.
Создаем снова файл index.php

<?php   /*Шаблон лицевой страницы сайта*/header('Content-Type: text/html; charset=utf-8');
 include ("config.php"); 
 include ("connect.php"); 
  if (isset($_GET['id']))
   $id = $_GET['id'];
  else $id = 1;
 $query = 'SELECT * from page'; //Выборка всех полей из таблицы page
 $result = mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
 
 while ($out = mysql_fetch_array($result))
 {
  echo "<a href = 'index.php?id=" .$out["id"]."'>".$out["header"]."</a>&nbsp;&nbsp;&nbsp;";
 }
 echo "<div style='display:inline-box; float: right'><a href = 'update.php?id=" .$id."'>Редактировать страницу</a>&nbsp;&nbsp;&nbsp;<a href='create.php'>Создать новую страницу</a></div>";
 echo "<hr>";
 $query = 'SELECT * from page where id = '.$id; //Выборка всех полей из таблицы page
 $result = mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
 while ($out = mysql_fetch_array($result))
 {
  echo "<center><h2>".$out["header"]."</h2></center>";
  echo "<hr>";
  echo $out["text"];
 }
  
 ?>

Вот теперь ваш первый сайт полностью готов!
Посмотреть его можно по ссылке: http://localhost/название_сайта/
Далее его можно совершенствовать и наполнять. Он уже рабочий.

А тут можно скачать архив всех перечисленных выше файлов или посмотреть Демо (в демонстрационной версии возможен только просмотр, вносить изменения запрещено).[:en]В этой статье будем создавать самую простую систему управления сайта на PHP. Это даст возможность наглядно увидеть структуру любого сайта и связи его файлов. На основе примера в дальнейшем можно создать более сложные структуры и плагины.

Описание

Программа, написанная на PHP, которая позволяет изменять элементы на странице (заголовок, текст, ссылки в футере). На странице для пользователя отображается меню, в котором пункты меню – это заголовки страниц.

Необходимые программы

– пакет DENWER (http://www.denwer.ru/);
– текстовый редактор Nodepad++ (https://stepfor.top/download/notepad/).

Для начала нужно установить пакет Denwer и создать в на локальном сервере папку, где будет проект этой программы.
c:\WebServers\home\localhost\www\название_папки\

Создание Базы Данных – БД

Создание Config.php и Connect.php

Для начала работы системы управления сайтом нужно подключится к серверу и создать внутри базу данных – таблицу, в которой будет хранится данные для создаваемой страницы.
Для этого в созданной папке нужно создать два файла: Config.php и Connect.php

Config.php – файл конфигурации для подключения к серверу

<?php  $mysql['sever'] = 'localhost';
  $mysql['name'] = 'root';
  $mysql['pass'] = '';
  $mysql['db'] = 'stepfortop'; ?>

– $mysql – переменная – ассоциативный массив, когда индексом массива является не число, а буква(слово);
Заполнены параметры массива:
– сервер – localhost
– имя сервера – root (в DENWER по умолчанию)
– пароль – без пароля (в DENWER по умолчанию)
– база данных – любое название

Connect.php – файл подключения к Базе данных

Далее нужно подключится к самой БД – базе данных:

<? php
 /*Подключение к Базе данных*/ $id = mysql_connect ($mysql['server'], $mysql['name'], $mysql['pass']); //подключение к серверу
 $query = "SET NAMES 'utf8'";
 $result = MYSQL_QUERY($query,$id); //определение кодировки подключения
 mysql_select_db($mysql['db']); //выбор таблицы
 ?>

– id – переменная, которая подключает к Базе данных;
– mysql_select_db – функция выбора Базы данных;

Install – Index.php

В самой базе данных нужно создать таблицу с необходимым количеством полей, в нашем случае 4 поля.
Для этого нужно создать папку Install, а в ней файл Index.php

<? php
 include ("../config.php"); 
 include ("../connect.php"); 
 $query = "CREATE TABLE page (
   id int(10) auto_increment, 
   header varchar(50), 
   text text, 
   PRIMARY KEY (id))"; /оздание таблицы  c названием page и 4 колонками: порядковый номер, заголовок, текст, первичный ключ
   
 mysql_query ($query) or DIE (mysql_error()); //выполнение запроса $query
 echo ("<br><b>Таблица страниц - установлена!</b><br>"); 


 ?>

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

Share
Tags: CMS mysql php query база данных БД для новичков запрос БД с нуля создание сайта создать CMS создать движок создать движок сайта создать сайт таблица

Recent Posts

  • Excel

Как правильно открыть CSV с многострочными ячейками в Excel

Если при открытие csv файла с помощью excel У все поехали ячейки - это простой… Read More

% дней назад
  • Python

Загрузка проекта на Github и Автодеплой на сервер

Простые шаги как происходит Загрузка проекта на Github и Автодеплой на сервер Сделайте работу проще! Read More

% дней назад
  • Python
  • Полезная минутка

Миграция базы данных в проектах Python

Миграция базы данных - помогают с этим библиотеки SQLAlchemy и Alembic. Read More

% дней назад
  • Python

Команды Git – Шпаргалка по основным командам Git

Основные Команды Git, которые точно пригодятся. Сохрани себе шпаргалку Git Read More

% дней назад
  • Python

Установка PostgreSQL на сервер Ubuntu и подключение через pgAdmin

Установка PostgreSQL на сервер Read More

% дней назад
  • Полезная минутка

Как создать PrimaryKey для таблицы в PostgreSQL

Как создать PrimaryKey в талице базы данных SQL [РЕШЕНО] Ошибка relation tablename_id_seq doesn't exist Read More

% дней назад