Web - кодинг: PHP:
Пишем на PHP. Каталоги и БД
Автор: Руслан Курепин
Сайт автора:
Источник:
Мне думается, что описывать общие принципы - это не совсем то, чего вы
от меня ждете. Я предлагаю несколько иное. Давайте просто возьмем, да и
напишем вместе цельный web-проект! По всем правилам. Да так, чтобы был он
полезен многим, да чтобы на него ложился любой дизайн, да чтобы все у нас
было как у взрослых: замысел, план, блок-схема и все остальное. С
использованием PHP, MySQL и особенностей Apache. Договорились? Ну вот и
ладненько.
Я сегодня посоветовался с Александром Малюковым и решил
принять его идею. Пишем систему персонального паблишинга. Или "колонку
обозревателя", как назвал ее Саша.
Задача. Написать комплект
скриптов на языке PHP(4), предоставляющие следующие возможности
пользователю: - Возможность публиковать тексты через стандартную
web-форму. - Возможность изменять и удалять опубликованные тексты. -
Возможность создавать и редактировать темы, объединяющие тексты. -
Автоматическое создание оглавления. - Автоматический вывод выбранного
текста в рамках заложенного дизайна. - Подсчет элементарной статистики
посещения сайта. ...и так далее.
В общем, у нас должно
получиться нечто, напоминающее данный сайт (http://kurepin.ru). Только
созданный не в виде десятка примитивных функций, а в виде солидного пакета
скриптов со всеми современными примочками: back office, mail-информер,
полный контроль над ошибками, и прочей фигней, без которой крупный проект
просто не сможет эффективно существовать.
Начнем мы с планирования.
Но-но, попрошу без соплей в этом месте! Планирование - важнейшая часть
создания большого проекта. Мы же пишем большой проект, а не фигню
какую-то.
Для начала спланируем место в нашей директории, чтобы
правильно сохранять то, что у нас будет рождаться.
Предположим, что
вы выбрали правильного провайдера, который хостит ваши страницы на одной
из UNIX-систем. Например, на FreeBSD. И полный путь к вашему каталогу
выглядит так:
/home/roma/
Мне почему-то показалось,
что вас непременно зовут Романом.
А директория (или "папка", - как
сейчас принято говорить), в которой должны лежать html-файлы сайта,
называется:
/home/roma/WWW/
А что, так оно чаше всего
и бывает. Еще эту папку называют html или
public_html.
Теперь, нам нужна папка, где мы будем хранить
все наши скрипты. Это должна быть папка НЕ в директории WWW, иначе все
желающие смогу посмотреть ваши скрипты и найти в них лазейки для кряка.
Нам это надо? Нет, нам это не надо. Поэтому, для необходимых нам
файлов-скриптов мы создаем:
/home/roma/req/
req - это
от слова require (нуждаться).
Еще нам понадобится папка, в которую
мы сложим куски html для динамической сборки страниц. Назовем ее
inc (от include).
/home/roma/inc/
Еще папка
для хранения данных:
/home/roma/data/
И папка для
хранения периодически выполняемых программ службой
cron:
/home/roma/cron/
Давайте до кучи создадим в
папке WWW папку pic (от picture) для хранения всякой
графики.
Все. Наш каталог /home/roma/ выглядит вот
так:
./req ./data ./inc ./WWW ./WWW/pic
Следующим
этапом я предлагаю создать базу данных для хранения данных, простите за
тавтологию.
Если вы не знакомы с языком SQL, то это вас
не должно пугать. Во-первых, я постараюсь прокомментировать то, что
будет написано на этом языке. А во-вторых, если вы потратите час на
прочтение любого общего руководства по языку запросов к БД SQL, то
сможете без каких-либо проблем читать запросы на этом языке и писать
свои. Там и надо-то знать с десяток ключевых слов и несколько
стандартных конструкций запросов. Все остальное - ваша фантазия (я
преклоняюсь перед изобретателями этого языка. Ничего более совершенного,
созданного человеком в области программирования, я в жизни не встречал).
Найти документацию по стандартным SQL-возможностям можно на том же .
Базу назовем так же, как и account у
провайдера - ROMA. Во-первых, чтобы не путаться, а во-вторых, обычно так
провайдер и выдает доступ к SQL-серверу.
Если база еще не создана,
то мы ее создаем:
create database roma;
и переходим в
нее:
use roma;
Нам потребуются три таблицы: таблица
разделов, таблица текстов и таблица статистики. Создадим пока две. Третья
подождет.
Информацию по работе с MySQL-сервером вы
найдетет на сайте производителя: . Или поищите
FAQ-и при помощи поисковых серверов. Их
полным-полно.
Таблица tbl_cats (категории,
разделы):
create table tbl_cats( c_id int not null
auto_increment primary key, c_name varchar(50) not null default
"" );
Поясняю. Тут написано, что таблица tbl_cats имеет два
поля: c_id - уникальный целочисленный идентификатор записи и c_name -
буквенное название раздела, собственно.
Можем сразу добавить в нашу
таблицу первый раздел:
insert into tbl_cats(c_name)
values('web-обзоры');
Теперь вторая
таблица:
create table tbl_texts( t_id int not null
auto_increment primary key, t_name varchar(200) not null default
"", t_dt datetime not null );
в которой написано
почти тоже самое: идентификатор, название текста и дата+время публикации
работы (t_dt).
Добавили в свою базу данных эти две таблицы?
Отлично. Можете пока подумать, как будет выглядеть третья таблица.
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.
© 2005
|