Как создать форум?
Как создать форум на php ? Какие коды нужны? Какие блоки создавать? надо ли подключаться к базе данных?
Отслеживать
4,966 10 10 золотых знаков 33 33 серебряных знака 62 62 бронзовых знака
задан 12 июл 2012 в 11:37
127 2 2 золотых знака 4 4 серебряных знака 9 9 бронзовых знаков
Чтобы создать форум, нужно сначала прочесть несколько книг по PHP, а затем практика, практика и еще раз практика.
16 июл 2012 в 10:02
@d1b2, Согласно правилам форума, вопросы не должны сводиться к решению либо завершению учебных заданий за учащихся. Пожалуйста, уточните, что вы сделали сами и что не получилось. может так попробовать 🙂
16 июл 2012 в 10:27
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Ого, вы меню на html и css осилить не можете, а уже на форум претендуете))
Используйте готовое решение phpBB.
База данных нужна, а еще вебсервер. Но чтоб довести его до ума, все равно надо знать html + css .
Отслеживать
371 1 1 золотой знак 5 5 серебряных знаков 13 13 бронзовых знаков
ответ дан 12 июл 2012 в 11:43
3,886 18 18 серебряных знаков 26 26 бронзовых знаков
Скачай готовый движок форума. Их много. Вообще я Вам бы посоветовал использовать проект ucoz.ru. Там все уже готово. Сайт сделан специально для новичков.
Отслеживать
ответ дан 12 июл 2012 в 11:42
8,059 5 5 золотых знаков 33 33 серебряных знака 52 52 бронзовых знака
да там ни так интересно как на php темболее я там уже всё сделал у меня 3 сайта! я хочу вот на php создать!
12 июл 2012 в 11:43
Молодчинка то какой!:)
12 июл 2012 в 12:17
@lirik90 🙂 +1
12 июл 2012 в 12:18
- php
- html
- css
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как создать форум в phpBB

