Будуємо свою cms на php і mysql

В ході процесу ви навчитеся створювати бази і таблиці MySQL, працювати з об'єктами, константами, включеннями, сесіями і іншими інструментами PHP. Крім того ми покажемо, як відокремлювати логіку додатки від презентації і зробити код PHP безпечнішим. А також вам відкриється багато іншого, корисне в справі створення власної системи мрії.

Примітка: для вивчення матеріалів уроків потрібно веб сервер Apache з встановленим модулем PHP і сервер MySQL. Для роботи на локальному комп'ютері можна скористатися одним з інструментів веб розробника: XAMPP (англійською мовою), Denwer. Open server або іншим.

Будуємо свою cms на php і mysql
Будуємо свою cms на php і mysql

Функціонал нашої CMS

Насамперед треба точно визначитися, що буде робити наша CMS. Отже, ось список функцій:

  • Вхід / вихід для адміністратора
  • Список всіх статей
  • Додавання нової статті
  • Редагування існуючої статті
  • Видалення існуючої статті

планування робіт

Для створення нашої CMS потрібно зробити наступні кроки

  1. Створити базу даних
  2. Створити таблицю articles
  3. Зробити файл конфігурації
  4. Побудувати клас Article
  5. Написати скрипт клієнтської частини index.php
  6. Написати скрипт серверної частини admin.php
  7. Створити шаблон клієнтської частини
  8. Створити шаблон серверної частини
  9. Створити таблицю стилів і логотип системи

Примітка: на сторінках уроків наводиться код для нашої CMS готовий до копіювання в ваші текстові файли. Якщо у вас немає бажання створювати файли самостійно, то можна завантажити архів з вихідними кодами, в якому містяться всі потрібні папки і файли.

Крок 1. Створюємо базу даних

На першому етапі необхідно створити базу даних MySQL для зберігання змісту. Можна зробити так:

Запускаємо програму клієнт mysql Відкриваємо вікно терміналу і набираємо команду

mysql -u username -p

Після запиту введіть пароль для доступу до MySQL.

username - ім'я користувача, який має повноваження для створення баз даних. У разі роботи на локальному комп'ютері можна використовувати root. хоча для безпеки завжди слід створювати користувача з іншим ім'ям для вирішення завдань адміністрування.

Створюємо базу даних Після мітки mysql> вводимо:

create database cms;

І натискаємо Enter.

Виходимо з програми клієнта mysql Після мітки mysql> вводимо:

І натискаємо Enter.

Для вирішення такого завдання також можна скористатися інструментами для адміністрування баз даних, таким як phpMyAdmin, cPanel або Plesk (якщо вони встановлені на вашому сервері). У деяких випадках використання подібних інструментів є єдиним доступним для користувача інструментом для роботи з базами даних (ситуація залежить від правил, встановлених на вашому хостингу).

Крок 2. Створюємо таблицю articles

Наша проста CMS має єдину таблицю в базі даних: articles. У ній містяться всі статті в нашій системі.

Створимо схему таблиці. Схема таблиці описує типи даних, які можуть міститися в таблиці і інформацію про неї.

Створюємо текстовий файл tables.sql на жорсткому диску і додаємо в нього наступний код:

Вище наведений код визначає схему таблиці articles. Він написаний на SQL, мовою для створення і маніпулювання базами даних в MySQL (і в багатьох інших системах).

Розберемо вище наведений код

Тепер у нас є схема таблиці і її потрібно завантажити в MySQL для створення структури. Найпростіший спосіб - відкрити вікно терміналу, перейти до папки з файлом tables.sql і запустити наступну команду:

mysql -u username -p cms

де username - ім'я користувача MySQL, а cms - ім'я бази даних, яку ми створили на кроці 1.

Вводите пароль користувача після запиту, і MySQL завантажить і виконає код з файлу tables.sql. створивши таблицю articles в базі даних cms.

Також можна скористатися інструментами для адміністрування баз даних, таким як phpMyAdmin, cPanel або Plesk (якщо вони встановлені на вашому сервері).

Крок 3. Створюємо файл конфігурації

Тепер у нас є база даних і ми готові розробляти код PHP. Почнемо зі створення файлу конфігурації для зберігання різних установок для нашої CMS. Даний файл буде використовуватися іншими скриптами нашої системи.

Насамперед створюємо папку cms в папці веб сервера. Вона буде містити всі файли нашої CMS.

В папці cms створюємо файл config.php і копіюємо в нього наступний код:

