Библиотека Интернет Индустрии I2R.ru |
|||
|
Каталоги и БДЯ сегодня посоветовался с Александром Малюковым и решил принять его идею. Пишем систему персонального паблишинга. Или "колонку обозревателя", как назвал ее Саша. Задача. Написать комплект скриптов на языке 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-возможностям можно на том же http://www.citforum.ru/. Базу назовем так же, как и account у провайдера - ROMA. Во-первых, чтобы не путаться, а во-вторых, обычно так провайдер и выдает доступ к SQL-серверу. Если база еще не создана, то мы ее создаем: create database roma; и переходим в нее: use roma; Нам потребуются три таблицы: таблица разделов, таблица текстов и таблица статистики. Создадим пока две. Третья подождет. Информацию по работе с MySQL-сервером вы найдетет на сайте производителя: http://www.mysql.com/. Или поищите 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). Добавили в свою базу данных эти две таблицы? Отлично. Можете пока подумать, как будет выглядеть третья таблица. А я тем временем прощаюсь с вами до следующего выпуска. Руслан Курепин |
|
2000-2008 г. Все авторские права соблюдены. |
|