Вы решили создать интернет форум, своё интернет сообщество, где все могли бы обмениваться своими мнениями, идеями, опытом. Сделать это можно установив движок phpBB, который позволит осуществить задуманное. В этой статье пойдёт речь о том, как установить phpBB форум и настроить его под собственные нужды.
Коротко о phpBB
phpBB — это популярное свободное программное обеспечение для создания форумов и их управления. [1] Данное программное обеспечение является наиболее распространённым решением с открытым кодом для организации конференций в интернете. phpBB3 является новейшим продуктом в линейке начиная с 2000 года. Как и его предшественники, phpBB3 является функциональным, имеет дружественный интерфейс и полностью поддерживается phpBB Team. В phpBB3 существенно улучшены качества, сделавшие популярным phpBB2, добавлены наиболее необходимые функции, которые отсутствовали в предыдущих версиях. Программное обеспечение форума осуществляется на многочисленных языках, в том числе и на русском.
Установка форума
- Для начала нужно скачать файлы с официального сайта
- Затем загрузить их на сервер хостинга. Либо, в качестве пробы, можно загрузить файлы на локальный сервер, при помощи такого инструмента, как Denwer, чтобы, не имея интернета, своего собственного хостинга, понять процесс установки данного движка
- После этого на Вашем хостинге необходимо создать базу данных MySQL для форума.
Процесс установки форума phpBB
- После того, как база данных была создана и на хостинг были загружены файлы движка, можно перейти на страницу сайта, где Вас поприветствует мастер установки форума, как это показано на рисунке. Можно выбрать язык установки, а также прочитать руководство к установки, если возникают трудности или вопросы по процессу установки.
- Далее переходим на вкладку «Установка», где перечислены какие базы данных можно использовать для данного форума. Жмём кнопку «Следующий шаг», где система проверяет совместимость программного обеспечения с сервером, чтобы удостовериться в том, что phpBB3 можно установить и запустить. Внимательно ознакомьтесь с результатами и не переходите к следующему шагу установки до тех пор, пока необходимые проверки не будут пройдены. Важно, чтобы были напротив требований положительный результат, а в разделе «Поддерживаемые базы данных» была хотя бы одна система баз данных на сервере хостинга. Если тут возникли трудности, то необходимо обратиться в службу поддержки хостинга.
- Если всё хорошо, то внизу страницы жмём кнопку «Начать установку». После чего Вы перейдёте на страницу, где необходимо указать тип и данные базы данных MySQL, которая была уже создана. Жмём кнопку «Следующий шаг», где будет осуществлена проверка с соединением базы данных и идём дальше. Теперь необходимо ввести данные администратора форума (имя, пароль, электронная почта) и запомнить их. Здесь же можно выбрать язык форума.
- После проверки данных администратора и файла конфигурации переходим к следующему шагу, где можно внести дополнительные корректировки в настройки форума (настройки почты, настройки URL сервера). Вносите эти данные по своему усмотрению и жмите кнопку «Следующий шаг», после чего все данные сохраняются и можно перейти к заключительному этапу установки phpBB форума. Если всё прошло успешно система оповестит об удачной установке форума и можно перейти к нему или на страницу администратора для дальнейшей настройки форума.
Мастер установки форума phpBB
Проверка на совместимость
Скрипт форума на PHP своими руками. Часть 1
В этой серии статей я постараюсь рассказать, как написать форум самому. Возможности этого форума довольно ограничены — но я и не ставил целью написать полнофункциональный форум, вроде IPB, а лишь реализовать основные функции, чтобы форум имел право именоваться форумом.
Прошу простить моих читателей за стиль изложения — боюсь, журналист из меня неважный. Да и в программировании я еще новичок — так что многие моменты в реализации форума могут быть спорны с точки зрения более опытных коллег. Но мне хотелось попробовать свои силы в новом проекте и приобрести новый опыт.
Все операции на форуме — показ темы, добавление нового сообщения (поста), просмотр профиля участника выполняются одним скриптом index.php. Чтобы знать, какое действие выполняет посетитель форума, методом GET передается параметр action. Вот и первая часть скрипта index.php
// Параметры соединения с сервером БД
require ‘config/connect.php’ ;
// Файл конфигурации
require ‘config/config.php’ ;
// Вспомогательные функции
require ‘functions/functions.php’ ;
?php>
// Соединяемся с сервером БД
mysql_connect ( DB_LOCATION , DB_USER , DB_PASSWORD );
mysql_query ( ‘SET NAMES cp1251’ );
mysql_select_db ( DB_NAME );
// Содержимое html-тега title
$pageTitle = FORUM_TITLE ;
if ( !isset( $_GET [ ‘action’ ] ) ) $_GET [ ‘action’ ] = ‘showMainPage’ ;
$actions = array( ‘showMainPage’ ,
‘showForum’ ,
‘showTheme’ ,
‘addForumForm’ ,
‘addForum’ ,
‘editForumForm’ ,
‘updateForum’ ,
‘forumUp’ ,
‘forumDown’ ,
‘deleteForum’ ,
‘addThemeForm’ ,
‘addTheme’ ,
‘editThemeForm’ ,
‘updateTheme’ ,
‘deleteTheme’ ,
‘lockTheme’ ,
‘unlockTheme’ ,
‘addPostForm’ ,
‘addPost’ ,
‘quickReply’ ,
‘editPostForm’ ,
‘updatePost’ ,
‘deletePost’ ,
‘loginForm’ ,
‘login’ ,
‘logout’ ,
‘addNewUserForm’ ,
‘addNewUser’ ,
‘activateUser’ ,
‘newPasswordForm’ ,
‘sendNewPassword’ ,
‘activatePassword’ ,
‘editUserForm’ ,
‘updateUser’ ,
‘editUserFormByAdmin’ ,
‘updateUserByAdmin’ ,
‘showUsersList’ ,
‘showUserInfo’ ,
‘sendMsgForm’ ,
‘sendMessage’ ,
‘deleteMsg’ ,
‘showMsgBox’ ,
‘showInBox’ ,
‘showOutBox’ ,
‘showMsg’ ,
‘sendMailForm’ ,
‘sendMail’ ,
‘searchForm’ ,
‘searchResult’ );
if ( ! in_array ( $_GET [ ‘action’ ], $actions ) ) $_GET [ ‘action’ ] = ‘showMainPage’ ;
switch ( $_GET [ ‘action’ ] )
<
case ‘showMainPage’ : // главная страница форума
$content = getMainPage ( $pageTitle );
break;
case ‘showForum’ : // список тем форума
$content = getForum ( $pageTitle );
break;
case ‘showTheme’ : // список сообщений темы
$content = getTheme ( $pageTitle );
break;
case ‘addForumForm’ : // форма для добавления нового форума
$content = getAddForumForm ();
break;
case ‘addForum’ : // добавить новый форум
$content = addForum ();
break;
case ‘editForumForm’ : // форма для редактирования форума
$content = getEditForumForm ();
break;
case ‘updateForum’ : // обновить запись в таблице БД TABLE_FORUMS
$content = updateForum ();
break;
case ‘forumUp’ :
$content = forumUp (); // переместить форум «вверх»
break;
case ‘forumDown’ :
$content = forumDown (); // переместить форум «вниз»
break;
case ‘deleteForum’ : // удалить запись в таблице БД TABLE_FORUMS
$content = deleteForum ();
break;
case ‘addThemeForm’ : // форма для добавления новой темы
$content = getAddThemeForm ();
break;
case ‘addTheme’ : // добавить новую тему
$content = addTheme ();
break;
case ‘editThemeForm’ : // форма для редактирования темы
$content = getEditThemeForm ();
break;
case ‘updateTheme’ : // обновить запись в таблице БД TABLE_THEMES
$content = updateTheme ();
break;
case ‘deleteTheme’ : // удалить тему
$content = deleteTheme ();
break;
case ‘lockTheme’ : // закрыть тему
$content = lockTheme ();
break;
case ‘unlockTheme’ : // открыть тему
$content = unlockTheme ();
break;
case ‘addPostForm’ : // форма для добавления нового сообщения (поста)
$content = getAddPostForm ();
break;
case ‘addPost’ : // добавить новую запись в таблицу БД TABLE_POSTS
$content = addPost ();
break;
case ‘quickReply’ : // добавить новую запись в таблицу БД TABLE_POSTS
$content = quickReply ();
break;
case ‘editPostForm’ : // форма для редактирования сообщения (поста)
$content = getEditPostForm ();
break;
case ‘updatePost’ : // обновить запись в таблице БД TABLE_POSTS
$content = updatePost ();
break;
case ‘deletePost’ : // удалить запись в таблице БД TABLE_POSTS
$content = deletePost ();
break;
case ‘loginForm’ : // форма для входа на форум (авторизация)
$content = getLoginForm ();
break;
case ‘login’ : // вход на форум (авторизация)
$content = login ();
break;
case ‘logout’ : // выход
$content = logout ();
break;
case ‘addNewUserForm’ : // форма для регистрации нового пользователя
$content = getAddNewUserForm ();
break;
case ‘addNewUser’ : // добавить нового пользователя
$content = addNewUser ();
break;
case ‘activateUser’ : // активация учетной записи нового пользователя
$content = activateUser ();
break;
case ‘newPasswordForm’ : // форма для получения нового пароля
$content = newPasswordForm ();
break;
case ‘sendNewPassword’ : // выслать пользователю новый пароль
$content = sendNewPassword ();
break;
case ‘activatePassword’ : // активация нового пароля
$content = activatePassword ();
break;
case ‘editUserForm’ : // форма для редактирования профиля
$content = getEditUserForm ();
break;
case ‘updateUser’ : // обновить данные о пользователе
$content = updateUser ();
break;
case ‘editUserFormByAdmin’ : // форма редактирования профиля (для администратора)
$content = getEditUserFormByAdmin ();
break;
case ‘updateUserByAdmin’ : // обновить данные о пользователе (для администратора)
$content = updateUserByAdmin ();
break;
case ‘showUsersList’ : // список пользователей форума
$content = getUsersList ();
break;
case ‘showUserInfo’ : // информация о пользователе (profile)
$content = showUserInfo ();
break;
case ‘sendMsgForm’ : // форма для отправки личного сообщения
$content = getSendMsgForm ();
break;
case ‘sendMessage’ : // отправить личное сообщение
$content = sendMessage ();
break;
case ‘deleteMsg’ : // удалить личное сообщение
$content = deleteMessage ();
break;
case ‘showMsg’ : // показать сообщение
$content = getMessage ();
break;
case ‘showInBox’ : // папка «Входящие»
$content = getInMsgBox ();
break;
case ‘showOutBox’ : // папка «Исходящие»
$content = getOutMsgBox ();
break;
case ‘sendMailForm’ : // форма для отправки письма пользователю
$content = getSendMailForm ();
break;
case ‘sendMail’ : // отправка письма
$content = sendMail ();
break;
case ‘searchForm’ : // форма для поиска по форуму
$content = searchForm ();
break;
case ‘searchResult’ : // результаты поиска по форуму
$content = searchResult ();
break;
default:
$content = getMainPage ();
>
$menu = getMainMenu ();
$html = file_get_contents ( ‘./templates/default.html’ );
$html = str_replace ( » , $pageTitle , $html );
$html = str_replace ( » , FORUM_DESCRIPTION , $html );
$html = str_replace ( » , $menu , $html );
$html = str_replace ( » , $content , $html );
Из комментариев должно быть ясно, что для каждого из возможных значений переменной $_GET[‘action’] вызывается соответствующая функция. Например, чтобы добавить новую тему, вызывается функция addPost(), а для просмотра информации об участнике форума — функция showUserInfo().
Теперь, когда мы определили для себя все возможные значения переменной $_GET[‘action’], нам осталось лишь реализовать все эти функции. Мы рассмотрим их все по порядку — так что к концу этой серии статей у вас будут все исходные коды форума, и вы сможете установить его, и протестировать у себя на локальном компьютере или на хостинге.
Но пережде чем приступить к рассмотрению функций, мы посмотрим на файл конфигурации config.php. Он содержит настройки форума.
// Названое форума
define ( ‘FORUM_TITLE’ , ‘Форум web-мастера’ );
// Описание форума форума
define ( ‘FORUM_DESCRIPTION’ , ‘Форум для тех, кто делает сайты’ );
// Названия таблиц в БД форума
define ( ‘TABLE_FORUMS’ , ‘forums’ );
define ( ‘TABLE_THEMES’ , ‘themes’ );
define ( ‘TABLE_POSTS’ , ‘posts’ );
define ( ‘TABLE_USERS’ , ‘authors’ );
define ( ‘TABLE_MESSAGES’ , ‘messages’ );
// Максимальный размер файла вложения в байтах
define ( ‘MAX_FILE_SIZE’ , 524288 );
// Максимальный размер файла аватара в байтах
define ( ‘MAX_AVATAR_SIZE’ , 65536 );
// Минимальная длина пароля пользователя
define ( ‘MIN_PASSWORD_LENGTH’ , 6 );
// Адрес электронной почты администратора; этот e-mail
// будет указан в поле FROM писем, которое один пользователь
// напишет другому; этот же e-mail будет указан в письмах
// с просьбой активировать учетную запись или пароль
// (в случае его утери)
define ( ‘ADMIN_EMAIL’ , ‘admin@mail.ru’ );
// Под этим именем будет показано сообщение (пост)
// не зарегистрированного пользователя
define ( ‘NOT_REGISTERED_USER’ , ‘Посетитель’ );
// Максимальная длина тела сообщения (поста)
define ( ‘MAX_POST_LENGTH’ , 12288 );
// Максимальная длина тела личного сообщения, которое
// один пользователь форума может написать другому
define ( ‘MAX_MESSAGE_LENGTH’ , 8192 );
// Максимальная длина тела письма, которое один пользователь форума
// может написать другому
define ( ‘MAX_MAILBODY_LENGTH’ , 8192 );
// Задержка в секундах перед редиректом; когда пользователь выполняет
// какое-то действие (например, добавляет сообщение) ему выдается
// сообщение, что «Ваше сообщение было успешно добавлено» и делается
// редирект на нужную страницу
define ( ‘REDIRECT_DELAY’ , 2 );
// Включает режим отладки — на экран выдаются сообщения об ошибках
define ( ‘DEBUG_MODE’ , 1 );
// Время жизни cookies в днях; в cookies сохраняются логин и пароль пользователя,
// если была выбрана опция «Автоматически входить при каждом посещении»
define ( ‘COOKIE_TIME’ , 30 );
// Максимальное количество личных сообщений в папках
// «Входящие» и «Исходящие»
define ( ‘MAX_COUNT_MESSAGES’ , 50 );
// Время в минутах, в течение которого считается, что пользователь «on-line»
define ( ‘TIME_ON_LINE’ , 5 );
// Количество пользователей на одну страницу
// в списке зарегистрированных пользователей
define ( ‘USERS_PER_PAGE’ , 20 );
// Количество сообщений (постов) на одной странице
define ( ‘POSTS_PER_PAGE’ , 5 );
// Количество тем на одной странице
define ( ‘THEMES_PER_PAGE’ , 20 );
?>?php>
Итак, первая функция — getMainPage() возвращает главную страницу форума. Главная страница выглядит как список всех форумов. Для каждого форума выводится список трех тем форума, в которых были новые сообщения.
// Функция возвращает html главной страница форума (список форумов)
function getMainPage ( & $pageTitle )
<
$pageTitle = $pageTitle . ‘ / Список форумов’ ;
$query = «SELECT id_forum, name, description FROM » . TABLE_FORUMS . » WHERE 1 ORDER BY pos» ;
$res = mysql_query ( $query );
if ( ! $res ) <
$msg = ‘Ошибка при получении списка форумов’ ;
$err = ‘Ошибка при выполнении запроса:
‘ .
$query . ‘
‘ . mysql_errno (). ‘: ‘ . mysql_error (). ‘
‘ .
‘(Файл ‘ . __FILE__ . ‘, строка ‘ . __LINE__ . ‘)’ ;
return showErrorMessage ( $msg , $err , true , » );
>
$html = ‘
Список форумов
‘ . «\n» ;
if ( mysql_num_rows ( $res ) > 0 ) <
while ( $forum = mysql_fetch_array ( $res ) ) ?php>
$html = $html . ‘
| ‘ ; $html = $html . ‘ .
$_SERVER [ ‘PHP_SELF’ ]. ‘?action=showForum&idForum=’ . $forum [ ‘id_forum’ ]. ‘»>’ . $forum [ ‘name’ ]. ‘ ‘ . «\n» ; ‘ . $forum [ ‘description’ ]. ‘
‘ ; |
. $_SERVER [ ‘PHP_SELF’ ]. ‘?action=editForumForm&idForum=’ . $forum [ ‘id_forum’ ]. ‘»> alt=»Править» title=»Править» /> ‘ . «\n» ; $html = $html . ‘. $_SERVER [ ‘PHP_SELF’ ]. ‘?action=deleteForum&idForum=’ . $forum [ ‘id_forum’ ]. ‘»> |
‘ . «\n» ;
// Выводим три темы форума, сортирируя их по последнему сообщению
$q = «SELECT a.id_theme, a.name, a.time, a.locked,
IFNULL(b.id_author, 0),
IFNULL(b.name, ‘» . NOT_REGISTERED_USER . «‘),
(COUNT(*)-1), IFNULL(MAX(c.time), ‘0000-00-00 00:00:00’) AS last_post
FROM » . TABLE_THEMES . » a LEFT JOIN » . TABLE_USERS . » b
ON a.id_author=b.id_author
LEFT JOIN » . TABLE_POSTS . » c
ON a.id_theme=c.id_theme
WHERE id_forum color: rgb(0, 119, 0);»>. $forum [ ‘id_forum’ ]. »
GROUP BY a.id_theme, a.name, a.time,
IFNULL(b.id_author, 0),
IFNULL(b.name, ‘» . NOT_REGISTERED_USER . «‘)
ORDER BY last_post DESC
LIMIT 3″ ;
$r = mysql_query ( $q );
$html = $html . getUsersOnLine ();
Интерес здесь представляет лишь запрос на выборку трех тем для каждого форума. Темы сортируются по последнему сообщению (посту). Как видите, здесь идет связывание трех таблиц БД: TABLE_THEMES, TABLE_USERS и TABLE_POSTS.
$q = «SELECT a.id_theme, a.name, a.time, a.locked,
IFNULL(b.id_author, 0),
IFNULL(b.name, ‘» . NOT_REGISTERED_USER . «‘),
(COUNT(*)-1), IFNULL(MAX(c.time), ‘0000-00-00 00:00:00’) AS last_post
FROM » . TABLE_THEMES . » a LEFT JOIN » . TABLE_USERS . » b
ON a.id_author=b.id_author
LEFT JOIN » . TABLE_POSTS . » c
ON a.id_theme=c.id_theme
WHERE id_forum color: rgb(0, 119, 0);»>. $forum [ ‘id_forum’ ]. »
GROUP BY a.id_theme, a.name, a.time,
IFNULL(b.id_author, 0),
IFNULL(b.name, ‘» . NOT_REGISTERED_USER . «‘)
ORDER BY last_post DESC
LIMIT 3″ ;
?>?php>
Прежде чем продолжить наше повествавание, необходимо сделать небольшое лирическое отступление и рассказать о структуре базы данных форума. База данных содержит шесть таблиц.
Таблица TABLE_USERS содержит информацию о пользователях форума. Вот запрос на создание таблицы
CREATE TABLE `authors` ( `id_author` int(6) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '', `passw` varchar(255) NOT NULL DEFAULT '', `email` varchar(64) NOT NULL DEFAULT '', `timezone` tinyint(2) NOT NULL DEFAULT '0', `url` varchar(64) NOT NULL DEFAULT '', `icq` varchar(12) NOT NULL DEFAULT '', `about` tinytext NOT NULL, `signature` tinytext NOT NULL, `photo` varchar(32) NOT NULL DEFAULT '', `puttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `last_visit` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `themes` mediumint(8) UNSIGNED NOT NULL DEFAULT '0', `posts` int(10) UNSIGNED NOT NULL DEFAULT '0', `status` enum('user','moderator','admin') NOT NULL DEFAULT 'user', `activation` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id_author`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Поля таблицы TABLE_USERS:
- id_author — первичный ключ таблицы, снабженный механизмом auto_increment
- name — имя пользователя
- passw — пароль пользователя, зашифрованный с помощью алгоритма md5
- email — e-mail пользователя
- timezone — временная зона
- url — URL домашней странички
- icq — ICQ
- about — интересы
- signature — подпись
- photo — фото (аватар)
- puttime — время регистрации
- last_visit — время последнего посещения форума
- themes — количество тем, начатых пользователем
- posts — количество сообщений (постов)
- status — статус пользователя
- activation — поле для хранения кода активации
Таблица TABLE_FORUMS содержит информацию о всех форумах. Запрос на создание таблицы
CREATE TABLE `forums` ( `id_forum` int(6) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `description` mediumtext NOT NULL, `pos` smallint(6) NOT NULL DEFAULT '0', PRIMARY KEY (`id_forum`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Поля таблицы TABLE_FORUMS:
- id_forum — первичный ключ таблицы
- name — название форума
- description — краткое описание форума
- pos — позиция в списке
Таблица TABLE_THEMES содержит информацию о темах форума. Запрос на создание таблицы
CREATE TABLE `themes` ( `id_theme` int(11) NOT NULL AUTO_INCREMENT, `name` tinytext NOT NULL, `author` tinytext NOT NULL, `id_author` int(6) NOT NULL DEFAULT '0', `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `id_forum` int(2) NOT NULL DEFAULT '0', `locked` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id_theme`), FULLTEXT KEY `search` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Поля таблицы TABLE_THEMES:
- id_theme — первичный ключ таблицы
- name — название темы
- author — имя автора темы
- id_author — ID автора темы
- time — время создания темы
- id_forum — ID форума, которому принадлежит тема
- locked — если равно 1, значит тема закрыта (заблокирована)
Таблица TABLE_POSTS содержит информацию о сообщениях (постах) форума. Запрос на создание таблицы
CREATE TABLE `posts` ( `id_post` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `putfile` tinytext NOT NULL, `author` tinytext NOT NULL, `id_author` int(6) UNSIGNED NOT NULL DEFAULT '0', `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `edittime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `id_editor` int(6) UNSIGNED NOT NULL DEFAULT '0', `id_theme` int(11) NOT NULL DEFAULT '0', `locked` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id_post`), FULLTEXT KEY `search` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Поля таблицы TABLE_THEMES:
- id_post — первичный ключ таблицы
- name — сообщение (пост)
- putfile — имя файла вложения
- author — имя автора сообщения
- id_author — ID автора сообщения
- time — время создания сообщения
- edittime — время редактирования сообщения
- id_editor — ID пользователя, который редактировал сообщение
- id_theme — ID темы, которому принадлежит сообщение
- locked — если равно 1, значит сообщение заблокировано
Таблица TABLE_MESSAGES содержит сообщения, которымы могут обмениваться зарегистрированные аользователи форума. Запрос на создание таблицы
CREATE TABLE `messages` ( `id_msg` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `to_user` int(10) UNSIGNED NOT NULL DEFAULT '0', `from_user` int(10) UNSIGNED NOT NULL DEFAULT '0', `sendtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `subject` varchar(255) NOT NULL DEFAULT '', `message` text NOT NULL, `id_rmv` int(10) UNSIGNED NOT NULL DEFAULT '0', `viewed` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id_msg`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Поля таблицы TABLE_MESSAGES:
- id_msg — первичный ключ таблицы
- to_user — ID пользователя, котоый получит сообщение
- from_user — ID автора сообщения
- sendtime — время создания сообщения
- subject — тема сообщения
- message — сообщение
- id_rmv — ID пользователя, который удалил сообщение
- viewed — если равно 1, значит сообщение было просмотрено получателем
Ну вот, с базой данных форума мы разобрались, теперь давайте посмотрим вот на этот кусок кода и разберемся, что из себя представляет «файл шаблона форума»:
.
// Получаем в переменную содержимое файла шаблона форума
$html = file_get_contents ( ‘./templates/default.html’ );
$html = str_replace ( » , $pageTitle , $html );
$html = str_replace ( » , FORUM_DESCRIPTION , $html );
$html = str_replace ( » , $menu , $html );
$html = str_replace ( » , $content , $html );
.
?>?php>
Файл шаблона форума
Пожалуй, на сегодня это все. Продолжение следует.
Как написать форум на php
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Цитата:
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12