Розберемо код докладно:

  1. Виводимо помилки в браузері Рядок ini_set () встановлює режим виведення повідомлень про помилки в браузері. Відмінна опція для налагодження коду, але на готовому проекті дану опцію треба відключити (встановити значення false) для безпеки ресурсу.
  2. Встановлюємо тимчасову зону Так як наша CMS буде використовувати функцію PHP date (). потрібно вказати тимчасову зону сервера для PHP (інакше PHP буде генерувати попередження). У прикладі встановлена ​​зона "Australia / Sydney" - поміняйте на свою.
  3. Встановлюємо деталі доступу до бази даних Потім визначаємо константу DB_DSN. яка вказує PHP, де шукати базу даних MySQL. Параметр dbname повинен відповідати імені бази даних нашої CMS (cms). Також ми будемо зберігати ім'я користувача MySQL і пароль, які використовуються для доступу до бази даних CMS в константах DB_USERNAME і DB_PASSWORD. Виберіть відповідний в даних константи, які відповідають вашим налаштувань.
  4. Встановлюємо шляху Ми встановлюємо 2 шляхи в нашому файлі конфігурацій: CLASS_PATH. який вказує на місце зберігання файлів класів, і TEMPLATE_PATH. який вказує на місце зберігання шаблонів HTML. Обидва шляхи вказуються щодо верхнього каталогу cms.
  5. Встановлюємо кількість статей, що виводяться на головній сторінці HOMEPAGE_NUM_ARTICLES управляє максимальною кількістю заголовків статей, які виводяться на головній сторінці. Ми встановили 5, але можна легко збільшити або зменшити значення.
  6. Встановлюємо ім'я і пароль адміністратора Константи ADMIN_USERNAME і ADMIN_PASSWORD містять дані реєстрації для адміністратора нашої CMS.
  7. Включаємо клас Article Так як файл класу Article (ми його створимо пізніше) потрібно у всіх скриптах нашого застосування, додамо його тут.
  8. Створюємо обробник виняткових ситуацій На завершення визначаємо handleException () - просту функцію для обробки винятків PHP. які можуть генеруватися при виконанні коду. Ця функція виводить загальне повідомлення про помилку і записує дані про помилку в журнал веб сервера. Така функція сприяє поліпшенню безпеки системи за рахунок обробки винятків PDO, які можуть виводити ім'я користувача і пароль на сторінці. Після визначення функції handleException (). ми встановлюємо її як обробник виключень PHP, викликаючи функцію set_exception_handler ().

Такий обробник виключень зроблений для спрощення матеріалів уроку. "Правильний" спосіб для обробки винятків для перехоплення всіх викликів PDO в Article.php полягає в використанні блоків try. catch.

Зауваження про безпеку

У наступному уроці ми побудуємо основний клас нашого застосування - Article.

Flex27 тут же PDO. Я подивився щодо мови. По-перше потрібно додати кодування на завантажувані сторінки.)) А по-друге в функції public function __construct стоять обмеження на символи.

  • и опять про висновок статей зроблено! ну невже не можна зробити щось більш менш варте? наприклад сайт для роботи з різним контентом (список файлів - фільми, ігри, музика) а не ці статті. Про соціалку підтримую, ось я наприклад навіть не уявляю як це реалізувати, от би хто пояснив, а то Дуров і Цукерберг навряд чи стануть ділитися досвідом!

  • що таке вікно терміналу і як ним користуватися.

    fabrigas201

    термінал це командний рядок, в Лінуксі називається термінал або shell наскільки я знаю.

  • Скачав исходник, але він не запускається, пише помилку Sorry, a problem occurred. Please try later.

    При такій проблемі перевір версію php і підключені чи потрібні модулі в php.ini.

  • classic1698

    А вам не здається, що викладати з помилками "поганий тон"? Наприклад админка: Warning: session_start () [function.session-start]: Can not send session cookie - headers already sent by (output started at /home/elated/v3.elated.com/articles/development/php/cms-in- an-afternoon-php-mysql / config.php: 21) in /home/elated/public_html/res/File/articles/development/php/cms-in-an-afternoon-php-mysql/demo/admin.php on line 4 Warning: session_start () [function.session-start]: Can not send session cache limiter - headers already sent (output started at /home/elated/v3.elated.com/articles/development/php/cms-in-an -afternoon-php-mysql / config.php: 21) in /home/elated/public_html/res/File/articles/development/php/cms-in-an-afternoon-php-mysql/demo/admin.php on line 4 Warning: Can not modify header information - headers already sent by (output started at /home/elated/v3.elated.com/articles/development/php/cms-in-an-afternoon-php-mysql/config.php:21 ) in /home/elated/public_html/res/File/articles/development/php/cms-in-an-afternoon-php-mysql/demo/admin.ph p on line 47

    nik.gavrilovich

    перекодуйте файли в UTF-8 без BOM. Це помилка сесій.

  • Shade1234321
  • Допоможу з проектами будь-якої складності! mail [email protected] skype - san4o123123

  • Блін підкажіть що це за помилка така? Sorry, a problem occurred. Please try later. в перші таке бачу, тупа напис про помилку. а яку нід версію пхп?

    Недключена база даних, перевір дані!

    uasd

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

  • Admin, а чому вибрав MODX, розкажеш які переваги?

  • Хто досвідчений, додайте будь ласка людські пояснення з приводу "правильного" способу обробки винятків для перехоплення всіх викликів PDO. в даному прикладі

  • Будуємо свою cms на php і mysql

    За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!

    Будуємо свою cms на php і mysql

    Будуємо свою cms на php і mysql

    Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!

    Будуємо свою cms на php і mysql

    Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.

    Будуємо свою cms на php і mysql

    Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!

    Схожі статті