Slashdot? На PHP - халява!Никита "Nikitos" КислицинXakep, номер #051, стр. 051-086-1 (nikitoz@real.xakep.ru) Slashdot.org - популярный новостной портал с посещаемостью 50 млн. человек в месяц. Авторы проекта добились такого успеха, предоставляя пользователям свежие и интересные новости из мира IT, а также возможность оставлять под публикацией собственные комментарии. Это очень важное обстоятельство, поскольку со временем постоянные посетители любого такого проекта, выявляя общие интересы и привязываясь к месту общения, образуют единый социум. Ни e-mail, ни даже irc не могут им заменить такого ресурса, поскольку только здесь создана та неповторимая социо-информационная среда, от которой они просто тащатся. Отсюда и 50 миллионов посещений в месяц. Верный подход, хорошая реализация. К слову, насчет реализации - Slashdot написан на Perl. Мы же реализуем эту, в общем-то, несложную задачу, на PHP. Увидишь - это просто :). Создание таблиц Как я уже неоднократно отмечал, прежде чем приступать к написанию скриптов, надо продумать структуру информационной среды, в которой они будут работать. В нашем случае мы будем иметь дело с сервером баз данных mysql, а информация, стало быть, будет храниться в таблицах. Таблица со статьями: mysql> create table posts( -> pid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> aid INT NOT NULL, -> cid INT NOT NULL, -> text TEXT NOT NULL, -> date DATE NOT NULL, -> time VARCHAR(15) NOT NULL, -> timest INT NOT NULL); Query OK, 0 rows affected (0.01 sec) Pid - уникальный идентификатор статьи, aid - автора, cid - рубрики, text - текст статьи, date/time - время, timest - время по unix-исчислению. Таблица с информацией об авторах: mysql> create table authors( -> aid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> fname VARCHAR(50) NOT NULL, -> email VARCHAR(50) NOT NULL, -> login VARCHAR(30) NOT NULL, -> password VARCHAR(20) NOT NULL, Query OK, 0 rows affected (0.01 sec) aid - идентификатор автора, fname - его имя. Email - адрес электронной почты, login - логин для входа в административный интерфейс, password - пароль. Таблица с комментариями: mysql> create table comments( -> coid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> pid INT NOT NULL, -> aname VARCHAR(50) NOT NULL, -> aemail VARCHAR(50) NOT NULL, -> comment TEXT NOT NULL, -> date DATE NOT NULL, -> time VARCHAR(15) NOT NULL, -> timest INT NOT NULL); Query OK, 0 rows affected (0.01 sec) Coid - идентификатор комментария, pid - идентификатор статьи, к которой относится комментарий, aname - имя автора комментария, comment - текст, date/time - время, timest - время по unix-исчислению. Таблица с рубриками: mysql> create table categories( -> cid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> category VARCHAR(30) NOT NULL, -> eids VARCHAR(50) NOT NULL); Query OK, 0 rows affected (0.00 sec) Cid - идентификатор рубрики, category - название рубрики, eids - идентификаторы редакторов рубрик. Описание функций Система будет представлять собой совокупность четырех скриптов: |


















































































































