Этот курс ( Практикум по разработке CMS ) создавался, когда у PHP была версия 5.3 или 5.4. Со временем какие-то функции PHP устаревают (mysql, each), какие-то начинают работать по-другому (empty). Пожалуйста, следите за изменениями в PHP по сайту php.net! |
Обзор технологий. Начало кодирования
PHP, MySQL
Листинг 1.1 пример 1.1 был достаточно прост, но дальше вам понадобится проверять работу каждого фрагмента кода в реальных условиях, отлаживать программу. Поэтому сразу создадим эти реальные условия (или убедимся, что они созданы). Если вы работаете на Windows, мы будем исходить из того, что вы установили USBWebserver и назначили для Apache порт 80; тогда в браузере вы сможете открыть ваш сайт по адресу http://localhost/ (либо http://localhost:8080/), а файлы для работы сайта (php, js, css) вы должны будете копировать в папку c:/usbws/root (или другую папку, в которую вы установили USBWebserver). Вместе с USBWebserver, кстати, должен сразу установиться phpMyAdmin.
Если вы работаете под Линуксом, папка для вашего сайта, скорее всего, будет расположена по адресу /var/www/html (хотя, возможно, и в домашней директории пользователя – это будет зависеть от настроек веб-сервера), а phpMyAdmin вы должны будете установить самостоятельно (например, командой консоли sudo apt-get install phpmyadmin).
Вся дальнейшая работа технически будет выглядеть так:
- вы пишете что-то (например, программный код) в файлы php, js, css в папке вашего сайта;
- открываете в браузере адрес http://localhost/ (иногда http://localhost/index2.php или index3.php) и смотрите, какие изменения произошли на сайте вследствие вашей работы с кодом;
- корректируете код – и затем повторяете пункты 1 и 2 (и при необходимости 3 – пока не "заработает").
От этих двух добавлений (Php и Mysql) сложность кода начнёт возрастать по экспоненте. Минимальный повторяемый фрагмент страницы ("шаблон") теперь будет выглядеть так (листинг 1.2 пример 1.2):
<?php $title = 'Астрология'; $img1 = 'img1.jpg'; $html1 = 'Гадание по кофейной гуще'; $img2 = 'img2.jpg'; $html2 = 'Гадание по кофейной гуще'; $page = <<<PAGE <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>{$title}</title> <link rel="stylesheet" href="site.css" type="text/css"> <script type="text/javascript" src="site.js"></script> </head> <body> <p><img src="files/{$img1}" />{$html1}</p> <p><img src="files/{$img2}" />{$html1}</p> </body> PAGE; print $page; ?>Листинг 1.2.
А если использовать базу данных, тогда ещё сложнее (листинг 1.3 пример 1.3):
<?php $id = $_GET['id']; $link = mysqli_connect("localhost", "unsinn", "go68dbs", "unsinn"); $sql = "SELECT * FROM `mypages` where id = " . (int) $id; $result = mysqli_query($link, $sql); $row = mysqli_fetch_assoc($result); $page = <<<PAGE <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>{$row['title']}</title> <link rel="stylesheet" href="site.css" type="text/css"> <script type="text/javascript" src="site.js"></script> </head> <body> <p><img src="files/{$row['img1']}" />{$row['html1']}</p> <p><img src="files/{$row['img2']}" />{$row['html2']}</p> </body> PAGE; print $page; ?>Листинг 1.3.
Создайте в Папке сайта файл с именем index0.php и сохраните в этом файле приведённый код. На нашем учебном хостинге он выглядит так: index0.php?code. Обратите внимание на строчку:
$link = mysqli_connect("localhost", "unsinn", "go68dbs", "unsinn");
Слово "localhost" там правильное, обычно его менять не надо. А вот пользователя "unsinn" с паролем "go68dbs" и БД "unsinn" вы должны будете создать на своём mysql-сервере с помощью программы phpMyAdmin: откройте в браузере адрес, по которому расположен phpMyAdmin (возможно, это будет http://localhost/phpmyadmin/), найдите там раздел для выполнения sql-запросов, скопируйте туда следующий текст и выполните запрос (листинг 1.4 пример 1.4):
CREATE DATABASE IF NOT EXISTS `unsinn` ; GRANT ALL PRIVILEGES ON `unsinn` . * TO 'unsinn'@'localhost' IDENTIFIED BY 'go68dbs'; flush PRIVILEGES;Листинг 1.4.
И ещё мы должны создать в базе данных `unsinn` таблицу `mypages` со следующей структурой (листинг 1.5 пример 1.5):
CREATE TABLE IF NOT EXISTS `mypages` ( `id` int(7) NOT NULL AUTO_INCREMENT, `title` text NOT NULL, `html1` text NOT NULL, `html2` text NOT NULL, `img1` varchar(99) NOT NULL, `img2` varchar(99) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; insert ignore into `mypages` (`id`, `title`, `html1`, `html2`, `img1`, `img2`) values (1, 'Астрология', 'Гадание по кофейной гуще', 'Оптом, в розницу и на экспорт', 'img1.jpg', 'img2.jpg'), (2, 'Воздушные шарики', 'Синие, белые и зелёные', 'Круглые, квадратные, треугольные', 'img1.jpg', 'img2.jpg');Листинг 1.5.
Этот код надо также вставить в поле для sql-запросов в phpMyAdmin и выполнить запрос. Сохраним этот код в файл source1.sql, чтобы потом не писать каждый раз код, а просто ссылаться на этот файл (и вы тоже сохраните его у себя на компьютере).