Как написать свой форум

Как новичку создать форум

Очень часто возникает ситуация, когда человеку нужно получить ответ на специфический вопрос. Поисковые системы «пожимают плечами» и выдают совершенно неподходящие результаты. В таком случае верными помощниками могут выступить форумы, на которых пользователь задает свой вопрос, выбрав подходящую категорию обсуждений.

Форумы редко имеют общую направленность, чаще всего они освещают какую-либо тематику (недвижимость, спорт, программирование и т.д.) или имеют отношение к определенному региону. Но такие места в интернете появляются не сами по себе. О том, как создать форум на просторах Всемирной паутины и пойдет речь в этой статье.

  • Что это и зачем?
    • Как создать
    • Какой движок выбрать?
    • Где и как можно быстро создать форум?

Понятие «форум» возникло еще в Древнем Риме и подразумевало под собой площадь, на которой собирались люди для обсуждения новостей, проблем и забот. Также там можно было купить и продать все, что угодно, выторговав наилучшую цену:

Что это и зачем?

В современном мире форум сразу же сопоставляется с интернет-технологиями и обозначает площадку для тематического общения. Пользователи, как правило, сами открывают темы для обсуждений и отвечают на вопросы друг друга. Когда человек собирается создать свой форум, он может преследовать при этом различные цели.

Перечислим некоторые из них:

  • Форум как часть информационного ресурса. Часто бывает полезным организовать общение между посетителями сайта, также это отличный инструмент для обеспечения обратной связи;
  • Для популяризации проекта. Обсуждение какой-то тематики помогает вызвать к ней интерес пользователей;
  • Как самостоятельный сайт. Форум может предоставить все те же прелести, что и любой другой информационный ресурс.

Посетители сами создают контент, который привлекает новых и новых людей, а это уже побуждает рекламодателей нестись к вам со своими предложениями.

В наше время всегда есть возможность выбора, это касается и создания форумов. Можно выделить следующие варианты:

  • Самостоятельное написание кода. Этот способ подходит для веб-программистов, у которых есть время и достаточные знания. Преимущество такого подхода в практически ничем не ограниченных возможностях. Недостаток один: простым смертным не по плечу такое создание форума;
  • Использование движков для создания форумов. Пожалуй, самый оптимальный вариант. От вас требуется оплатить хостинг и установить понравившийся движок. Ваши возможности будут ограничены программным обеспечением, но практика показывает, что функционала самых популярных платформ хватает «с головой»;
  • Использовать хостинг форумов. Данный способ подойдет для новичков и тех, кто не хочет разбираться с движками. Создание форума займет немного времени, однако ваши возможности будут существенно ограничены. Кроме того, монетизация будет затруднительной, так как форум, по сути, вам полностью не принадлежит.

Рассмотрим наиболее популярные движки, с помощью которых можно создать собственный форум.

  • vBulletin. Этот движок наиболее популярен среди людей, которые создают масштабные проекты, и это неспроста. Платформа считается лучшей и практически лишена недостатков, также постоянно выходят обновления;

Какой движок выбрать?

Движок является платным, но деньги за предоставляемые возможности выкладывать не жалко.

  • Invision Power Board (IPB). Еще один платный движок, однако, менее популярный, чем предыдущий;

Какой движок выбрать? - 2

Серьезным недостатком данной платформы выступает низкая частота обновлений. Недочеты платформы предлагается находить самим пользователям.

  • PhpBB. Этот движок бесплатный, а потому достаточно популярный. Настроить платформу легко, кроме того, предлагается широкий спектр возможностей настройки шаблонов.

Недостатком движка является достаточно низкая безопасность.

Существует достаточно много онлайн-сервисов, которые позволяют без особых проблем создать форум. Рассмотрим некоторые из них

  • Forum2x2.ru. При создании форума можно выбирать один из трех движков, также предоставляется разнообразие доменов. Сервис совершенно бесплатный и обладает качественной техподдержкой;
  • Starbb.ru. Быстрое создание форума с качественным дизайном. Если в течение года форум не «разразился» ни одним сообщением, то он будет автоматически удален;
  • Lifeforums.ru. Выбор домена на данном сервисе значительно упрощен (всего один доступный вариант), кроме того созданный с его помощью форум будет переполнен рекламой, избавиться от которой можно лишь за деньги.

В качестве примера создадим свой форум при помощи сервиса Forum2x2.ru. Для начала необходимо заполнить следующую форму:

Где и как можно быстро создать форум?

Теперь укажем данные о нашем форуме, заполнить соответствующую форму:

Где и как можно быстро создать форум? - 2

После этого вас обрадуют следующим сообщением:

«Новорожденный» форум выглядит следующим образом:

Таким образом, перед тем, как создать форум, необходимо определиться с технологиями, которые будут использованы.

Самостоятельное написание кода даст наибольшую гибкость, использование форум-хостингов займёт меньше времени, но наиболее оптимальный вариант – создать свой форум с помощью одного из популярных движков.

Как создать свой форум с нуля

От автора: приветствую тебя, дорогой читатель. Сегодня мы поговорим о том, как создать форум с нуля, а точнее, какие движки могут помочь в осуществлении этой цели.

Отличия от блога

Нужно сказать, что движки, на которых создаются блоги (тот же WordPress) зачастую не приспособлены для реализации форума. Хотя эти сайты имеют много общего, все же есть явные отличия в мелких деталях.

А в чем вообще эти отличия? Во-первых, на блоге есть явный хозяин сайта. Да, там могут вестись обсуждения в комментариях, другие пользователи своими ответами могут дополнять и расширять то, что создал автор, но все же основной человек на блоге – тот, кто его ведет. На форуме же все не совсем так.

Конечно, админ может организовать ветки, создать самые важные темы, но едва ли он будет отслеживать все темы и комментарии – большинство контента создается без него, а для модерации комментариев можно нанять пару человек.

Форум намного больше приспособлен для общения. Там применяются совсем другие технологии. Наверняка вы видели там что-то вроде количества сообщений от человека, рейтинг его комментариев, возможность оценить его ответ, личный профиль, подпись.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Все это то, чего нет на блоге, потому что там основная цель – дать его создателю написать очередную статью и выразить свое мнение по различным вопросам. Здесь же такое мнение выражают многие и часто бывает так, что какой-нибудь комментарий по своему объему получается длиннее, чем сама созданная тема.

Наконец, самое главное отличие – на форуме почти всегда есть возможность зарегистрироваться, на блоге я встречал такое очень редко, потому что в этом нет особого смысла. Регистрация же дает возможность подробно заполнить свой профиль и участвовать в различных конкурсах, рейтингах и других событиях, которые могут проходить на сайте.

Движки для создания форума

Ладно, с основными отличиями все понятно, а также понятно, почему блоговые движки не очень хорошо подходят для реализации массовых обсуждений. Теперь давайте рассмотрим как раз те cms, которые адаптированы под такие ресурсы.

PhpBB – один из самых популярный движков. Идеальный выбор для новичка, потому что больших знаний в области веб-технологий от вас не требуется. Преимуществом является также то, что почти все дополнения для этого движка распространяются абсолютно бесплатно. На сегодняшний момент есть достаточное количество шаблонов, да и переделать любой из них достаточно просто.

К еще одному огромному преимуществу я бы отнес возможность интеграции сделанного форума с другими cms. По сути это означает, что вы можете прикрутить его к своему основному проекту и радоваться жизни.

Есть и один большой минус – большая уязвимость к хакерским атакам. Владельцам сайтов на нем нужно быть чрезвычайно бдительными, даже установка новых обновлений и модулей для защиты не дает гарантированной защиты.

vBulletin – платный движок. В рунете его прозвали “булкой”. Стоимость использования – 250 долларов в год. С одной стороны, это сразу отсеивает кучу новичков, которые никогда не купят его, но с другой, оправдана ли эта цена?

Сегодня можно с большой уверенностью сказать: “Да, цена полностью оправдана”. Потому что этот движок является одним из самых лучших. Хотя сказал я это исключительно из уважения к другим cms, на деле vBulletin можно считать самым лучшим. Во-первых, его функциональность огромна, еще и дополнительные модули есть. Во-вторых, его разработчики – это профессионалы своего дела, в плане защиты от уязвимостей можно сказать, что это очень защищенный движок.

Однозначно рекомендуется опытным веб-мастерам, которые собираются создавать серьезный форум и не бояться вложиться в свой проект. Единственный выявленный недостаток – нагрузка на сервер. Рекомендуется сразу покупать ресурсы помощнее, впрочем, это и так необходимо для крупного форума, нечего экономить на этом.

SMF или Simple Machines Forum. Даже из названия становится видно, что он простой. Это движок для начинающий пользователей, но не смотря на это у него есть официальный сайт поддержки, дополнительные расширения и достаточно хорошая защита от взлома.

Как и phpBB, можно рекомендовать тем, кто собирается создавать свой первый форум.

Vanilla – а вот это выбор для тех, кто работает на WordPress. Дело в том, что там нет встроенный средств для создания форума, зато есть тысячи желающий улучшить этот движок, благодаря чему и появился на свет плагин Vanilla.

Имеет свои особенности, нужно потратить немного времени, чтобы разобраться. К счастью, Vanilla подражает вордпрессу в простоте, поэтому разобраться можно достаточно быстро. Что уж говорить, если вы всеми руками за WordPress и вам нужен форум, то без вопросов ставьте этот плагин.

В общем, вот такой вот небольшой обзор движков, которые позволят вам создать хороший форум. Присматривайтесь, экспериментируйте. Я рекомендую вам установить локальный сервер и на нем проводить все свои эксперименты. А я желаю вам успешного изучения сайтостроения и для этого предлагаю подписаться на наш сайт, потому что он поможет вам в этом.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Фреймворк YII2. Быстрый старт

Создание блога с использованием фреймворка Yii2!

Смотреть видео

Форумы страдают из-за социальных сетей. Пользователю проще создать один аккаунт в «Фейсбуке» или «Вконтакте» и вступить в десятки групп по интересам, чем создавать аккаунты на десятках тематических форумов. Несмотря на атаку соцсетей и пока идущих во втором эшелоне мессенджеров, формат дискуссионных площадок остается перспективным. Из этого руководства вы узнаете, почему форумы не теряют актуальности, как их создавать и раскручивать.

Форумы опустели, все ушли в соцсети? Нет, этот формат имеет перспективы

Почему форумы сохраняют актуальность

Форум — реликтовый формат площадки для общения в Сети. Он явно выпадает из картины мира современного интернет-пользователя. Типичному серферу нужно по пути на работу и с работы, во время обеденного перерыва и регулярных перекуров просмотреть ленты соцсетей, запостить селфи со смузи в «Инстаграм», прочитать парочку сниппетов в «Фейсбуке» для расширения кругозора, перепостить несколько анонсов статей с пометкой «прочитаю вечером» и поймать покемона.

Пользователи форумов не такие. Они совершают аномальные действия:

  • Сами регулярно заходят на сайт. Они посещают форум не из-за цепляющего заголовка или фото котика в ленте, не благодаря рассылке и оповещениям в почте. Просто им интересно.
  • Форумчане остаются на сайте достаточно долго. Они просматривают десятки страниц за сеанс.
  • Эти чудаки пишут. Они не просто ставят «лайки» и делают перепосты, а создают контент. Писатели не просят ничего взамен, но очень радуются, когда им ставят плюсы, благодарят с помощью кнопки «спасибо», цитируют.
  • Некоторые посетители форумов охотно следят за порядком и помогают новичкам.
  • Посетители некоторых форумов периодически встречаются в реальном пространстве. Они радуются сувенирам с эмблемой форума. А умению форумчан обращать в свою веру неофитов позавидуют крестоносцы и адепты MLM.

Актуальность и перспективность форумов — следствие аномального по нынешним временам поведения посетителей. Подумайте, много ли существует сайтов, пользователи которых действительно объединяются в сообщества, пишут друг для друга и читают друг друга, сами выбирают направление развития и реализуют выбранный сценарий?

Саморазвивающееся сообщество — огромная удача для владельца площадки. Форум может стать локомотивом, который потянет к успеху любой проект: интернет-магазин, информационный сайт, офлайн-бизнес. Этот локомотив такой мощный, что может прицепить к себе целый состав, каждый вагон в котором — отдельный бизнес. Кроме того, популярную площадку можно рассматривать в качестве самостоятельного бизнес-проекта.

На некоторых форумах можно найти огромное количество полезной информации. Далеко не каждая редакция сможет угнаться за сообществом

Вот несколько примеров живых успешных форумов, которые не прогибаются под натиском соцсетей:

  • Дискуссионный клуб «Здоровое общение». Форум Русского медицинского сервера — без преувеличения лучший в рунете источник достоверной медицинской информации для неспециалистов. Любой желающий может проконсультироваться с врачом или найти на форуме полезные сведения.
  • Searchengines.guru. Живое общение на тему поискового маркетинга и не только. Посещаемость форума исчисляется десятками тысяч человек в сутки, а количество просмотров достигает сотен тысяч.
  • Badgerandblade. Узкотематический англоязычный форум. Здесь общаются настоящие гики: ценители традиционного бритья со всего мира.
  • Материнские форумы — отдельный феномен. Его можно рассматривать целиком, а не выделять отдельные популярные ресурсы. «Мамские» разделы есть чуть ли не каждом уважающем себя общетематическом форуме. Также в рунете развивается несколько очень популярных площадок, посвященных исключительно детской и материнской тематике.
  • Часовой форум. Основная тематика площадки — часы и все, что с ними связано.
  • Форумы Drom.ru. Здесь обсуждают автомобили.
  • Форум Винского посвящен путешествиям.
  • На форуме IXBT можно поговорить о компьютерной технике.

Популярные форумы не сразу стали живыми и посещаемыми. Развитие любой площадки начиналось с нуля. Готовы сделать первый шаг?

Шаг 1: Выберите для форума доменное имя

C неймингом вы справитесь самостоятельно. А этот раздел поможет выбрать тип доменного имени. Существует три варианта:

  • Отдельный домен. В этом случае доменное имя выглядит так: www.example-forum.ru.
  • Субдиректория существующего домена. Форум будет доступен по адресу www.examplesite.ru/forum/.
  • Поддомен. URL выглядит так: www.forum.examlesite.ru.

Каждый из трех вариантов имеет преимущества и недостатки.

Когда для форума использовать отдельный домен

Выбирайте отдельный домен, если форум представляет собой самостоятельный проект. Вот преимущества этого варианта:

  • При выборе доменного имени не нужно учитывать название связанного сайта. Поэтому вы можете придумать красивый и запоминающийся URL.
  • Пользователям проще запомнить адрес форума.
  • Характеристики основного сайта не влияют на авторитет форума с точки зрения поисковых систем.

Недостаток у отдельного домена только один. Если вы когда-нибудь решите связать форум с каким-то сайтом, например, интернет-магазином или информационным ресурсом, придется учитывать название дискуссионной площадке уже при выборе URL нового ресурса.

Пример форума на отдельном домене — searchengines.guru. Кстати, раньше эта площадка была доступна на поддомене forum.searchengines.ru.

Форум на отдельном домене

Когда вам подойдет субдиректория

Используйте субдиректорию, если планируете создать форум для посетителей основного сайта. Например, если пользователям информационного ресурса становится тесно на страницах публикаций, обсуждения можно перенести на форум.

Преимущества данного подхода:

  • Форум превращается в инструмент развития ресурса. Пользовательский контент привлекает посетителей из поисковых систем. Люди приходят на сайт, чтобы пообщаться на интересующие их темы. С помощью форума формируется сообщество.
  • Живой форум улучшает пользовательские метрики основного ресурса. Растут показатели глубины и продолжительности сессий. Поисковые системы учитывают эти сигналы при оценке авторитета сайта.
  • Отсутствие расходов на покупку домена.

Есть и недостатки. Пользовательский контент может размывать релевантность сайта в целом. Форумчане наверняка захотят общаться на отвлеченные темы в курилках и флудилках. В результате ресурс получит нецелевой трафик.

Из-за пользовательского контента может пострадать авторитет всего ресурса. Публикация ссылок на нежелательные сайты, оскорбления пользователей, постинг недостоверных сведений, — вот только некоторые проблемы, которые придется решать.

Пример форума в субдиректории — площадка для обсуждений «Адвего». Она доступна по адресу advego.ru/blog/.

Форум в субдиректории /blog/. Интересное решение, но не в этом суть

Когда выбирать поддомен

Этот вариант подходит, если вам важно связать форум и главный сайт для пользователей, но разделить их для поисковых систем. Поисковики понимают связь между доменом и субдоменами, но рассматривают www.examplesite.ru и www.forum.examplesite.ru как два разных ресурса. Это обеспечивает ряд преимуществ:

  • Авторитет основного сайта не пострадает, если вы не сможете контролировать публикацию на форуме нежелательного контента.
  • URL с поддоменом понятнее для пользователей, чем субдиректория.
  • Релевантность основного ресурса не размывается, если пользователи форума обсуждают вопросы, не связанные с тематикой главного сайта.

У поддоменов есть недостатки. Главный связан с дополнительными расходами на хостинг. Стандартные хостинг-тарифы не всегда поддерживают создание поддоменов. Также вам придется уделить дополнительное внимание настройке сайта.

Пример форума на поддомене — Дискуссионный клуб Русского медицинского сервера, доступный по адресу forums.rusmedserv.com.

Шаг 2: выберите хостинг для форума

Если вы создаете форум на существующем сайте, в первые месяцы работы дискуссионной площадки о хостинге можно не думать. Пока посещаемость форума низкая, а пользователи создают мало контента, дополнительные ресурсы вам не нужны.

Если вы создаете новый форум на отдельном домене, на первых этапах работы выбирайте стандартный виртуальный хостинг. В этом случае управлять сервером будет провайдер. Многие хостеры предлагают тарифы для форумов. Их можно найти с помощью поисковиков и соответствующих запросов.

Если вы хотите выбрать тариф самостоятельно, обратите внимание на следующие характеристики:

  • Выбирайте Unix-хостинг. Наиболее популярные форумные движки поддерживают эту платформу.
  • Сервер должен работать с базой данных MySQL и языком PHP.
  • Достаточный объем выделенного дискового пространства. В первые месяцы и даже годы работы форума вам хватит 15 Гб.
  • Ежедневное резервное копирование.
  • Высокий аптайм. Этот показатель можно отслеживать только в ретроспективе. Поэтому изучите отзывы клиентов хостинг-провайдера. Для мониторинга аптайма используйте специальные сервисы, например, Monitis.

Когда посещаемость форума будет исчисляться тысячами или десятками тысяч человек в сутки, на хостинг придется тратить больше. Вам может понадобиться виртуальный или реальный выделенный сервер (VPS или Dedicated Server). Но пока форум посещаете только вы и ваши субличности под разными никами, не тратьте время на этот вопрос.

Не слушайте недобросовестных хостеров, которые предлагают вам платить за VPS или DS на старте проекта. Десятки или сотни посетителей, которые будут ежедневно посещать форум в первые месяцы его существования, не создадут проблем, если вы пользуетесь стандартным хостинг-тарифом.

Шаг 3: выберите CMS для форума

Вы можете выбрать платный или бесплатный форумный движок, использовать решение с минимальной функциональностью или мощную платформу с дополнительными возможностями, а также организовать дискуссионную площадку с помощью модулей для популярных CMS. Возможности самых востребованных движков описаны ниже.

vBulletin

Эта CMS позиционируется в качестве универсального движка для создания сайтов-сообществ. Из стандартной площадки для дискуссий она выросла в многофункциональную платформу, пользователи которой могут вести индивидуальные блоги, создавать открытые и закрытые группы, добавлять других пользователей в друзья, общаться на общем форуме.

Есть интересный пример использования закрытых групп обсуждаемой CMS. Форум врачебных консультаций Русского медицинского сервера работает на vBulletin. Когда консультанты сталкиваются со сложным вопросом, они проводят виртуальный консилиум в закрытой группе для врачей. После этого один из докторов публикует в открытом доступе коллективное мнение и рекомендации участников консилиума.

Функциональность vBulletin превращает сообщество пользователей в настоящую социальную сеть с иерархией ролей и связей, системой отслеживания публикаций и инструментами вовлечения и удержания пользователей.

vBulletin — коммерческий продукт. Вы можете приобрести отдельную программу vBulletin 5 Connect или облачное решение vBulletin Cloud. Если вы выбираете движок в облаке, разработчики полностью берут на себя back-end вашей площадки, включая хостинг и техподдержку.

Вот основные характеристики vBulletin:

  • SEO-дружественный движок. Поддерживает человеко-понятные URL (ЧПУ), позволяет добавлять к темам, разделам и публикациям в блогах метаданные.
  • Мощная защита от спама, взлома, автоматической регистрации и автопостинга.
  • Удобная площадка для обсуждений. Пользователям доступны визуальный редактор, приложение для создания опросов, жалобы на нежелательные сообщения администрации, публикация визуального контента.
  • Развитые социальные функции: добавление участников в друзья, создание групп, личные сообщения, уведомления на Email о новых сообщениях в группах и в привате.
  • Гибкая система пользовательских ролей.

vBulletin — хороший выбор для коммерческих форумов и посещаемых дискуссионных площадок. На этом движке работают упомянутые выше Дискуссионный клуб Русского медицинского сервера и форум об интернет-маркетинге searchengines.guru.

Всем известный 'Сёрч' работает на vBulletin

phpBB

Данную CMS можно рассматривать в качестве бесплатной альтернативы vBulletin. Движок распространяется по лицензии GNU GPL, поэтому его можно свободно использовать для реализации любых проектов, включая коммерческие.

Коротко phpBB можно охарактеризовать так: это WordPress в мире форумных движков. Речь идет о простоте установки, настройки, администрирования и использования. В отличие от сообщества разработчиков WP, создатели phpBB не стремятся превратить свой продукт в универсальное решение. Создатели сосредоточились на совершенствовании движка как простой и одновременно функциональной дискуссионной площадки. Благодаря этому CMS получила следующие характеристики:

  • Удобство форума для пользователей: классический «плоский» формат отображения сообщений, уведомления о новых сообщениях в темах и личном кабинете, возможность быстро отвечать на выбранные сообщения, публиковать визуальный контент, цитировать других пользователей, проводить опросы.
  • Социализация сообщества: дружба пользователей, подписка на темы, сортировка темы, отображение присутствующих участников, создание групп.
  • SEO-дружественность. Администратор phpBB может настраивать видимость того или иного контента для поисковых систем.
  • Возможность кастомизации движка с помощью бесплатных плагинов.

Используйте phpBB, если вы создаете форум для посетителей основного сайта или некоммерческую дискуссионную площадку. На этой CMS работает популярный кулинарный форум «Готовим дома».

XenFORO

Коммерческий движок, главными отличительными чертами которого можно назвать SEO-дружественность по умолчанию, развитые социальные функции и практически неограниченные возможности кастомизации. Ценители этого движка называют его улучшенным vBulletin, так как XenFORO создали бывшие разработчики упомянутой CMS Кир Дарби и Майк Салливан.

Почему одним из главных преимуществ XenFORO считается SEO-дружественность? Большинство форумных CMS нуждаются в дополнительных модулях для адаптации к техническим требованиям поисковиков. А разработчики XenFORO реализовали критически важные функции в ядре движка. В число таких функций входит:

  • Поддержка ЧПУ. Движок по умолчанию включает в URL название темы.
  • Возможность указать мета-данные для тем и разделов.
  • Встроенная микроразметка RDF «хлебные крошки».

Еще одно преимущество XenFORO — социализация сообщества. Она способствует вовлечению пользователей. Движок тесно интегрирован с Facebook. Пользователи могут отмечать сообщения с помощью кнопки «Нравится».

XenFORO — CMS со встроенной игрофикацией. За созданные сообщения и полученные «лайки» движок вознаграждает форумчан виртуальными трофеями. Трофеи выражают авторитетность пользователей и стимулируют общение.

На XenFORO работает популярная площадка для обсуждения вопросов строительства и обустройства загородных домов Forumhouse.ru.

Пример форума на CMS XenFORO

IPB

Популярный коммерческий движок для форумов. Разработчик позиционирует продукт в качестве набора веб-приложений для создания сообщества. IPB — полноценная универсальная CMS, с помощью которой кроме площадки для обсуждений можно организовать публикацию статей, заметок в персональных блогах, фотогалереи, каталог скачиваемых файлов, онлайн-чат и интернет-магазин виртуальных или реальных товаров.

Кроме универсальности, к основным характеристикам IPB относятся:

  • Вовлечение пользователей с помощью социализации и игрофикации. На форумах под управлением IPB можно использовать рейтинги, автоматически награждать пользователей и присваивать им статус в зависимости от репутации, демонстрировать ссылки на личные профили наиболее активных участников, показывать на сайте список наиболее популярных тем.
  • Функциональный визуальный редактор для создания публикаций на форуме и в блогах. Он поддерживает технологию drag-and-drop, упоминания других пользователей, встраивание кода, публикацию визуального контента.
  • Интеграция с популярными социальными сетями, включая Facebook, Twitter, Google+, LinkedIn. Пользователи могут делиться понравившимися сообщениями и авторизоваться на форуме с помощью учетных записей в соцсетях.
  • Мощная защита от спама.
  • SEO-дружественность и доступ к инструмент технической поисковой оптимизации. Движок по умолчанию поддерживает ЧПУ, автогенерацию мета-данных, уведомление поисковиков о создании новых тем с помощью пинг-сервисов. Через административную панель можно редактировать карту сайта sitemap.xml и следить за частотой посещения ресурса поисковыми роботами.

IPB подходит для коммерческих проектов. На этом движке работает форум Evernote.

Пример форума на CMS IPB

Расширения для популярных CMS

Если вы создаете форум для пользователей сайта под управлением WordPress, Joomla!, Drupal, OpenCart или других популярных движков, воспользуйтесь встроенными модулями для организации дискуссионных площадок или дополнительными плагинами и расширениями.

У штатных надстроек для популярных движков есть преимущества перед полноценными форумными CMS. К основным относится простота установки и управления, полная совместимость с базовым движком и отсутствие дополнительных расходов. К недостаткам можно отнести ограниченную функциональность.

Обратите внимание на следующие решения:

  • bbPress — форум для WordPress. Это бесплатный скрипт, разработкой которого занимается команда Automattic. Надстройка имеет базовую функциональность, которую можно расширить с помощью плагинов.
  • Kunena — форумное расширение для Joomla!. Простота установки и управления, возможность кастомизации с помощью шаблонов, свободное использование, — вот главные достоинства компонента.
  • Модуль Forum встроен в ядро Drupal по умолчанию. Advanced Forum — модуль, с помощью которого можно расширить функциональность и улучшить юзабилити дефолтного форума.
  • FlatForum — бесплатное форумное расширение для OpenCart. Вот несколько характеристик программы: высокая скорость, возможность кастомизации, спам-фильтр, администрирование через админпанель магазина.

С помощью bbPress форум к сайту на WordPress можно прикрутить в течение 30 секунд

Если вы реализуете коммерческий проект и нуждаетесь в универсальном и функциональном движке, выбирайте vBulletin, XenFORO или IPB. Если у вас некоммерческий проект или вы считаете форум дополнительной площадкой для пользователей основного сайта, используйте phpBB или форумные расширения для популярных CMS.

Кроме предложенных решений вы можете использовать бесплатные движки MyBB, Simple Machines Forum, Advanced Electron Forum, PunBB. Если вам нужны коммерческие CMS, обратите внимание на Ninja Post, Vanilla Forums, PlushForums.

Шаг 4: установите и настройте движок

Установка и настройка форумной CMS будет рассматриваться на примере phpBB. Работа с каждым движком имеет нюансы и особенности. Но с помощью phpBB можно понять общие подходы к работе с форумными CMS, включая базовые настройки, создание структуры форума, техническую поисковую оптимизацию.

Как установить phpBB

Чтобы установить phpBB, подключитесь к серверу с помощью FileZilla или другого FTP-клиента. Данные для подключения узнайте у хостинг-провайдера.

Скачайте на жесткий диск ПК последнюю версию движка. Разархивируйте файлы. Загрузите CMS в корневой каталог сайта на сервере.

Загружаем файлы CMS на сервер

Скачайте с официального сайта phpBB и загрузите на сервер файлы перевода. Разархивируйте их. Загрузите папки Language и Styles в корневой каталог сайта.

Загружаем языковые файлы на сервер

В браузере запустите установщик CMS. Для этого к адресу сайта добавьте название папки, в которую вы загрузили движок.

Запускаем установщик

Убедитесь, что конфигурация сервера соответствует требованиям CMS. Начните установку.

Если установщик принял конфигурацию сервера, продолжите установку

На следующем этапе необходимо создать базу данных. Укажите имя пользователя, название БД и придумайте пароль.

Создаем базу данных

Укажите данные учетной записи администратора.

Создаем учетную запись администратора

Далее установщик автоматически запишет конфигурационный файл. После этого система предложит вам указать расширенные настройки. При необходимости укажите параметры электронной почты и URL. В дальнейшем вы сможете изменить эти настройки.

Завершите установку. Произвольно переименуйте установочную папку public_html/forum/install на сервере. Теперь вы можете перейти в административную панель или на главную страницу форума.

Установка CMS phpBB завершена

Как настроить phpBB

Базовые настройки включают русификацию CMS и создание конференций, форумов и тем.

Чтобы русифицировать сайт, установите языковые пакеты. В административной панели выберите вкладку Customize. В меню Language packs установите пакет «Русский».

Устанавливаем языковой пакет

Перейдите на вкладку General и выберите меню Board Settings. В разделе Default language с помощью выпадающего меню укажите русский язык. Сохраните изменения. Не забудьте изменить язык в личном профиле.

Перед созданием первой темы уделите внимание архитектуре форума, который работает на CMS phpBB. Верхней иерархической единицей является категория. В категориях находятся форумы, в которых могут быть подфорумы. В форумах и подфорумах можно создавать темы.

Чтобы увидеть наглядный пример, создайте категорию. Для этого выберите вкладку «Форумы» и нажмите кнопку «Создать форум».

Создаем первую категорию

В меню «Тип форума» выберите опцию «Категория». Укажите название и добавьте описание категории. Нажмите кнопку «Отправить».

Создаем категорию

В категории создайте форум. Для этого в меню «Тип» выберите значение «Форум». В меню «Родительский форум» выберите категорию «Цветы». Укажите название и описание форума.

Создаем форум в категории 'Цветы'

Чтобы создать подфорум, в качестве родительского выберите один из форумов. Перейдите на главную страницу, чтобы проверить созданные категории и форумы.

Вы создали категории и форумы

Чтобы создать тему, выберите форум и нажмите кнопку «Новая тема».

Создаем новую тему на выбранном форуме

Руководство посвящено созданию и раскрутке форума, а не работе с конкретным форумным движком. Поэтому перед следующим этапом работы самостоятельно уделите внимание остальным настройкам CMS. После этого займитесь адаптацией форума к техническим требованиям поисковых систем.

Шаг 5: обеспечьте SEO-дружественность сайта

На этом этапе необходимо настроить человеко-понятные URL, обеспечить автоматическую генерацию метаданных страниц и создать карту сайта sitemap.xml.

Как настроить ЧПУ

Откройте один из созданных форумов или тем и посмотрите на URL в адресной строке браузера. Он выглядит приблизительно так: http://golem-ileleem.ru/phpBB3/viewtopic.php?f=4&t=3&sid=7c690e2a10a402ab732a8141247d2eb0. Живым пользователям такой URL не понравится.

Чтобы настроить ЧПУ, воспользуйтесь расширением URL Rewriting. Скачайте дистрибутив на жесткий диск и разархивируйте его. С помощью FTP-клиента загрузите папку с разархивированными файлами расширения в папку ext в корневом каталоге сайта.

Загружаем расширение в корневой каталог

В административной панели выберите вкладку «Персонализация». В меню «Управление расширениями» включите расширение. CMS автоматически преобразует URL в человеко-понятные. Ссылки будут выглядеть так: www.site-example/forum/название-форума-f5/название-темы-t8/. Буква «F» с цифрой обозначает порядковый номер форума в структуре сайта, а буква «t» с цифрой порядковый номер темы.

Если вы не хотите загружать расширения через FTP, воспользуйтесь программной надстройкой Upload Extensions. Этот модуль создает в консоли движка интерфейс для загрузки других плагинов. Само расширение Upload Extensions придется устанавливать через FTP в папку ext корневого каталога. Зато другие модули вы сможете загружать через админку.

Как добавить описания страниц

Метатег description может входить в сниппет сайта на странице выдачи. Если описание страницы отсутствует, поисковики формируют его из отрывка контента, который роботы считают релевантным запросу пользователя. Пользователям такой сниппет может показаться неподходящим.

Вы можете автоматически формировать метатег description с помощью расширения SEO Meta Description. Этот модуль автоматически включает в описание страницы темы первые 250 символов из стартового сообщения. А description форумов и категорий формируются из описаний, указанных администраторов при создании.

Установите и активируйте расширение с помощью функции Upload Extension. Создайте тему и проверьте наличие метаописания страницы. Для этого проверьте код страницы.

Благодаря установленному расширению CMS автоматически генерирует описания страниц

Как создать карту сайта

XML-карта сайта помогает поисковым системам корректно индексировать сайты. Она особенно актуальна для больших форумов, участники которых постоянно создают новые темы.

Чтобы создать файл sitemap.xml, установите и активируйте расширение phpBB XML Sitemap. Созданная надстройкой карта сайта будет доступна по адресу www.site-exaple/forum/sitemap.xml. Добавьте ее в кабинеты вебмастеров «Яндекс» и Google. Обратите внимание, расширение phpBB XML Sitemap автоматически обновляет карту сайта при создании новых категорий, форумов и тем.

Расширение создало карту сайта

NB! Если вы хотите закрыть поисковым системам доступ к служебным разделам форума, создайте и загрузите на сервер файл robots.txt. Члены сообщества phpBB считают этот шаг необязательным. CMS phpBB не создает ссылки на служебные страницы, не содержащие контент. Поэтому поисковые роботы их не видят. Если вы работаете с другим форумным движком, убедитесь, что служебные разделы закрыты от индексации с помощью файла robots.txt или другого инструмента.

В связи с этим важно добавить ссылку на sitemap.xml в кабинетах для вебмастеров. В противном случае поисковики не найдут карту сайта, так как она находится на служебной странице.

Вы обеспечили базовую SEO-дружественность форума: настроили ЧПУ, создали карту сайта, добавили автогенерацию описаний страниц и при необходимости закрыли от индексации служебные разделы. Теперь создайте комфортные условия общения для пользователей.

Шаг 6: напишите и опубликуйте правила общения

Формальные правила решают две задачи. Во-первых, они защищают участников форума от публикации нежелательного контента, троллинга, оскорблений, некорректного общения. Также правила защищают владельцев сайта от претензий, связанных с удалением нежелательного контента.

Во-вторых, правила способствуют формированию сообщества. Когда человек регистрируется и обязуется следовать принятым на форуме нормам, он формализует свое участие в группе. Это вовлекает пользователя и формирует чувство причастности.

Как и что писать в правилах форума

На вопрос «как» ответить просто: пишите так, как считаете нужным. Изложите правила в свободной форме, оформите в виде прав и обязанностей участников, перечислите по пунктам запрещенные действия и штрафные санкции. В качестве источника вдохновения воспользуйтесь Форумом Винского, Дискуссионным клубом Русского медицинского сервера или другими популярными площадками.

Обязательно включите в правила такие блоки:

  • Как общаться. Напишите, что на форуме принят дружественный тон, приветствуется помощь друг другу. Укажите, что приветствуется, когда пользователи аргументируют и подтверждают фактами свою точку зрения.
  • Что запрещено. Укажите, какое поведение считается неприемлемым. Подчеркните, что категорически запрещены оскорбления других участников, призывы к насилию, публикация адалт-контента, любой противозаконной информации.
  • Ссылки и реклама. Уделите этому вопросу отдельное внимание.
  • Штрафные санкции. Расскажите, что предпринимает администрация форума при нарушениях правил участниками.
  • Куда жаловаться. Объясните, что может сделать участник, если считает какое-либо сообщение неприемлемым.
  • Как создавать темы. Уделите особое внимание этому пункту. Ваша задача — приучить пользователей создавать информативные названия тем, которые приведут на сайт посетителей из поисковых систем. Смотрите сами: название «SOS!!! Хелп!!! Срочно спасите!!!» не несет полезной смысловой нагрузки. Пользователь должен был назвать тему так: «Что делать, если капает кран в ванной».

В правилах также можно описать иерархию пользователей, включая условия получения статусов, ограничения и возможности пользователей с разными статусами.

Опубликуйте правила в отдельной теме. Ссылку на нее можно добавить в меню форума. Обязательно замените правила, которые принимают пользователи при регистрации. По умолчанию форумные CMS предлагают пользователям шаблонный текст.

Шаблонные правила, которые необходимо принять при регистрации

Способ замены стандартного текста правил зависит от выбранной CMS. В phpBB поменять правила через административную консоль невозможно, поэтому придется редактировать файл ucp.php. Он находится в языковой папке в корневом каталоге сайта на сервере.

Обратите внимание, если форум поддерживает несколько языков, необходимо отредактировать файл ucp.php в соответствующих языковых папках. Правила придется перевести на все языки, которые поддерживает форум.

Языковые папки и файл ucp.php

С помощью FTP-клиента скачайте файл на компьютер. Откройте его в текстовом редакторе, найдите стандартный текст соглашения и замените его новым.

Стандартный текст, который нужно заменить

Сохраните изменения и загрузите файл на сервер. Проверьте, как отображаются новые правила.

Теперь во время регистрации пользователи видят новые правила

После создания формальных правил придется разобраться с одной из самых сложных задач, связанных с раскруткой форума.

Шаг 7: решите проблему пустого форума

Пользователи регистрируются и общаются только на живых форумах. Иными словами, чтобы привлечь настоящих форумчан, вам нужно показать, что на площадке уже есть люди, которые общаются друг с другом, пишут что-то интересное и помогают новым участникам. Получается абсурдная ситуация: чтобы привлечь первых пользователей, нужно предъявить им активный живой форум.

Как решить проблему? Действуйте так:

1. Создайте несколько разделов или форумов

Чтобы пользователи создавали новые темы, покажите им основные разделы форума. Пока площадка пустая, достаточно сделать три-четыре основных форума. Например, для финансового дискуссионного клуба на старте достаточно сделать разделы «Банки», «Страховые компании», «Фондовый рынок», «Валютный рынок».

Не допускайте хрестоматийной ошибки, о которой знают все опытные администраторы. Не делайте на пустой площадке десятки разделов, в каждом из которых висит одна тема. Из-за них у пользователей сформируется впечатление мертвого форума. Писать в пустоту никто не захочет.

2. Создайте одну-две темы в каждом разделе

Для начала достаточно сделать по одной живой теме в каждом из трех-четырех разделов, которые вы создали. Обсуждения нужны, чтобы новые пользователи видели активность на форуме.

Выбирайте темы, которые наверняка заинтересуют большинство представителей целевой аудитории. Более того, вам нужны топики, которые не исчерпают себя в обозримом будущем. Например, для раскрутки финансового форума не стоит брать темы типа «Колесо-страхование затягивает выплаты» или «Тама-банк и Тута-банк не выдают вклады». Скандальные новостные поводы не смогут постоянно удерживать внимание аудитории. Поэтому обсуждение в теме прекратится.

Вам нужны вечнозеленые темы. Вот несколько примеров: «Текущая ситуация на валютном рынке Forex», «Лучший курс валют на сегодня», «Тюнинг Лада-Приора», «Лучшие витамины для беременных», «Стоит ли делать прививки».

Кто будет писать в созданных темах, если настоящих пользователей на форуме еще нет? Это самый интересный вопрос. От ответа на него зависит, удастся ли вам сделать площадку популярной.

3. Обеспечьте активность в созданных темах

Как это сделать? Однозначного и единственно правильного ответа на этот вопрос нет. Администраторы и владельцы популярных форумов предлагают несколько идей.

Пишите сами под разными никами

У этого способа есть преимущества и недостатки. Вот плюсы:

  • Вы контролируете публикуемый на сайте контент. На практике это позволяет вставить актуальный ключевой запрос в заголовок темы.
  • Вы гарантированно знаете, что на форуме появятся сообщения.
  • Вы можете использовать созданные на этапе раскрутки форума аккаунты в будущем.

Минусов больше:

  • Люди чувствуют фейковое общение и распознают аккаунты-боты. Даже если у вас богатая фантазия и хорошие артистические данные, многие реальные пользователи почувствуют подвох.
  • Создание сообщений от имени разных персонажей в разных темах требует много времени.
  • Раскрутка форума может продолжаться долго. Вам просто надоест писать сообщения от имени разных частей своей личности. Как только боты замолкнут, форум будет снова казаться мертвым.
  • Даже если вы очень хорошо разбираетесь в выбранной тематике, фейковое обсуждение не будет таким же интересным, как настоящее. Люди приходят на форумы за мнением и опытом разных людей, а не одного человека.

Когда-то я на общественных началах модерировал раздел финансового форума. Активность в одной из горячих тем обеспечивали три участника. Они устраивали холивары, которые привлекали других пользователей.

Однажды я заметил, что все три активных участника заходят на форум с одного IP-адреса. Он совпадал с «айпишником» администратора. Админ подтвердил, что это его фейковые аккаунты. Я так сильно расстроился, что перестал общаться на этом форуме.

К чему эта история? Помните, что модераторы видят IP участников дискуссии. На площадках под управлением CMS vBulletin такая возможность точно есть. Обычно модераторами становятся наиболее активные форумчане. Что будет, если администрация форума потеряет авторитет в их глазах? Подумайте об этом перед созданием фейковых персонажей.

Нанимайте комментаторов на биржах

«Адвего» и аналогичные площадки пользуются популярностью у администраторов форумов. Вот преимущества платных сообщений:

  • На форуме пишут разные люди. Их общение больше похоже на естественное, чем посты администратора под разными никами.
  • Вы контролируете активность участников: выбираете темы сообщений, при необходимости корректируете содержание, в целом управляете дискуссией.
  • Если позволяет бюджет, вы можете увеличить количество разделов и тем, в которых активно общаются реальные пользователи.
  • Платных комментаторов можно использовать одновременно с ботами, которых контролирует администрация.

О недостатках:

  • Работники с биржи интересуются деньгами, а не тематикой форума. Поэтому их сообщения могут быть неинтересными, малоинформативными, формальными, похожими на фейковые.
  • Комментаторам с биржи нужно платить.
  • Когда вы прекратите платить, комментаторы с биржи перестанут писать. Если к этому времени на площадку не придут реальные пользователи, она будет казаться мертвой.
  • Работа с комментаторами занимает время.

Типичный заказ на бирже 'Адвего'

Попросите помощи у знакомых, родственников, сотрудников

Этот способ похож на работу с платными комментаторами с биржи. Друзья могут написать несколько интересных сообщений, если вы пообещаете угостить их чаем. Но большинству из них надоест общаться на форуме быстрее, чем на площадке зарегистрируется первый реальный пользователь. Когда друзьям надоест, они какое-то время будут писать малоинформативные, формальные, похожие на фейковые сообщения.

Как насчет сотрудников? Они могут создавать видимость активности на форуме. Но если тематика общения коллегам неинтересна, от платных комментаторов они отличаются только формой оплаты труда.

Найдите единомышленников

Этот способ создания стартовой активности на форуме самый трудный и самый простой одновременно.

Почему трудный? Вам нужно найти несколько человек, которые интересуются и разбираются в тематике форума. Также им должно быть интересно постоянно общаться друг с другом на вашей площадке.

Почему простой? Когда найдутся несколько энтузиастов, проблема пустого форума будет решена. Вам останется только участвовать в естественном общении под своим именем.

Сколько единомышленников нужно найти? Как можно больше. Где их искать? На этот вопрос ответьте самостоятельно.

На практике вы можете использовать сразу несколько способов решения проблемы пустого форума. Можно ли при раскрутке площадки обойтись без фейковых аккаунтов и купленных ботов? Хочется верить.

Шаг 8: привлекайте пользователей на форум

Эту задачу придется решать постоянно. Обратите внимание, она состоит из двух подзадач. Вам нужно привлекать посетителей, которые читают сообщения. Также вам нужно превращать как можно больше читателей в писателей или активных участников дискуссионной площадки. Какими способами привлекать пользователей на форум? Об этом дальше.

Привлекайте пользователей из поисковых систем

Это очевидный способ, который требует от вас минимальных усилий. Чтобы получать поисковый трафик, вы должны обеспечить два условия: выполнить технические требования поисковых систем к сайтам и силами пользователей публиковать на площадке актуальный тематический контент.

Вспомните маленькую хитрость с правилами форума: авторы новых тем должны писать информативные заголовки. А вы на правах администратора можете их редактировать в интересах аудитории.

Обратите внимание, со стороны аудитории есть запрос на получение информации на форумах. Здесь срабатывает принцип P2P: люди хотят получать ответы на вопросы от таких же людей, а не только от экспертов, брендов или журналистов. Как этот запрос реализуется на практике? Пользователи часто добавляют к поисковой фразе слово «форум».

Люди хотят получать информацию на форумах

На форуме Searchengines с начала текущего года обсуждается слух, якобы основанный на инсайдерской информации. Один из участников дискуссии узнал от сотрудников «Яндекса», что скоро появится алгоритм, который обеспечит форумам более высокие позиции в выдаче по информационным запросам, чем коммерческим сайтам и контент-проектам.

Обеспечьте возможность проконсультироваться с экспертом

Этот способ решает задачу привлечения пользователей в комплексе. Консультации экспертов привлекают читателей, а некоторых превращают в читателей.

Пример успешной реализации этой тактики — Дискуссионный клуб Русского медицинского сервера. Подавляющее большинство пользователей регистрируется на площадке, чтобы проконсультироваться с врачами.

Медик зарегистрировался на форуме, чтобы проконсультироваться с коллегами

Направляйте на форум посетителей сайта

Этот способ подходит владельцам сайтов с форумами. Ссылка на площадку для обсуждения в главном меню ресурса — очевидный способ перенаправления пользователей. Какие еще инструменты можно использовать?

Опубликуйте на сайте блок «Горячие темы на форуме»

На иллюстрации видно, как эту возможность реализовал сайт terrawoman.com.

Блок с горячими темами форума на главной странице сайта

Перенесите на форум обсуждения публикаций на сайте

Это спорная тактика с точки зрения юзабилити. Скорее всего, вы потеряете часть комментариев, так как не все пользователи согласятся переходить на форум и регистрироваться. Обратите внимание на кнопку «Обсудить на форуме» на сайте компьютерной игры World of Tanks. Она просто перенаправляет пользователя с сайта на форум.

Пожертвовали юзабилити сайта ради форума

Уменьшить негативное влияние на пользовательский опыт можно, если вы обеспечите автоматическую публикацию комментариев на странице публикации и на форуме одновременно.

Эту задачу решил сайт Finance.ua. Авторизованные пользователи могут оставлять комментарии на странице публикации. А обсуждение доступно одновременно на сайте и на форуме.

Обсуждение доступно одновременно на форуме и на странице публикации

Создайте на форуме раздел бесплатных объявлений

Эта тактика работает для посещаемых сайтов. Вам придется решить проблему ссылочного спама, так как многие пользователи будут публиковать объявления исключительно ради SEO-ссылок.

На 'Сёрче' есть раздел, в котором специалисты могут рекламировать свои услуги

Опубликуйте отдельную ссылку на доску объявлений на сайте.

Рекламируйте форум

Используйте все адекватные способы рекламы:

  • Контекстные объявления.
  • Ссылки и баннеры на тематических ресурсах.
  • Публикации в соцсетях.
  • Упоминания в рассылке.
  • Офлайн-рекламу.
  • Платные и партизанские упоминания на соседних форумах.

По сути, подходы к рекламе ограничены только бюджетом и здравым смыслом.

Проводите конкурсы и разыгрывайте призы

В конкурсах и розыгрышах должны участвовать только зарегистрированные пользователи. Так вы стимулируете конверсию читателей в писателей.

Победители получат звездные алмазы. Конкурс на игровом форуме

Уделите отдельное внимание активности пользователей. Регулярно награждайте самых активных комментаторов или авторов самых полезных и интересных сообщений.

Публикуйте на форуме контент-магниты

Это могут быть ссылки на бесплатные книги, дистрибутивы эксклюзивных сборок ПО с открытым кодом, легальные ключи от программ, ссылки на полезные ресурсы. Обратите внимание, контент-магниты должны быть доступными только для зарегистрированных пользователей.

Контент-магнит на форуме РМС. Скачать документ могут зарегистрированные пользователи

Используйте разные способы привлечения и конверсии трафика. Не забывайте оценивать эффективность площадки.

Шаг 9: следите за эффективностью форума

Отслеживайте эффективность развития форума так же, как оцениваете другие сайты. Информацию о конкретных метриках вы найдете в статье о мониторинге эффективности контент-маркетинга. Уделите особое внимание таким стандартным показателям:

  • Количество просмотров страниц и средняя глубина просмотра. Эти взаимосвязанные показатели для форумов более важны, чем общее количество посетителей. Несколько активных форумчан могут обеспечить такое количество просмотров страниц, для которого контент-проектам придется значительно наращивать посещаемость.
  • Средняя продолжительность сеанса. Эта поведенческая метрика важна для любого ресурса. Но на форумах пользователи должны находиться гораздо дольше, чем на обычных сайтах.
  • Источники трафика. Чем популярнее форум, тем больше посетителей будет попадать на него из закладок. Обратите внимание, речь идет о росте абсолютного, а не относительного показателя прямого трафика.
  • Возвратившиеся пользователи. Чем выше абсолютное количество повторных визитов, тем эффективнее форум.

Стандартные метрики можно оценивать с помощью систем аналитики

Также следите за метриками, которые отражают эффективность именно дискуссионных площадок:

  • Количество зарегистрированных пользователей.
  • Количество активных пользователей.
  • Количество тем и сообщений.

Это количественные показатели. Форумные CMS, например, vBulletin, считают их автоматически. Оценивайте динамику метрик, они должны расти.

Также следите за качественными характеристиками форума. Вот идеи:

  • Содержательность общения, информативность контента. Несколько объемных сообщений от экспертов стоят нескольких десятков реплик участников в разделе «Курилка».
  • Отношение к новичкам. Ваш форум не должен превратиться в закрытый клуб снобов. Старожилы должны приветливо относиться к новым пользователям. За атмосферой на площадке должны следить модераторы. «Курить темы и читать ЧаВо» человек сможет и без регистрации.
  • Распределение активности по разделам и темам. Пользователи должны общаться в разных ветках форума. Концентрация активности в одной-двух темах говорит о рисках остановки развития.
  • Стиль общения модераторов. Люди не любят общаться там, где администрация машет шашкой. В идеале пользователи не должны замечать работу модератора. Но не забывайте о следующем пункте.
  • Отношение пользователей к порядку. Если администрация закрывает глаза на нарушение правил, участники их нарушают. Это делает общение некомфортным. Поэтому модераторы не должны допускать анархии на вверенных им форумах.
  • Продолжительность активности аккаунтов на форуме, соотношение новичков к старожилам. На любом форуме постоянно меняется состав участников. О здоровом развитии сообщества говорит наличие костяка постоянных пользователей.

Новичок и старожил на форуме Searchengines

Обычно живой форум от стагнирующей площадки можно отличить с первого взгляда. Но для объективности мониторинга нужно использовать объективные метрики и динамику изменения показателей.

Гарантий нет, есть только возможности

Вы не сможете с помощью волшебной кнопки или чудесного алгоритма загнать аудиторию на форум и заставить ее активно общаться. Успешная раскрутка дискуссионной площадки зависит от множества переменных, в число которых входят удобство сайта, способность администрации привлечь трафик и направить его на форум, актуальность обсуждений и даже общительность и личная харизма администраторов и активных форумчан.

Простой пример: вы можете купить платный движок и потратить состояние на комментаторов с «Адвего», а первые реальные регистрации получить спустя месяцы после запуска проекта. А ваш коллега может прикрутить к WordPress кривой самодельный движок и предложить пользователям консультироваться с условным доктором Комаровским. Сервер вашего коллеги ляжет, как только тревожные мамочки узнают, где бесплатно консультирует харизматичный специалист.

Не ищите гарантированных способов раскрутки форума. Чтобы сделать дискуссионную площадку популярной, мало решить технические вопросы. В Сети много удобных форумов, на которых никто не пишет. Чтобы люди пришли и заговорили, вам придется много общаться. Других способов нет.

Проблемы с поиском интересующей информации в интернете встречаются часто. Некорректно сформулированный запрос, узкая направленность или уникальность материала – все это причины, из-за которых пользователь не может найти ответы на свои вопросы. Помочь в этом призваны форумы. Здесь можно получить информацию на любую тему. Несмотря на развитие социальных сетей и блогов этот тип ресурса не утратил значимость, и сохраняет актуальность.

Как выглядит удобный форум

Специфика форумов

Под этим понятием подразумевается разновидность самостоятельного информационного сайта или отдельный раздел портала. Площадка предназначена для общения посетителей, обмена мнениями, получением отзывов и рекомендаций. Среди тематических разделов часто присутствуют общие, где пользователи просто общаются, заводят знакомства и делятся опытом.

Можно назвать площадку клубом по интересам, главное достоинство которого – помощь другим пользователям и простота поиска единомышленников. На форумах часто используется система рейтингов, стимулирующая аудиторию к активному обсуждению. Развитие площадки – это развитие сообщества. Во многих аспектах форум похож на социальную сеть, но выгодно отличается от нее определенной тематикой или направленностью.

Принцип действия ресурса прост: при возникновении вопроса, который ранее не обсуждался, создается новая тема с описанием сути. Другие посетители оставляют свои ответы. У создателя и других пользователей есть возможность уточнить, дополнить информацию – групповое общение помогает раскрыть тему с разных сторон, получить ответы на основной и дополнительные вопросы. Помимо рядовых посетителей, незарегистрированных гостей, сообществом управляют модераторы во главе с владельцем – администратором.

Структура регионального форума на примере площадки
«Независимый Петербург»

Разновидности форумов: особенности и назначение

Причиной создания большинства информационных площадок является последующая монетизация. Практика показывает, что такие ресурсы живут дольше, чем проекты энтузиастов. Это объясняется необходимостью в регулярном обслуживании форума, что выражено в отслеживании новых тем, чистке сообщества от сообщений не по теме, рекламы или сообщений и тем оскорбительного характера. Чем популярнее проект, тем больше времени и средств уходит на его поддержание.

Популярные способы монетизации:

  • реклама;
  • партнерские программы;
  • спонсорство;
  • сбор пожертвований;
  • брендинг – усиление авторитета организации или владельца.

От выбора метода зависит специфика проекта, что определяет, будет ли форум отдельным разделом портала или независимым ресурсом. Чаще встречается первый вариант.

С точки зрения направленности, выделяют такие типы площадок:

  1. Тематические профессиональные: форум о рыбалке, автомобилях, детях, моде – все это предполагает наличие определенной доли экспертности или опыта у комментаторов.
  2. Проектные: используется для достижения определенного результата – реализации проекта. Такие сайты обычно закрыты от посторонних.
  3. Информационно-развлекательные: предназначены для общения, распространения новостей, развлечения.

Виды ресурсов по структуре содержания:

  1. Табличные: строгая иерархия ленточного типа. Необходима строгая модерация флуда и флейма.
  2. Древовидные: иерархия на основе указания, к какому сообщению относится ответ. В одной теме может происходить одновременно несколько бесед, в которых группы пользователей не мешают друг другу.
  3. Универсальный: наиболее популярный вариант, предоставляющий пользователю свободу выбора между структурой. Такие сообщества поддерживают и табличную и древовидную структуру.с

Привлекательнее всего выглядят проекты с универсальной структурой, но в этом случае усложняется реализация.

Статистика популярных тематик

Три способа создать форум с преимуществами и недостатками

Создание площадки форумного типа осуществляется следующими методами:

  • написание кода с нуля;
  • конструктор + хостинг;
  • использование CMS.

Рассмотрим каждый из вариантов по отдельности.

Самостоятельная разработка

Метод предполагает, что создатель имеет глубокие знания в сайтостроении и веб-программировании в целом. Если создать сайт может человек без опыта уже через несколько часов, то работоспособный форум – это трудоемкая задача, где придется потратить много времени.

Преимущества:

  • кастомизированная уникальная площадка;
  • неограниченные возможности;
  • реализация нестандартных методик или инструментов.

Недостатки:

  • длительность разработки;
  • затраты средств на привлечение программиста;
  • нет возможности создать человеку без опыта;
  • важность соблюдения четкой структуры кода.

Создание ресурса стоит доверить профессионалу, потому что ошибки в коде приводят к нестабильности работы ресурса, а также влияют на поисковую выдачу.

Пример проекта на собственном движке – Ford Fokus club

Конструктор + хостинг

Предоставляется в формате SaaS решения – ПО как услуга. Поставщик предлагает комплексное решение, чтобы минимизировать действия клиента при запуске сообщества. Для создания структуры и оформления предложен редактор, принципы работы которого зависят от разработчика. Существуют конструкторы сайта, основанные на визуальных инструментах редактирования, что упрощает кастомизацию и подготовку оформления. Как и в случае с CMS, предложен набор готовых решений на платной и бесплатной основе.

Преимущества:

  • минимальное время для запуска;
  • нет необходимости в знаниях;
  • комплекс услуг в одном с простым подключением;
  • качественная поддержка.

Недостатки:

  • ограниченные возможности;
  • абонентская плата;
  • существенные ограничения для бесплатной версии;
  • площадка в собственности поставщика (домен третьего уровня).

Это решение подходит для новичков, желающих быстро запустить форум. Практически все конструкторы с хостингом предполагают оплату за размещение или же размещают рекламный баннер, отказаться от которого можно при уплате абонентской платы. Возможности оптимизации сильно ограничены. Важно выбрать поставщика, предлагающего выгодные условия для запуска с учетом последующего роста – перенос площадки может иметь сложности.

Шаблон для конструктора Ucoz

CMS для форума

Это система управления контентом, часто называется «движком». Представляет собой оболочку с набором скриптов для упрощения и автоматизации действий пользователя. Разработать сайт форумного типа может человек без опыта, но знания помогут при отладке площадки.

Преимущества:

  • быстрый запуск;
  • набор готовых решений (шаблонов, виджетов, плагинов);
  • возможность оптимизации и кастомизации;
  • чистый код;
  • при разработке учитываются нюансы работы.

Недостатки:

  • некоторые ограничения самого движка;
  • желательно иметь знания для отладки и настройки.

С помощью готовых решений пользователь может организовать функциональность площадки и ее оформление. Возможностей популярных платформ предостаточно, чтобы отвечать нуждам ресурсов с высокой посещаемостью. При необходимости внести правки в код, возможно привлечь профессионала или заказать разработку отдельного инструмента под конкретный движок.

Простой и удобный форум на движке SMF

Разновидности CMS

Использование движка – оптимальный вариант для начинающего вебмастера. Это средство активно используют опытные сайтостроители, ведь набор готовых решений экономит время и силы на разработку, гарантируя качество кода.

Движком для проекта могут быть:

  • отдельные CMS;
  • плагины для существующих платформ.

Первый вариант заинтересует желающих завести независимый ресурс, а второй – для организации связки «сайт + форум», где под сайтом выступает любой тип площадки: интернет-магазин, портал, СМИ, блог.

По способу распространения платформы подразделяются на:

  • платные;
  • бесплатные.

Стоимость специализированных движков для форумов достаточно высока: в среднем $500. Цена не означает качество, а вот популярность говорит об активной разработке продукта, выходе обновлений, исправлении ошибок. В платных версиях предусматривается поддержка клиентов, где на возникший вопрос отвечает менеджер разработчика, а в бесплатной – придется самостоятельно искать ответы, спрашивать других пользователей.

Чтобы убедиться в целесообразности покупки CMS, рекомендуется предварительно проверить её функционал. Для этого разработчики предоставляют тестовый период, достаточный для принятия решения. Устанавливать взломанную платформу или движок от непроверенных разработчиков нельзя – код системы может содержать вредоносные элементы, рекламу и быть нестабильным.

Пример оформления в CMS IPS Community Suite 4

ТОП-10 CMS для разработки форумов

Целесообразность выбора движка зависит от поставленных целей, поэтому сложно предугадать оптимальные решения для конкретного случая. Далее предложен перечень универсальных решений, популярных среди вебмастеров различного уровня.

Рейтинг CMS:

  1. IPS Community Suite – платный движок от зарекомендовавших себя разработчиков. Владельцу ресурса предложен большой выбор инструментов и тем оформления с гибкой настройкой системы.
  2. XenForo – стоит дешевле, но функциональность практически аналогичная. Рациональное решение для поклонников минимализма и легкости платформы с быстрой загрузкой страниц.
  3. vBulletin – для разблокировки полного функционала требуется единоразовый взнос. Для кастомизации ресурса и настройки оформления необходимо подобрать шаблон, и выполнить редактирование.
  4. phpBB – популярное решение среди вебмастеров, выбирающих бесплатные движки. Имеет мощную поддержку сообщества и сапорт. Отличается гибкостью настройки и кастомизации, обилием расширений и решений для удобства управления площадкой.
  5. SMF – бесплатный движок, распространяемый как open source приложение. При достаточном мастерстве вебмастера реально создать качественный проект, не уступающий платным CMS.
  6. WpForo и BBPress – плагины для движка WordPress, доступные в каталоге. Отличаются простотой установки и скоростью настройки. Доступна гибкая настройка функциональности.
  7. punBB – распространяется бесплатно. Особенности платформы – чистота кода и легкость. Отлично подходит для новичка. При небольших возможностях оптимизации, имеет высокую производительность и минимальную нагрузку сервера.
  8. Phorum – продукт с открытым исходным кодом, распространяется бесплатно. Имеет модульную архитектуру, которую удобно расширять самописными плагинами. Отличается обширным комплексом инструментов модерации.
  9. XMB – движок для опытных вебмастеров. Это необходимо для реализации заложенного потенциала. Достоинством платформы выступает минимальная нагрузка сервера.
  10. Vanilla – простая и удобная платная CMS с упрощенной настройкой и отладкой, разработанная на собственном фреймворке. Имеет удобную систему навигации. Подходит для организации корпоративных сайтов и полноценных порталов.

Перейдем к рассмотрению критериев выбора.

Рейтинг ПО для форумов по версии ForumRate.ru

На какие параметры движка обратить внимание

Чтобы быстрее разобраться с выбором конкретного продукта, необходимо составить список критериев, который может выглядеть следующим образом:

  1. Назначение ресурса. Специализированные движки обладают мощной функциональностью, а плагины – это простые решения для небольших сообществ.
  2. Функциональность системы. Определяется доступными инструментами и плагинами.
  3. Популярность движка. Чем больше пользователей, тем шире арсенал готовых решений и выше вероятность самостоятельно найти решение возникшей проблемы.
  4. Частота выхода апдейтов. Демонстрирует стремление разработчиков усовершенствовать продукт новыми возможностями. С обновлениями выпускаются решения известных проблем, что повышает стабильность ресурса.
  5. Абонентская плата и ее размеры. Объясняет целесообразность оформления покупки. Не имеет смысла приобретать дорогостоящий движок ради экспериментального проекта.
  6. Возможности адаптации и механизмы редактирования. Ускоряют запуск, поэтому лучше попробовать несколько вариантов, чтобы подобрать наиболее удобный.

От выбора движка зависят многие аспекты работы форума, в том числе его привлекательность в глазах посетителей. Важно найти компромисс между стоимостью, требованиями и качеством – это гарантия разумной инвестиции средств и/или времени.

Панель администратора в CMS phpBB

Установка CMS для форумов

Процедура инсталляции осуществляется стандартно, и для этого потребуются:

  • хостинг;
  • подготовленная база данных (информация понадобится в процессе);
  • присвоенное доменное имя;
  • архив с установщиком (скачать с официального сайта разработчика).

Инструкция установки движка форума на виртуальный хостинг:

  1. Зайти в панель Администратора хостинга.
  2. Перейти в раздел «Менеджер файлов».
  3. Открыть корневую директорию, обычно – WWW/»доменное имя». Вместо «WWW» может присутствовать «public_html».
  4. Воспользовавшись загрузкой, залить архив с установщиком.
  5. Распаковать архив.
  6. Открыть появившуюся папку, скопировать все содержимое, и перенести его в папку WWW/»доменное имя».
  7. После завершения переноса в браузере перейти по адресу «доменное имя»/install.
  8. Завершить процедуру инсталляции, заполнив поля подключения к базе данных.

Инструкция предназначена для создания самостоятельной площадки, не привязанной к другому сайту. Если же необходимо прикрепить форум к другому ресурсу, то процедура выглядит аналогичным образом, но на этапе подготовки необходимо указать раздел для установки движка – WWW/»доменное имя»/forum или создать поддомен в каталоге на хостинге для получения адреса в формате forum.»доменное имя».

Распакованный установщик в диспетчере файлов хостинга CPanel

Перенос файлов установщика возможно выполнить через FTP-клиент. Для этого в панели Администратора хостинга необходимо разрешить доступ по FTP. Значения заполненной формы пригодятся для создания подключения. Рекомендуется использовать защищенные протоколы передачи данных SFTP или FTPS. Filezilla и другие файловые менеджеры с поддержкой FTP исключают необходимость использования файлового менеджера в панели Администратора на хостинге, что повышает уровень защиты. Протокол поддерживает докачку файлов на случай обрыва соединения, что гарантирует целостность объектов.

Требования к форумам

Чтобы представить, какой должна быть площадка, достаточно поставить себя на место посетителя, взглянуть на сайт глазами пользователя. Главное в сообществе – его польза для аудитории – без этого рассчитывать на популярность ресурса не имеет смысла.

К другим критериям сообщества относятся:

  • удобство;
  • понятная навигация;
  • интересная и актуальная тематика;
  • живое активное общение;
  • приятное оформление.

В начале развития сообщества вебмастера часто создают видимость общения, задавая вопросы и отвечая на них под разными никами. Если тема интересна аудитории, то со временем посещаемость ресурса будет увеличиваться, а общение будет организовано уже самими посетителями. Важно создавать минимум тему или комментарий в месяц, но чем чаще, тем лучше – это демонстрация активности.

Требования пользователей и поисковых систем

Форум – это площадка, где создателями контента являются сами пользователи (UGC). С ростом посещаемости растет скорость генерации контента. Основным источником трафика для сообществ является поисковая система. От нее зависит, как быстро будет расти аудитория, поэтому рассматривая требования к площадке, нельзя не упомянуть о требованиях поисковых систем.

Чего хотят поисковики

Перечислим основные требования поисковых систем к ресурсу:

  • полезный и уникальный контент;
  • чистый код и четкая структура;
  • отсутствие Flash-элементов в навигации;
  • отсутствие пустых страниц и ссылок на них;
  • корректное оформление;
  • поведенческий фактор.

Придерживаясь этих простых правил с момента запуска, удастся сэкономить много времени на оптимизации при развитии площадки.

Адаптивный дизайн

Форум предполагает, что посетители будут читать или просматривать контент. С учетом динамики развития мобильного трафика, стоит изначально задуматься про адаптацию площадки под мобильные устройства.

Пример адаптации сайта под различные устройства

Адаптированное оформление повышает удобство для пользователей, а также является важным требованием поисковых систем к сайтам любого типа. Если сайт удобно изучать с мобильного устройства, то это положительно отразится на поведенческом факторе – снизится процент отказов.

Способы популяризации форума

Для роста аудитории и поддержания интереса зарегистрированных пользователей к площадке, вебмастера используют различные средства поощрения:

  • денежное вознаграждение за сообщение или помощь;
  • репутация аккаунта;
  • система рейтингов;
  • продвижение статуса;
  • конкурсы и акции.

Использование этих простых средств особенно полезно при запуске площадки – достаточно донести информацию до целевой аудитории и привлечь ее внимание.

Подведем итоги

Форум представляет собой специфическую площадку информационного типа, где люди собираются, чтобы обсудить различные события, поделиться опытом, получить совет, найти ответ на вопрос или просто пообщаться на свободные темы. Здесь концентрируется целевая аудитория из заинтересованных пользователей, что используется для брендинга или монетизации площадки. Рекламодатели охотно размещают объявления на тематических ресурсах, благодаря высокой конверсии, что означает актуальность разработки.

Даты основания самых посещаемых форумов Рунета

Оптимальное решение для создания форума – использование специализированной CMS, которая дает простор для маневров, обеспечивая качество разработки. Процедура установки стандартная и не отличается от процесса установки движка для сайта. Форум можно использовать как самостоятельный и независимый ресурс или же сделать дополнением к имеющемуся порталу, что положительно отражается на его ранжировании. Требования к ресурсу достаточно просты: важно обеспечить пользу, удобство и безопасность площадки. Это оценят и поисковые системы, и пользователи.

В дальнейшем необходимо поддерживать развитие сообщества, следить за открытыми темами и комментариями. Для привлечения внимания новых посетителей применяются различные механизмы поощрения, вплоть до денежного вознаграждения. Все это необходимо, чтобы обеспечить быстрое наполнение ресурса тематическим контентом и полезной информацией. Оставленный без присмотра проект может быстро потерять популярность и перейти в разряд «мертвых», поэтому нужно всячески поддерживать активное обсуждение, задавать интересные темы и выводить аудиторию на полемику.

В этом руководстве мы собираемся создать форум с поддержкой PHP / MySQL с нуля. Этот учебник идеально подходит для привыкания к базовому использованию PHP и баз данных.

Если вам нужна дополнительная помощь по этому или другим вопросам, связанным с PHP, попробуйте связаться с одним из разработчиков PHP в Envato Studio. Они могут помочь вам во всем – от исправлений PHP до разработки надежных приложений PHP.

PHP разработчики на Envato Studio

PHP разработчики на Envato Studio

Шаг 1: Создание таблиц базы данных

Всегда полезно начинать с создания хорошей модели данных при создании приложения. Давайте опишем наше приложение одним предложением: мы собираемся создать форум, на котором есть пользователи, которые создают темы в различных категориях . Другие пользователи могут оставлять ответы. Как видите, я выделил пару существительных, которые представляют имена наших таблиц.

пользователей

  • категории
  • темы
  • Сообщений

Эти три объекта связаны друг с другом, поэтому мы будем обрабатывать их в нашей таблице. Посмотрите на схему ниже.

Выглядит довольно аккуратно, а? Каждый квадрат – это таблица базы данных. Все столбцы перечислены в нем, и линии между ними представляют отношения. Я объясню их далее, так что все в порядке, если это не имеет большого смысла для вас прямо сейчас.

Я буду обсуждать каждую таблицу, объясняя SQL, который я создал, используя схему выше. Для ваших собственных скриптов вы можете создать аналогичную схему и SQL тоже. Некоторые редакторы, такие как MySQL Workbench (тот, который я использовал), также могут генерировать файлы .sql, но я бы порекомендовал изучать SQL, потому что гораздо интереснее делать это самостоятельно. Введение в SQL можно найти в W3Schools .

Таблица пользователей

01

02

03

04

05

06

07

08

09

10

CREATE TABLE users (

user_id INT(8) NOT NULL AUTO_INCREMENT,

user_name VARCHAR(30) NOT NULL,

user_pass VARCHAR(255) NOT NULL,

user_email VARCHAR(255) NOT NULL,

user_date DATETIME NOT NULL,

user_level INT(8) NOT NULL,

UNIQUE INDEX user_name_unique (user_name),

PRIMARY KEY (user_id)

) TYPE=INNODB;

Конечно, оператор CREATE TABLE используется для указания того, что мы хотим создать новую таблицу. За оператором следует имя таблицы, а все столбцы указаны в скобках. Имена всех полей не требуют пояснений, поэтому мы обсудим только типы данных ниже.

ID пользователя

«Первичный ключ используется для уникальной идентификации каждой строки в таблице».

Тип этого поля – INT, что означает, что это поле содержит целое число. Поле не может быть пустым (NOT NULL) и увеличивается на единицу, добавляемое каждой записью. Внизу таблицы вы можете видеть, что поле user_id объявлено как первичный ключ. Первичный ключ используется для уникальной идентификации каждой строки в таблице. Ни одна из двух отдельных строк в таблице не может иметь одинаковое значение (или комбинацию значений) во всех столбцах. Это может быть немного неясно, поэтому вот небольшой пример.

Есть пользователь по имени Джон Доу. Если другие пользователи регистрируются с тем же именем, возникает проблема, потому что: какой пользователь какой? Вы не можете сказать, и база данных также не может сказать. С помощью первичного ключа эта проблема решается, поскольку обе темы уникальны.

Все остальные таблицы также имеют первичные ключи и работают одинаково.

user_name

Это текстовое поле, называемое полем VARCHAR в MySQL. Число в скобках – это максимальная длина. Пользователь может выбрать имя пользователя длиной до 30 символов. Это поле не может быть пустым. Внизу таблицы видно, что это поле объявлено UNIQUE, что означает, что одно и то же имя пользователя не может быть зарегистрировано дважды. Часть UNIQUE INDEX сообщает базе данных, что мы хотим добавить уникальный ключ. Затем мы определяем имя уникального ключа, user_name_unique в этом случае. Между скобками находится поле, к которому применяется уникальный ключ, то есть user_name.

user_pass

Это поле равно полю user_name, за исключением максимальной длины. Поскольку пароль пользователя, независимо от его длины, хэшируется с помощью sha1 (), пароль всегда будет длиной 40 символов.

user_email

Это поле равно полю user_pass.

user_date

Это поле, в котором мы будем хранить дату регистрации пользователя. Это тип DATETIME, и поле не может быть NULL.

user_level

Это поле содержит уровень пользователя, например: «0» для обычного пользователя и «1» для администратора. Подробнее об этом позже.

Таблица категорий

1

2

3

4

5

6

7

CREATE TABLE categories (

cat_id INT(8) NOT NULL AUTO_INCREMENT,

cat_name VARCHAR(255) NOT NULL,

cat_description VARCHAR(255) NOT NULL,

UNIQUE INDEX cat_name_unique (cat_name),

PRIMARY KEY (cat_id)

) TYPE=INNODB;

Эти типы данных в основном работают так же, как и в таблице пользователей. Эта таблица также имеет первичный ключ, и имя категории должно быть уникальным.

Таблица тем

1

2

3

4

5

6

7

8

CREATE TABLE topics (

topic_id INT(8) NOT NULL AUTO_INCREMENT,

topic_subject VARCHAR(255) NOT NULL,

topic_date DATETIME NOT NULL,

topic_cat INT(8) NOT NULL,

topic_by INT(8) NOT NULL,

PRIMARY KEY (topic_id)

) TYPE=INNODB;

Эта таблица почти такая же, как и другие таблицы, за исключением поля topic_by. Это поле относится к пользователю, который создал тему. Topic_cat относится к категории, к которой относится тема. Мы не можем форсировать эти отношения, просто объявив поле. Мы должны сообщить базе данных, что это поле должно содержать существующий user_id из таблицы users или действительный cat_id из таблицы категорий. Мы добавим некоторые отношения после того, как я обсудил таблицу сообщений.

Таблица сообщений

1

2

3

4

5

6

7

8

CREATE TABLE posts (

post_id INT(8) NOT NULL AUTO_INCREMENT,

post_content TEXT NOT NULL,

post_date DATETIME NOT NULL,

post_topic INT(8) NOT NULL,

post_by INT(8) NOT NULL,

PRIMARY KEY (post_id)

) TYPE=INNODB;

Это так же, как остальные таблицы; здесь также есть поле, которое ссылается на user_id: поле post_by. Поле post_topic относится к теме, к которой принадлежит сообщение.

«Внешний ключ – это ссылочное ограничение между двумя таблицами. Внешний ключ идентифицирует столбец или набор столбцов в одной (ссылающейся) таблице, которая ссылается на столбец или набор столбцов в другой (ссылочной) таблице».

Теперь, когда мы выполнили эти запросы, у нас есть довольно приличная модель данных, но отношения по-прежнему отсутствуют. Давайте начнем с определения отношений. Мы собираемся использовать то, что называется внешним ключом. Внешний ключ является ссылочным ограничением между двумя таблицами. Внешний ключ идентифицирует столбец или набор столбцов в одной (ссылающейся) таблице, которая ссылается на столбец или набор столбцов в другой (ссылающейся) таблице. Некоторые условия:

  • Столбец в таблице ссылок, на которую ссылается внешний ключ, должен быть первичным ключом
  • Указанные значения должны существовать в ссылочной таблице.

При добавлении внешних ключей информация связывается воедино, что очень важно для нормализации базы данных. Теперь вы знаете, что такое внешний ключ и почему мы его используем. Пришло время добавить их в таблицы, которые мы уже создали, с помощью оператора ALTER, который можно использовать для изменения уже существующей таблицы.

Сначала мы свяжем темы с категориями:

1

ALTER TABLE topics ADD FOREIGN KEY(topic_cat) REFERENCES categories(cat_id) ON DELETE CASCADE ON UPDATE CASCADE;

Последняя часть запроса уже говорит, что происходит. Когда категория удаляется из базы данных, все темы также будут удалены. Если cat_id категории изменится, каждая тема также будет обновлена. Вот для чего нужна часть ОБНОВЛЕНИЯ КАСКАДА. Конечно, вы можете отменить это, чтобы защитить свои данные, так что вы не можете удалить категорию, если у нее все еще есть связанные темы. Если вы хотите сделать это, вы можете заменить часть «ON DELETE CASCADE» на «ON DELETE RESTRICT». Также есть SET NULL и NO ACTION, которые говорят сами за себя.

Теперь каждая тема связана с категорией. Давайте свяжем темы с пользователем, который его создаст.

1

ALTER TABLE topics ADD FOREIGN KEY(topic_by) REFERENCES users(user_id) ON DELETE RESTRICT ON UPDATE CASCADE;

Этот внешний ключ такой же, как и предыдущий, но есть одно отличие: пользователь не может быть удален, пока есть темы с идентификатором пользователя. Мы не используем CASCADE здесь, потому что в наших темах может быть ценная информация. Мы не хотим, чтобы эта информация была удалена, если кто-то решит удалить свою учетную запись. Чтобы по-прежнему предоставлять пользователям возможность удалять свои учетные записи, вы можете создать функцию, которая анонимизирует все их темы, а затем удалить их. К сожалению, это выходит за рамки этого урока.

Связать сообщения с темами:

1

ALTER TABLE posts ADD FOREIGN KEY(post_topic) REFERENCES topics(topic_id) ON DELETE CASCADE ON UPDATE CASCADE;

И, наконец, свяжите каждое сообщение с пользователем, который сделал это:

1

ALTER TABLE posts ADD FOREIGN KEY(post_by) REFERENCES users(user_id) ON DELETE RESTRICT ON UPDATE CASCADE;

Это часть базы данных! Это было довольно много работы, но результат, отличная модель данных, определенно стоит того.

Шаг 2: Введение в систему верхнего / нижнего колонтитула

Каждая страница нашего форума нуждается в нескольких основных вещах, таких как тип документа и некоторая разметка. Вот почему мы добавим файл header.php вверху каждой страницы и файл footer.php внизу. Header.php содержит тип документа, ссылку на таблицу стилей и некоторую важную информацию о форуме, такую ​​как тег заголовка и метатеги.

header.php

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”

“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”nl” lang=”nl”>

<head>

    <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

    <meta name=”description” content=”A short description.”

    <meta name=”keywords” content=”put, keywords, here” />

    <title>PHP-MySQL forum</title>

    <link rel=”stylesheet” href=”style.css” type=”text/css”>

</head>

<body>

<h1>My forum</h1>

    <div id=”wrapper”>

    <div id=”menu”>

        <a class=”item” href=”/forum/index.php”>Home</a> –

        <a class=”item” href=”/forum/create_topic.php”>Create a topic</a> –

        <a class=”item” href=”/forum/create_cat.php”>Create a category</a>

        <div id=”userbar”>

        <div id=”userbar”>Hello Example.

    </div>

        <div id=”content”>

Div обертки будет использоваться, чтобы упростить стиль всей страницы. Меню div, очевидно, содержит меню со ссылками на страницы, которые нам еще предстоит создать, но помогает понять, куда мы движемся. Div пользовательской панели будет использоваться для небольшой верхней панели, которая содержит некоторую информацию, такую ​​как имя пользователя и ссылку на страницу выхода из системы. Очевидно, что страница содержания содержит фактическое содержимое страницы.

Внимательный читатель, возможно, уже заметил, что мы упускаем некоторые вещи. Нет </body> или </html> . Они находятся на странице footer.php, как вы можете видеть ниже.

1

2

3

4

5

</div><!– content –>

</div><!– wrapper –>

<div id=”footer”>Created for Nettuts+</div>

</body>

</html>

Когда мы добавляем верхний и нижний колонтитулы на каждой странице, остальная часть страницы встраивается между верхним и нижним колонтитулом. Этот метод имеет некоторые преимущества. В первую очередь все будет оформлено правильно. Краткий пример:

01

02

03

04

05

06

07

08

09

10

11

12

<?php

$error = false;

if($error = false)

{

    //the beautifully styled content, everything looks good

    echo ‘<div id=”content”>some text</div>’;

}

else

{

    //bad looking, unstyled error 🙁

}

?>

Как видите, страница без ошибок приведет к хорошей странице с контентом. Но если есть ошибка, все выглядит действительно безобразно; поэтому лучше убедиться, что не только настоящий контент правильно стилизован, но и ошибки, которые мы можем получить.

Еще одним преимуществом является возможность внесения быстрых изменений. Вы можете убедиться сами, отредактировав текст в footer.php, когда закончите этот урок; Вы заметите, что нижний колонтитул меняется на каждой странице сразу. Наконец, мы добавляем таблицу стилей, которая предоставляет нам некоторую базовую разметку – ничего особенного.

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

047

048

049

050

051

052

053

054

055

056

057

058

059

060

061

062

063

064

065

066

067

068

069

070

071

072

073

074

075

076

077

078

079

080

081

082

083

084

085

086

087

088

089

090

091

092

093

094

095

096

097

098

099

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

body {

    background-color: #4E4E4E;

    text-align: center;

}

#wrapper {

    width: 900px;

    margin: 0 auto;

}

#content {

    background-color: #fff;

    border: 1px solid #000;

    float: left;

    font-family: Arial;

    padding: 20px 30px;

    text-align: left;

    width: 100%;

}

#menu {

    float: left;

    border: 1px solid #000;

    border-bottom: none;

    clear: both;

    width:100%;

    height:20px;

    padding: 0 30px;

    background-color: #FFF;

    text-align: left;

    font-size: 85%;

}

#menu a:hover {

    background-color: #009FC1;

}

#userbar {

    background-color: #fff;

    float: right;

    width: 250px;

}

#footer {

    clear: both;

}

/* begin table styles */

table {

    border-collapse: collapse;

    width: 100%;

}

table a {

    color: #000;

}

table a:hover {

    color:#373737;

    text-decoration: none;

}

th {

    background-color: #B40E1F;

    color: #F0F0F0;

}

td {

    padding: 5px;

}

/* Begin font styles */

h1, #footer {

    font-family: Arial;

    color: #F1F3F1;

}

h3 {margin: 0;

/* Menu styles */

.item {

    background-color: #00728B;

    border: 1px solid #032472;

    color: #FFF;

    font-family: Arial;

    padding: 3px;

    text-decoration: none;

}

.leftpart {

    width: 70%;

}

.rightpart {

    width: 30%;

}

.small {

    font-size: 75%;

    color: #373737;

}

#footer {

    font-size: 65%;

    padding: 3px 0 0 0;

}

.topic-post {

    height: 100px;

    overflow: auto;

}

.post-content {

    padding: 30px;

}

textarea {

    width: 500px;

    height: 200px;

}

Шаг 3: Готовимся к действию

Прежде чем мы сможем прочитать что-либо из нашей базы данных, нам нужно соединение. Вот для чего предназначен connect.php. Мы включим его в каждый файл, который собираемся создать.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

<?php

//connect.php

$server = ‘localhost’;

$username = ‘usernamehere’;

$password = ‘passwordhere’;

$database = ‘databasenamehere’;

if(!mysql_connect($server, $username, $password))

{

    exit(‘Error: could not establish database connection’);

}

if(!mysql_select_db($database)

{

    exit(‘Error: could not select the database’);

}

?>

Просто замените значения переменных по умолчанию в верхней части страницы на собственную дату, сохраните файл, и все готово!

Шаг 4: Отображение обзора форума

Так как мы только начали с некоторых базовых методов, мы сейчас сделаем упрощенную версию обзора форума.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

<?php

//create_cat.php

include ‘connect.php’;

include ‘header.php’;

echo ‘<tr>’;

    echo ‘<td class=”leftpart”>’;

        echo ‘<h3><a href=”category.php?id=”>Category name</a></h3> Category description goes here’;

    echo ‘</td>’;

    echo ‘<td class=”rightpart”>’;

            echo ‘<a href=”topic.php?id=”>Topic subject</a> at 10-10’;

    echo ‘</td>’;

echo ‘</tr>’;

include ‘footer.php’;

?>

Вот вам и хороший обзор. Мы будем обновлять эту страницу на протяжении всего урока, чтобы шаг за шагом она больше походила на конечный результат!

Шаг 5: Регистрация пользователя

Давайте начнем с создания простой HTML-формы, чтобы новый пользователь мог зарегистрироваться.

Страница PHP необходима для обработки формы. Мы собираемся использовать переменную $ _SERVER. Переменная $ _SERVER – это массив, значения которого автоматически устанавливаются при каждом запросе. Одним из значений массива $ _SERVER является REQUEST_METHOD. Когда страница запрашивается с помощью GET, эта переменная будет содержать значение «GET». Когда страница запрашивается через POST, она будет содержать значение «POST». Мы можем использовать это значение, чтобы проверить, была ли опубликована форма. Смотрите страницу signup.php ниже.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

<?php

//signup.php

include ‘connect.php’;

include ‘header.php’;

echo ‘<h3>Sign up</h3>’;

if($_SERVER[‘REQUEST_METHOD’] != ‘POST’)

{

    /*the form hasn’t been posted yet, display it

      note that the action=”” will cause the form to post to the same page it is on */

    echo ‘<form method=”post” action=””>

        Username: <input type=”text” name=”user_name” />

        Password: <input type=”password” name=”user_pass”>

        Password again: <input type=”password” name=”user_pass_check”>

        E-mail: <input type=”email” name=”user_email”>

        <input type=”submit” value=”Add category” />

     </form>’;

}

else

{

    /* so, the form has been posted, we’ll process the data in three steps:

        1. Check the data

        2. Let the user refill the wrong fields (if necessary)

        3. Save the data

    */

    $errors = array();

    if(isset($_POST[‘user_name’]))

    {

        //the user name exists

        if(!ctype_alnum($_POST[‘user_name’]))

        {

            $errors[] = ‘The username can only contain letters and digits.’;

        }

        if(strlen($_POST[‘user_name’]) > 30)

        {

            $errors[] = ‘The username cannot be longer than 30 characters.’;

        }

    }

    else

    {

        $errors[] = ‘The username field must not be empty.’;

    }

    if(isset($_POST[‘user_pass’]))

    {

        if($_POST[‘user_pass’] != $_POST[‘user_pass_check’])

        {

            $errors[] = ‘The two passwords did not match.’;

        }

    }

    else

    {

        $errors[] = ‘The password field cannot be empty.’;

    }

    if(!empty($errors)) /*check for an empty array, if there are errors, they’re in this array (note the ! operator)*/

    {

        echo ‘Uh-oh.. a couple of fields are not filled in correctly..’;

        echo ‘<ul>’;

        foreach($errors as $key => $value) /* walk through the array so all the errors get displayed */

        {

            echo ‘<li>’ .

        }

        echo ‘</ul>’;

    }

    else

    {

        //the form has been posted without, so save it

        //notice the use of mysql_real_escape_string, keep everything safe!

        //also notice the sha1 function which hashes the password

        $sql = “INSERT INTO

                    users(user_name, user_pass, user_email ,user_date, user_level)

                VALUES(‘” . mysql_real_escape_string($_POST[‘user_name’]) . “‘,

                       ‘” . sha1($_POST[‘user_pass’]) . “‘,

                       ‘” . mysql_real_escape_string($_POST[‘user_email’]) . “‘,

                        NOW(),

                        0)”;

        $result = mysql_query($sql);

        if(!$result)

        {

            //something went wrong, display the error

            echo ‘Something went wrong while registering.

            //echo mysql_error();

        }

        else

        {

            echo ‘Successfully registered.

        }

    }

}

include ‘footer.php’;

?>

Многочисленные объяснения есть в комментариях, которые я сделал в файле, поэтому обязательно ознакомьтесь с ними. Обработка данных происходит в три этапа:

  • Проверка данных
  • Если данные неверны, покажите форму еще раз
  • Если данные верны, сохраните запись в базе данных

Часть PHP довольно понятна. Однако SQL-запрос, вероятно, нуждается в небольшом пояснении.

1

2

3

4

5

6

7

INSERT INTO

       users(user_name, user_pass, user_email ,user_date, user_level)

VALUES(‘” . mysql_real_escape_string($_POST[‘user_name’]) . “‘,

       ‘” . sha1($_POST[‘user_pass’]) . “‘,

       ‘” . mysql_real_escape_string($_POST[‘user_email’]) . “‘,

       NOW(),

       0);

В строке 1 у нас есть оператор INSERT INTO, который говорит сам за себя. Имя таблицы указывается во второй строке. Слова в скобках представляют столбцы, в которые мы хотим вставить данные. Оператор VALUES сообщает базе данных, что мы завершили объявление имен столбцов, и пришло время указать значения. Здесь есть что-то новое: mysql_real_escape_string. Функция экранирует специальные символы в неэкранированной строке, поэтому ее можно безопасно разместить в запросе. Эта функция ДОЛЖНА использоваться всегда, за очень немногими исключениями. Слишком много скриптов, которые не используют его и могут быть взломаны очень легко. Не рискуйте, используйте mysql_real_escape_string ().

«Никогда не вставляйте простой пароль как есть. Вы ДОЛЖНЫ всегда его шифровать».

Также вы можете видеть, что функция sha1 () используется для шифрования пароля пользователя. Это тоже очень важная вещь для запоминания. Никогда не вставляйте простой пароль как есть. Вы ДОЛЖНЫ всегда шифровать это. Представьте себе хакера, которому каким-то образом удается получить доступ к вашей базе данных. Если он видит все текстовые пароли, он может войти в любую учетную запись (администратора), которую он хочет. Если столбцы пароля содержат строки sha1, он должен сначала взломать их, что практически невозможно.

Примечание: также возможно использовать md5 (), я всегда использую sha1 (), потому что тесты показали, что он немного быстрее, хотя и немного. Вы можете заменить sha1 на md5, если хотите.

Если процесс регистрации прошел успешно, вы должны увидеть что-то вроде этого:

Попробуйте обновить экран phpMyAdmin, новая запись должна быть видна в таблице пользователей.

Шаг 6: Добавление аутентификации и пользовательских уровней

Важным аспектом форума является разница между обычными пользователями и администраторами / модераторами. Поскольку это небольшой форум, и добавление таких функций, как добавление новых модераторов и прочего, займет слишком много времени, мы сосредоточимся на процессе входа в систему и создадим некоторые функции администратора, такие как создание новых категорий и закрытие темы.

Теперь, когда вы выполнили предыдущий шаг, мы сделаем вашу вновь созданную учетную запись учетной записью администратора. В phpMyAdmin, нажмите на таблицу пользователей, а затем «Обзор». Ваша учетная запись, вероятно, появится сразу же. Нажмите на значок редактирования и измените значение поля user_level с 0 на 1. Вот и все. Вы не заметите никакой разницы в нашем приложении сразу, но когда мы добавим администратора, у него будет обычная учетная запись, и у вашей учетной записи будут другие возможности.

Процесс входа в систему работает следующим образом:

  • Посетитель вводит данные пользователя и отправляет форму
  • Если имя пользователя и пароль верны, мы можем начать сеанс
  • Если имя пользователя и пароль неверны, мы снова показываем форму с сообщением

Файл signin.php находится ниже. Не думайте, что я не объясняю, что я делаю, но посмотрите комментарии в файле. Это гораздо проще понять.

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

047

048

049

050

051

052

053

054

055

056

057

058

059

060

061

062

063

064

065

066

067

068

069

070

071

072

073

074

075

076

077

078

079

080

081

082

083

084

085

086

087

088

089

090

091

092

093

094

095

096

097

098

099

100

101

102

103

104

105

106

107

<?php

//signin.php

include ‘connect.php’;

include ‘header.php’;

echo ‘<h3>Sign in</h3>’;

//first, check if the user is already signed in. If that is the case, there is no need to display this page

if(isset($_SESSION[‘signed_in’]) && $_SESSION[‘signed_in’] == true)

{

    echo ‘You are already signed in, you can <a href=”signout.php”>sign out</a> if you want.’;

}

else

{

    if($_SERVER[‘REQUEST_METHOD’] != ‘POST’)

    {

        /*the form hasn’t been posted yet, display it

          note that the action=”” will cause the form to post to the same page it is on */

        echo ‘<form method=”post” action=””>

            Username: <input type=”text” name=”user_name” />

            Password: <input type=”password” name=”user_pass”>

            <input type=”submit” value=”Sign in” />

         </form>’;

    }

    else

    {

        /* so, the form has been posted, we’ll process the data in three steps:

            1. Check the data

            2. Let the user refill the wrong fields (if necessary)

            3. Varify if the data is correct and return the correct response

        */

        $errors = array();

        if(!isset($_POST[‘user_name’]))

        {

            $errors[] = ‘The username field must not be empty.’;

        }

        if(!isset($_POST[‘user_pass’]))

        {

            $errors[] = ‘The password field must not be empty.’;

        }

        if(!empty($errors)) /*check for an empty array, if there are errors, they’re in this array (note the ! operator)*/

        {

            echo ‘Uh-oh.. a couple of fields are not filled in correctly..’;

            echo ‘<ul>’;

            foreach($errors as $key => $value) /* walk through the array so all the errors get displayed */

            {

                echo ‘<li>’ .

            }

            echo ‘</ul>’;

        }

        else

        {

            //the form has been posted without errors, so save it

            //notice the use of mysql_real_escape_string, keep everything safe!

            //also notice the sha1 function which hashes the password

            $sql = “SELECT

                        user_id,

                        user_name,

                        user_level

                    FROM

                        users

                    WHERE

                        user_name = ‘” . mysql_real_escape_string($_POST[‘user_name’]) . “‘

                    AND

                        user_pass = ‘” . sha1($_POST[‘user_pass’]) . “‘”;

            $result = mysql_query($sql);

            if(!$result)

            {

                //something went wrong, display the error

                echo ‘Something went wrong while signing in. Please try again later.’;

                //echo mysql_error();

            }

            else

            {

                //the query was successfully executed, there are 2 possibilities

                //1.

                //2.

                if(mysql_num_rows($result) == 0)

                {

                    echo ‘You have supplied a wrong user/password combination.

                }

                else

                {

                    //set the $_SESSION[‘signed_in’] variable to TRUE

                    $_SESSION[‘signed_in’] = true;

                    //we also put the user_id and user_name values in the $_SESSION, so we can use it at various pages

                    while($row = mysql_fetch_assoc($result))

                    {

                        $_SESSION[‘user_id’] = $row[‘user_id’];

                        $_SESSION[‘user_name’] = $row[‘user_name’];

                        $_SESSION[‘user_level’] = $row[‘user_level’];

                    }

                    echo ‘Welcome, ‘ .

                }

            }

        }

    }

}

include ‘footer.php’;

?>

Это запрос, который находится в файле signin.php:

01

02

03

04

05

06

07

08

09

10

SELECT

    user_id,

    user_name,

    user_level

FROM

    users

WHERE

    user_name = ‘” . mysql_real_escape_string($_POST[‘user_name’]) . “‘

AND

    user_pass = ‘” . sha1($_POST[‘user_pass’])

Очевидно, нам нужна проверка, чтобы сказать, принадлежат ли предоставленные учетные данные существующему пользователю. Многие сценарии извлекают пароль из базы данных и сравнивают его с помощью PHP. Если мы сделаем это напрямую через SQL, пароль будет сохранен в базе данных один раз при регистрации и никогда не покинет его. Это безопаснее, потому что все реальные действия происходят на уровне базы данных, а не в нашем приложении.

Если пользователь вошел в систему успешно, мы делаем несколько вещей:

01

02

03

04

05

06

07

08

09

10

<?php

//set the $_SESSION[‘signed_in’] variable to TRUE

$_SESSION[‘signed_in’] = true;

//we also put the user_id and user_name values in the $_SESSION, so we can use it at various pages

while($row = mysql_fetch_assoc($result))

{

    $_SESSION[‘user_id’] = $row[‘user_id’];

    $_SESSION[‘user_name’] = $row[‘user_name’];

}

?>

Во-первых, мы установили для переменной $ sign_in ‘$ _SESSION значение true, чтобы мы могли использовать его на других страницах, чтобы убедиться, что пользователь вошел в систему. Мы также поместили имя пользователя и идентификатор пользователя в переменную $ _SESSION для использования на другой странице. , Наконец, мы показываем ссылку на обзор форума, чтобы пользователь мог сразу начать.

Конечно, для входа требуется другая функция: выход! Процесс выхода на самом деле намного проще, чем процесс входа. Поскольку вся информация о пользователе хранится в переменных $ _SESSION, все, что нам нужно сделать, это сбросить их и отобразить сообщение.

Теперь, когда мы установили переменные $ _SESSION, мы можем определить, вошел ли кто-то в систему. Давайте сделаем последнее простое изменение в header.php:

Заменить:

1

<div id=”userbar”>Hello Example.

С:

01

02

03

04

05

06

07

08

09

10

11

<?php

<div id=”userbar”>

    if($_SESSION[‘signed_in’])

    {

        echo ‘Hello’ .

    }

    else

    {

        echo ‘<a href=”signin.php”>Sign in</a> or <a href=”sign up”>create an account</a>.’;

    }

</div>

Если пользователь вошел в систему, он увидит его имя на главной странице со ссылкой на страницу выхода. Наша аутентификация завершена! К настоящему времени наш форум должен выглядеть так:

Шаг 7: Создание категории

Мы хотим создавать категории, поэтому давайте начнем с создания формы.

1

2

3

4

5

<form method=”post” action=””>

   Category name: <input type=”text” name=”cat_name” />

   Category description: <textarea name=”cat_description” /></textarea>

   <input type=”submit” value=”Add category” />

</form>

Этот шаг очень похож на шаг 4 (регистрация пользователя), поэтому я не буду здесь подробно объяснять. Если вы выполнили все шаги, вы сможете понять это довольно быстро.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<?php

//create_cat.php

include ‘connect.php’;

if($_SERVER[‘REQUEST_METHOD’] != ‘POST’)

{

    //the form hasn’t been posted yet, display it

    echo ‘<form method=’post’ action=”>

        Category name: <input type=’text’ name=’cat_name’ />

        Category description: <textarea name=’cat_description’ /></textarea>

        <input type=’submit’ value=’Add category’ />

     </form>’;

}

else

{

    //the form has been posted, so save it

    $sql = ìINSERT INTO categories(cat_name, cat_description)

       VALUES(” . mysql_real_escape_string($_POST[‘cat_name’]) . ì’,

             ” .

    $result = mysql_query($sql);

    if(!$result)

    {

        //something went wrong, display the error

        echo ‘Error’ .

    }

    else

    {

        echo ‘New category successfully added.’;

    }

}

?>

Как видите, мы запустили скрипт с проверкой $ _SERVER, после проверки, есть ли у пользователя права администратора, необходимые для создания категории. Форма отображается, если она еще не была отправлена. Если это так, значения сохраняются. Еще раз, SQL-запрос подготовлен и затем выполнен.

Шаг 8: Добавление категорий в index.php

Мы создали несколько категорий, поэтому теперь мы можем отображать их на первой странице. Давайте добавим следующий запрос в область содержимого index.php.

1

2

3

4

5

6

SELECT

    categories.cat_id,

    categories.cat_name,

    categories.cat_description,

FROM

    categories

Этот запрос выбирает все категории, их имена и описания из таблицы категорий. Нам нужно всего лишь немного PHP для отображения результатов. Если мы добавим эту часть точно так же, как и на предыдущих шагах, код будет выглядеть следующим образом.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

<?php

//create_cat.php

include ‘connect.php’;

include ‘header.php’;

$sql = “SELECT

            cat_id,

            cat_name,

            cat_description,

        FROM

            categories”;

$result = mysql_query($sql);

if(!$result)

{

    echo ‘The categories could not be displayed, please try again later.’;

}

else

{

    if(mysql_num_rows($result) == 0)

    {

        echo ‘No categories defined yet.’;

    }

    else

    {

        //prepare the table

        echo ‘<table border=”1″>

              <tr>

                <th>Category</th>

                <th>Last topic</th>

              </tr>’;

        while($row = mysql_fetch_assoc($result))

        {

            echo ‘<tr>’;

                echo ‘<td class=”leftpart”>’;

                    echo ‘<h3><a href=”category.php?id”>’ .

                echo ‘</td>’;

                echo ‘<td class=”rightpart”>’;

                            echo ‘<a href=”topic.php?id=”>Topic subject</a> at 10-10’;

                echo ‘</td>’;

            echo ‘</tr>’;

        }

    }

}

include ‘footer.php’;

?>

Обратите внимание, как мы используем cat_id для создания ссылок на category.php. Все ссылки на эту страницу будут выглядеть следующим образом: category.php? Cat_id = x, где x может быть любым числовым значением. Это может быть новым для вас. Мы можем проверить URL с помощью PHP для значений $ _GET. Например, у нас есть эта ссылка:

Оператор echo $ _GET [ëcat_id ‘];’ будет отображаться «23». В следующих нескольких шагах мы будем использовать это значение для получения тем при просмотре одной категории, но темы нельзя просмотреть, если мы их еще не создали. Итак, давайте создадим несколько тем!

Шаг 9: Создание темы

На этом этапе мы объединяем методы, которые мы изучили на предыдущих этапах. Мы проверяем, вошел ли пользователь, мы будем использовать входной запрос для создания темы и создания некоторых основных HTML-форм.

Структура create_topic.php вряд ли может быть объяснена в виде списка или чего-то еще, поэтому я переписал ее в псевдокоде.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

<?php

if(user is signed in)

{

    //the user is not signed in

}

else

{

    //the user is signed in

    if(form has not been posted)

    {

        //show form

    }

    else

    {

        //process form

    }

}

?>

Вот реальный код этой части нашего форума, посмотрите объяснения под кодом, чтобы увидеть, что он делает.

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

047

048

049

050

051

052

053

054

055

056

057

058

059

060

061

062

063

064

065

066

067

068

069

070

071

072

073

074

075

076

077

078

079

080

081

082

083

084

085

086

087

088

089

090

091

092

093

094

095

096

097

098

099

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

<?php

//create_cat.php

include ‘connect.php’;

include ‘header.php’;

echo ‘<h2>Create a topic</h2>’;

if($_SESSION[‘signed_in’] == false)

{

    //the user is not signed in

    echo ‘Sorry, you have to be <a href=”/forum/signin.php”>signed in</a> to create a topic.’;

}

else

{

    //the user is signed in

    if($_SERVER[‘REQUEST_METHOD’] != ‘POST’)

    {

        //the form hasn’t been posted yet, display it

        //retrieve the categories from the database for use in the dropdown

        $sql = “SELECT

                    cat_id,

                    cat_name,

                    cat_description

                FROM

                    categories”;

        $result = mysql_query($sql);

        if(!$result)

        {

            //the query failed, uh-oh 🙁

            echo ‘Error while selecting from database.

        }

        else

        {

            if(mysql_num_rows($result) == 0)

            {

                //there are no categories, so a topic can’t be posted

                if($_SESSION[‘user_level’] == 1)

                {

                    echo ‘You have not created categories yet.’;

                }

                else

                {

                    echo ‘Before you can post a topic, you must wait for an admin to create some categories.’;

                }

            }

            else

            {

                echo ‘<form method=”post” action=””>

                    Subject: <input type=”text” name=”topic_subject” />

                    Category:’;

                echo ‘<select name=”topic_cat”>’;

                    while($row = mysql_fetch_assoc($result))

                    {

                        echo ‘<option value=”‘ . $row[‘cat_id’] . ‘”>’ .

                    }

                echo ‘</select>’;

                echo ‘Message: <textarea name=”post_content” /></textarea>

                    <input type=”submit” value=”Create topic” />

                 </form>’;

            }

        }

    }

    else

    {

        //start the transaction

        $query = “BEGIN WORK;”;

        $result = mysql_query($query);

        if(!$result)

        {

            //Damn!

            echo ‘An error occured while creating your topic.

        }

        else

        {

            //the form has been posted, so save it

            //insert the topic into the topics table first, then we’ll save the post into the posts table

            $sql = “INSERT INTO

                        topics(topic_subject,

                               topic_date,

                               topic_cat,

                               topic_by)

                   VALUES(‘” . mysql_real_escape_string($_POST[‘topic_subject’]) . “‘,

                               NOW(),

                               ” . mysql_real_escape_string($_POST[‘topic_cat’]) . “,

                               ” . $_SESSION[‘user_id’] . “

                               )”;

            $result = mysql_query($sql);

            if(!$result)

            {

                //something went wrong, display the error

                echo ‘An error occured while inserting your data.

                $sql = “ROLLBACK;”;

                $result = mysql_query($sql);

            }

            else

            {

                //the first query worked, now start the second, posts query

                //retrieve the id of the freshly created topic for usage in the posts query

                $topicid = mysql_insert_id();

                $sql = “INSERT INTO

                            posts(post_content,

                                  post_date,

                                  post_topic,

                                  post_by)

                        VALUES

                            (‘” . mysql_real_escape_string($_POST[‘post_content’]) . “‘,

                                  NOW(),

                                  ” . $topicid . “,

                                  ” . $_SESSION[‘user_id’] . “

                            )”;

                $result = mysql_query($sql);

                if(!$result)

                {

                    //something went wrong, display the error

                    echo ‘An error occured while inserting your post.

                    $sql = “ROLLBACK;”;

                    $result = mysql_query($sql);

                }

                else

                {

                    $sql = “COMMIT;”;

                    $result = mysql_query($sql);

                    //after a lot of work, the query succeeded!

                    echo ‘You have successfully created <a href=”topic.php?id=’. $topicid . ‘”>your new topic</a>.’;

                }

            }

        }

    }

}

include ‘footer.php’;

?>

Я буду обсуждать эту страницу в двух частях, показывая форму и обрабатывая форму.

Отображение формы
Мы начинаем с простой формы HTML. Здесь есть что-то особенное, потому что мы используем выпадающий список. Этот раскрывающийся список заполнен данными из базы данных, используя этот запрос:

1

2

3

4

5

6

SELECT

    cat_id,

    cat_name,

    cat_description

FROM

    categories

Это единственная потенциально запутанная часть здесь; это довольно кусок кода, как вы можете увидеть, посмотрев на файл create_topic.php в нижней части этого шага.

Обработка формы

Процесс сохранения темы состоит из двух частей: сохранение темы в таблице тем и сохранение первого сообщения в таблице постов. Это требует чего-то достаточно продвинутого, что выходит за рамки этого урока. Это называется транзакцией, что в основном означает, что мы начинаем с выполнения команды start, а затем откатываем при возникновении ошибок базы данных и фиксируем, когда все прошло хорошо. Подробнее о транзакциях .

01

02

03

04

05

06

07

08

09

10

11

<?php

//start the transaction

$query = “BEGIN WORK;”;

$result = mysql_query($query);

//stop the transaction

$sql = “ROLLBACK;”;

$result = mysql_query($sql);

//commit the transaction

$sql = “COMMIT;”;

$result = mysql_query($sql);

?>

Первый запрос, используемый для сохранения данных, – это запрос на создание темы, который выглядит следующим образом:

1

2

3

4

5

6

7

8

9

INSERT INTO

    topics(topic_subject,

               topic_date,

               topic_cat,

               topic_by)

VALUES(‘” . mysql_real_escape_string($_POST[‘topic_subject’]) . “‘,

       NOW(),

       ” . mysql_real_escape_string($_POST[‘topic_cat’]) . “,

       ” . $_SESSION[‘user_id’] . “)

Сначала определяются поля, затем значения для вставки. Первый из них мы видели раньше, это просто строка, которая становится безопасной с помощью mysql_real_escape_string (). Второе значение, NOW (), является функцией SQL для текущего времени. Третье значение, однако, это значение, которое мы не видели раньше. Это относится к (действительному) идентификатору категории. Последнее значение относится к (существующему) user_id, который в данном случае является значением $ _SESSION [«user_id»]. Эта переменная была объявлена ​​во время входа в систему.

Если запрос выполнен без ошибок, мы переходим ко второму запросу. Помните, что мы все еще делаем транзакцию здесь. Если бы у нас были ошибки, мы бы использовали команду ROLLBACK.

01

02

03

04

05

06

07

08

09

10

INSERT INTO

        posts(post_content,

        post_date,

        post_topic,

        post_by)

VALUES

        (‘” . mysql_real_escape_string($_POST[‘post_content’]) . “‘,

         NOW(),

         ” . $topicid . “,

         ” . $_SESSION[‘user_id’] . “)

Первое, что мы делаем в этом коде, это используем mysql_insert_id (), чтобы получить последний сгенерированный идентификатор из поля topic_id в таблице тем. Как вы помните из первых шагов этого урока, идентификатор генерируется в базе данных с помощью auto_increment.

Затем сообщение вставляется в таблицу сообщений. Этот запрос очень похож на запрос по темам. Разница лишь в том, что этот пост относится к теме, а тема относится к категории. С самого начала мы решили создать хорошую модель данных, и вот результат: хорошая иерархическая структура.

Шаг 10: просмотр категории

Мы собираемся сделать обзорную страницу для отдельной категории. Мы только что создали категорию, было бы удобно просматривать все темы в ней. Сначала создайте страницу под названием category.php.

Краткий список того, что нам нужно:

Необходим для отображения категории

  • cat_name
  • cat_description

Необходим для отображения всех тем

  • topic_id
  • topic_subject
  • topic_date
  • topic_cat

Давайте создадим два SQL-запроса, которые извлекают именно эти данные из базы данных.

1

2

3

4

5

6

7

8

SELECT

    cat_id,

    cat_name,

    cat_description

FROM

    categories

WHERE

    cat_id = ” . mysql_real_escape_string($_GET[‘id’])

Приведенный выше запрос выбирает все категории из базы данных.

1

2

3

4

5

6

7

8

9

SELECT

    topic_id,

    topic_subject,

    topic_date,

    topic_cat

FROM

    topics

WHERE

    topic_cat = ” . mysql_real_escape_string($_GET[‘id’])

Вышеуказанный запрос выполняется в цикле while, в котором мы повторяем категории. Делая это таким образом, мы увидим все категории и последние темы для каждой из них.
Полный код category.php будет следующим:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

<?php

//create_cat.php

include ‘connect.php’;

include ‘header.php’;

//first select the category based on $_GET[‘cat_id’]

$sql = “SELECT

            cat_id,

            cat_name,

            cat_description

        FROM

            categories

        WHERE

            cat_id = ” . mysql_real_escape_string($_GET[‘id’]);

$result = mysql_query($sql);

if(!$result)

{

    echo ‘The category could not be displayed, please try again later.’

}

else

{

    if(mysql_num_rows($result) == 0)

    {

        echo ‘This category does not exist.’;

    }

    else

    {

        //display category data

        while($row = mysql_fetch_assoc($result))

        {

            echo ‘<h2>Topics in ′’ .

        }

        //do a query for the topics

        $sql = “SELECT

                    topic_id,

                    topic_subject,

                    topic_date,

                    topic_cat

                FROM

                    topics

                WHERE

                    topic_cat = ” . mysql_real_escape_string($_GET[‘id’]);

        $result = mysql_query($sql);

        if(!$result)

        {

            echo ‘The topics could not be displayed, please try again later.’;

        }

        else

        {

            if(mysql_num_rows($result) == 0)

            {

                echo ‘There are no topics in this category yet.’;

            }

            else

            {

                //prepare the table

                echo ‘<table border=”1″>

                      <tr>

                        <th>Topic</th>

                        <th>Created at</th>

                      </tr>’;

                while($row = mysql_fetch_assoc($result))

                {

                    echo ‘<tr>’;

                        echo ‘<td class=”leftpart”>’;

                            echo ‘<h3><a href=”topic.php?id=’ . $row[‘topic_id’] . ‘”>’ .

                        echo ‘</td>’;

                        echo ‘<td class=”rightpart”>’;

                            echo date(‘dm-Y’, strtotime($row[‘topic_date’]));

                        echo ‘</td>’;

                    echo ‘</tr>’;

                }

            }

        }

    }

}

include ‘footer.php’;

?>

И вот окончательный результат нашей страницы категорий:

Шаг 11: Просмотр темы

SQL-запросы на этом этапе являются сложными. PHP-часть – это все то, что вы видели раньше. Давайте посмотрим на запросы. Первый получает основную информацию о теме:

1

2

3

4

5

6

7

SELECT

    topic_id,

    topic_subject

FROM

    topics

WHERE

    topics.topic_id = ” . mysql_real_escape_string($_GET[‘id’])

Эта информация отображается в заголовке таблицы, которую мы будем использовать для отображения всех данных. Далее мы извлекаем все сообщения в этой теме из базы данных. Следующий запрос дает нам именно то, что нам нужно:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

SELECT

    posts.post_topic,

    posts.post_content,

    posts.post_date,

    posts.post_by,

    users.user_id,

    users.user_name

FROM

    posts

LEFT JOIN

    users

ON

    posts.post_by = users.user_id

WHERE

    posts.post_topic = ” . mysql_real_escape_string($_GET[‘id’])

На этот раз нам нужна информация от пользователей и таблицы сообщений – поэтому мы снова используем LEFT JOIN. Условие таково: идентификатор пользователя должен совпадать с полем post_by. Таким образом, мы можем показать имя пользователя, который ответил на каждый пост.

Окончательный вид темы выглядит так:

Шаг 12: Добавление ответа

Давайте создадим последнюю недостающую часть этого форума, возможность добавить ответ. Начнем с создания формы:

1

2

3

4

<form method=”post” action=”reply.php?id=5″>

    <textarea name=”reply-content”></textarea>

    <input type=”submit” value=”Submit reply” />

</form>

Полный код reply.php выглядит следующим образом.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

<?php

//create_cat.php

include ‘connect.php’;

include ‘header.php’;

if($_SERVER[‘REQUEST_METHOD’] != ‘POST’)

{

    //someone is calling the file directly, which we don’t want

    echo ‘This file cannot be called directly.’;

}

else

{

    //check for sign in status

    if(!$_SESSION[‘signed_in’])

    {

        echo ‘You must be signed in to post a reply.’;

    }

    else

    {

        //a real user posted a real reply

        $sql = “INSERT INTO

                    posts(post_content,

                          post_date,

                          post_topic,

                          post_by)

                VALUES (‘” . $_POST[‘reply-content’] . “‘,

                        NOW(),

                        ” . mysql_real_escape_string($_GET[‘id’]) . “,

                        ” . $_SESSION[‘user_id’] . “)”;

        $result = mysql_query($sql);

        if(!$result)

        {

            echo ‘Your reply has not been saved, please try again later.’;

        }

        else

        {

            echo ‘Your reply has been saved, check out <a href=”topic.php?id=’ . htmlentities($_GET[‘id’]) . ‘”>the topic</a>.’;

        }

    }

}

include ‘footer.php’;

?>

Комментарии в коде довольно подробно описывают, что происходит. Мы проверяем реального пользователя и затем вставляем сообщение в базу данных.

Заканчивать

Теперь, когда вы закончили этот урок, вы должны лучше понять, что нужно для создания форума. Я надеюсь, что мои объяснения были достаточно ясны! Еще раз спасибо за чтение.

Сегодня есть несколько доступных способов разработки и последующего размещения форумов в интернете:

  • самостоятельная разработка;
  • заказ у профессиональных веб-программистов;
  • покупка платного движка;
  • скачивание бесплатного движка;
  • создание при помощи онлайн-конструктора.

Учитывая такой огромный выбор, возникает вопрос: какой вариант является самым оптимальным?

Как бесплатно запустить форум?

Обычный форум – это территория где люди могут общаться между собой. Чаще всего он заточен под какую-либо тему. И поэтому там собираются только единомышленники, которых связывают одни и те же идеи и темы. Каждый форум дает возможность обмениваться изображениями, файлами и показывать свои работы.

Подобное место объединяет пользователей по разным увлечениям: людей, желающих поиграть в игры, фанатов, любителей фильмов, культуры, машин, роботов и т.д. Форумы могут быть сельскими, городскими, а также их создают чтобы люди из определенных домов могли общаться между собой.

Необходимо отметить что различные движки по типу WordPress на которых выполняется создание форумов не совсем подходят. На Вордпресс делают в основном блоги. Конечно форумы и сетевые дневники чем-то похожи, но все же у них есть небольшие отличия.

В чем же они заключаются? У блога имеется один хозяин – автор. Несмотря на то что люди что-то пишут, обсуждают и комментируют владельцем является тот человек, который его постоянно наполняет новыми материалами, то есть автор блога. На форуме все иначе.

Тем не менее администратор проекта может создать разделы, запустить в обсуждение наиболее трепещущие темы, но вряд ли станет следить за всеми написанными комментариями и многообразными темами. Большая часть информации будет опубликована не им, а, чтобы не пропускать плохие комментарии, за отдельное вознаграждение, можно пригласить специальных модераторов.

Такое место как форум гораздо лучше подойдет для общения. В его создание используются совершенно иные механизмы. Возможно вы замечали, что там существует нечто вроде возможности дать оценку ответа, поставить подпись, личный профиль, количество писем от человека, рейтинг его комментариев и др.

Ничего подобного на блоге не существует, так как основная цель блога – это дать автору написать свою статью и поделиться с народом каким-то мнением по разным темам. На форуме же свое мнение могут выразить большинство участников и порой может возникнуть так, что комментарий может быть по объему больше опубликованной статьи.

Вот мы и добрались до основного различия между блогом и форумом. Оно заключается в следующем, на блоге чаще всего не существует формы для регистрации, а на форуме она имеется. Возможность зарегистрироваться позволяет более детальнее расписать свои данные. Кроме этого вы можете применять участие в разных соревнованиях, рейтингах и других подобных делах, которые могут там проходить.

Но как обычному человеку можно создать форум? Для этого существуют специальные онлайн конструкторы! Достаточно выбрать один из них и проделать простые шаги, которые заключаются вот в чем:

  1. Выполнении простой регистрации и создание форума.
  2. Определение с поддоменом и шаблоном.
  3. Адаптации дизайна под себя, описание на главной странице чему посвящается форум.
  4. Выполнение настроек форума: разработка разделов, подфорумов, форумов, разных тематик, создание прав для разных посетителей.
  5. Присоединение домена и собственно публикация проекта!

Идея

Необходимо очень хорошо обдумать то, чему будет посвящен ваш форум. Потому что, опираясь именно на это, создается домен, дизайн и будущая структура подобного сайта. Лучше всего взять ту тему, в которой вы плаваете как рыба в воде. Хорошенько подумайте, как вы назовете ваше творение, название должно очень хорошо подходить к вашей теме. Желательно чтобы оно было запоминающимся и притягательным для людей.

Однако важно помнить, что создание форума с абсолютного нуля — вариант, который нельзя назвать простым для человека, который не изучал основы веб-программирования. А вот у профессионального программиста с самостоятельной разработкой форума не должно возникнуть никаких трудностей. Это обусловлено тем, что форум можно создать практически на любом современном языке веб-программирования.

Чаще всего для этого используется MySQL и PHP. Причем совершенно необязательно начинать разработку форума с нуля. Для решения этой задачи можно использовать готовый набор компонентов, находящийся в свободном доступе на GitHub. Для создания интернет-форума также могут понадобиться такие фреймворки, как Codeigniter, Zend Framework, Symfony, Yii и Laravel.

Для верстки внешнего вида форума обычно используются HTML-фреймворки. Наиболее популярным вариантом считается фреймворк Bootstrap. Для обеспечения динамичной работы отдельных частей проекта также можно использовать JavaScript-библиотеки jQuery или ReactJS.

Стоит еще раз заметить, что такой вариант создания форума актуален для программистов. Тем, кто не является специалистом в сфере веб-программирования, стоит обратить внимание на более простые способы решения данной задачи.

Как создать форум бесплатно?

Для этого просто используйте любой из понравившихся бесплатных конструкторов. Принцип действия у всех один и тот же. Разберем создание форума на примере сервиса Ucoz. Для этого на проекте пройдите простую регистрацию и перейдите по этой ссылке: http://www.ucoz.ru/help/start/kak-sozdat-svoj-sajt-v-ucoz#step3

Вам необходимо написать название. Вы должны помнить, что название веб проекта должно в полной мере отражать его тему. Далее определитесь с внешним видом и кликните на кнопку «Продолжить».

Как создать форум самостоятельно и бесплатно

После этого в разделе выборы модулей отметьте галочкой «Форум». Если потребуется поддерживать обратную связь, страница «о сайте», добавление новых страниц, тогда отметку возле пункта «Редактор страниц» снимать не стоит. Разместите галочку на против раздела «Почтовые формы» и кликните клавишу «Продолжить».

Внимание! При оставлении на веб проекте «Редактор станиц» у вашего форума будут такие страницы как: О сайте, Главная и страница для обратной связи, если конечно запущен модуль почтовых форм.

Чтобы убрать главную страницу посетите настройки. Дальше перейдите в «Системные» и выберите «Главная страница». После этого под надписью при переходе на главную страницу открывать, кликните на форум. Затем просто сохраните.

Как создать форум самостоятельно и бесплатно

Возможно вы желаете, чтобы при посещении сайта сразу открывался форум, а быть может вы запустили только пункт «Форум». Тогда просто удалите раздел «Форум» из меню проекта. Чтобы это сделать вам достаточно пройти в дизайн, а затем в конструктор меню. После этого нужно выделить пункт «Форум». Дальше нажать изменить и затем удалить, и нажать сохранить.

Как создать форум самостоятельно и бесплатно

Делаем первые шаги

На только что созданном вами форуме будут находиться примеры разделов и собственно вы будете видеть тестовый проект с небольшим описанием:

Как создать форум самостоятельно и бесплатно

Скелет форума:

  • Разделы, посвященные определенным тематикам
  • В эти разделы включены разные форумы, в которых есть возможность еще и создать подфорумы
  • В самих форумах могут быть созданы темы для разговоров

На скриншоте отображена примерная структура форума:

Как создать форум самостоятельно и бесплатно

Меняем наименование форумов и категорий

Для этого переходим в админ панель, затем выбираем модули, после этого идем в управление форумами, а затем нужно выделить текстовый отдел и кликнуть изменить.

Как создать форум самостоятельно и бесплатно

Перед вами откроется окошко, в котором необходимо ввести наименование тематической категории и нажать на кнопку «Применить».

Как создать форум самостоятельно и бесплатно

Перейдя в список разделов кликните на наименование нужной категории. Это нужно для по падения на форум. Теперь выделите форум и внизу кликните на клавишу «Изменить».

Как создать форум самостоятельно и бесплатно

Перед вами откроется окошко, в котором следует написать наименование форума и сделать его микро обзор. После того как вы это выполните нажмите кнопку «Применить».

Как создать форум самостоятельно и бесплатно

Теперь вы увидите список форумов, необходимо нажать на имя вашего форума. После выполненного действия вы будете перенаправлены на не заполненную страницу где будут находится разные под форумы.

Если вы желаете сделать под форум, просто кликните «Создать».

Как создать форум самостоятельно и бесплатно

В появившемся окошке пропишите имя и характеристики под форума, а после этого все сохраните!

Создаем дополнительные категории и форумы

Первым делом пройдите в админ панель, затем выберите модули. После этого выберите форум, управление форумами. Как только это сделаете надавите добавить. Перед вами откроется окошко, в котором требуется ввести название новой категории. Теперь кликните на клавишу «Применить».

Как создать форум самостоятельно и бесплатно

Только что созданная категория тут же отобразится в списке!

Для помещения нового форума в только что созданную категорию просто кликните на наименование раздела в списке. И на странице форумов надавите кнопку «Добавить». После этого выйдет страница где вам нужно прописать название вашего форума и описание. Как только это сделаете нажимайте на кнопку «Применить».

Необходимо понимать, что категории и форумы уничтожаются, добавляются и редактируются в панели управления проектом. А вот ликвидация, разработка и корректирование тем форума выполняется на веб ресурсе.

После того как вы создали свой форум не нужно сразу кидаться и делать кучу разных категорий и форумов. Первым делом просто создайте пару разделов и заполните их информацией.

Как только число посетителей увеличится можно заняться расширением проекта. В первые дни после создания подобного сайта не стоит загромождать его под форумами. Ваш проект должен казаться полностью раскрывающим тему, сжатым и гармонировать со своей основной темой.

Внешний вид проекта

Прежде всего форум должен нравится людям, оставляющим комментарии. Пользователю должно быть приятно находиться на вашем форуме. Не используйте цветовые сочетания раздражающие глаза.

Домен

Для того чтобы избежать сложностей с поисковиками, партнерками и соц сетями вашему форуму необходимо доменное имя. Вы должны понимать, что оно должно очень легко запоминаться, а также хорошо отражать тематику форума.

Доменное имя необходимо покупать сразу, и поисковики должны провести первичную индексацию именно по нему. Подобная процедура позволит избежать переиндексации.

Бесплатные движки форумов

Этот способ является оптимальным при ограниченном бюджете. Бесплатные движки позволяют получить фактически готовый проект. Владельцу такого форума остается только лишь настроить его и установить на хостинг. Следует заметить, что в случае отсутствия нужного функционала, придется заняться поиском дополнительных расширений и плагинов.

Далее рассмотрим самые популярные бесплатные движки.

phpBB

Этот движок создан на PHP и MySQL. phpBB поддерживает PHP7 и отличается адаптивным дизайном. Среди других возможностей этого движка стоит отметить:

  • наличие настроек пользователя;
  • наличие системы личных сообщений;
  • возможность настройки пользовательской регистрации;
  • наличие вложений, опции быстрого ответа, эмодзи, смайликов, цитирования и т.д.

Отдельно можно отметить удобную панель администратора и возможность использования дополнительных плагинов.

Discource

Этот бесплатный движок разработан на языке Ruby. Для его создания использовался фреймворк Ruby in Rails. В качестве базы данных используется система PostgreSQL. Основными преимуществами этого форумного движка можно назвать его адаптированность под мобильные устройства, наличие динамических уведомлений, автоматическое расширение ссылок и наличие функции антиспама. Discource также предоставляет своим пользователям:

  • возможность входа на форум через соцсети;
  • динамические уведомления;
  • смайлики, эмодзи и значки;
  • удобное администрирование;
  • большое количество официальных плагинов.

Также нужно сказать о наличии 2-факторной аутентификации и возможности обновления в один клик.

Вывод

Резюмируя, стоит сказать, что сегодня существует достаточно большое количество способов создания форума. Причем эти способы рассчитаны как на профессиональных программистов, так и на людей без особых знаний в веб-программировании. При наличии бюджета будущий владелец может вообще не тратить время и силы на самостоятельное создание проекта и приобрести платный движок. Но в таком случае стоит учитывать, что плагины для расширения функционала платных движков тоже стоят денег.

В завершение нужно напомнить, что наиболее простым вариантом является создание форума посредством бесплатного онлайн-конструктора.

Теги:

Как создать форум

Классический форум — это место для общения людей, объединённых общими интересами и идеями.  На форуме можно обмениваться информацией, примерами своих работ, фотографиями, файлами. Форум способен объединить людей по увлечениям: фанатов, геймеров, любителей животных, искусства, кино, автолюбителей и т.д. Форумы бывают городскими, районными или могут быть созданы для общения жителей определенного дома.

  1. Идея
  2. Создаем форум
  3. Первые шаги
  4. Дизайн
  5. Домен

Идея

Тематика будущего форума должна быть хорошо продумана, так как от этого зависят будущая структура, внешний вид, название, домен и прочее. Выбирайте близкую лично вам тематику, то, в чем вы разбираетесь лучше всего. Подумайте над названием форума, оно должно соответствовать выбранной тематике и в то же время быть интересным и привлекательным для пользователей.

Создаем форум

Прочитайте о том, как зарегистрироваться и создать сайт. На странице конфигурации сайта (http://www.ucoz.ru/help/start/kak-sozdat-svoj-sajt-v-ucoz#step3) пропишите название. Название сайта должно полностью соответствовать его тематике. Выберите любой подходящий дизайн и нажмите “Продолжить”.

На странице выбора модулей поставьте галочку на модуле “Форум”. Если вам нужна страница обратной связи для связи с администрацией сайта, страница “О сайте” или вы предполагаете создание других вспомогательных страниц, то галочку с пункта “Редактор страниц” не снимайте. Поставьте галочку на пункте “Почтовые формы” и нажмите “Продолжить”.

Примечание! Если вы оставите на сайте “Редактор страниц”, то, кроме форума, на нем будут “Главная страница”, страница “О сайте” и “Страница обратной связи” (если активирован модуль “Почтовые формы”). Если вам не нужна главная страница и вы хотите, чтобы при переходе на сайт сразу открывался форум, в панели управления сайтом перейдите в Настройки — Общие настройки — При переходе на Главную страницу открывать — Выберите “Форум” и сохраните:

Если вы хотите, чтобы при переходе на сайт сразу открывался форум, или активировали только модуль “Форум”, вам нужно будет удалить пункт “Форум” из меню сайта. Для удаления в панели управления перейдите на вкладку Дизайн — Конструктор меню — Выделите пункт “Форум” — Удалить пункт — Сохранить:

Первые шаги

На новом форуме по умолчанию создан тестовый раздел и тестовый форум с описанием: 

Структура форума:

  • Тематические разделы
  • В разделы входят форумы (в форумах можно создавать подфорумы)
  • В форумах создаются темы для обсуждения

Наглядно структура изображена на следующем скриншоте: 

Изменение названий разделов и форумов

Панель управления — Модули — Форум — Управление форумами — Выберите тестовый раздел и нажмите по иконке карандашик “Изменить”: 

В открывшемся окне введите название тематического раздела и нажмите “Изменить”: 

Далее в списке вложенности вашего раздела выберите нужный форум и нажмите “Изменить”: 

В открывшемся окне введите название форума и описание, нажмите “Изменить”: 

Далее если вам нужно добавить в ваш форум подфорумы, напротив форума в который нужно его добавить нажмите кнопку «Добавить подфорум»:

 

В открывшейся новой странице введите название и описание подфорума и сохраните.

Добавление новых разделов и форумов;

Панель управления — Модули — Форум — Управление форумами — Добавить раздел / Добавить форум — В открывшейся новой странице введите название нового раздела / форума и нажмите “Добавить”: 

Созданный раздел появится в списке.

Чтобы добавить новый форум в созданном разделе, отметьте в списке раздел и нажмите по кнопке “Добавить форум”, в открывшемся окне введите название форума, далее в пункте «Родительский раздел/форум», выберите корневой раздел в который добавляем форум. В завершение в поле «Описание форума» пропишите нужное описание и нажмите по кнопке “Добавить”. Подробнее об управлении разделами и форумами.

Важно знать, что разделы и форумы добавляются/изменяются/удаляются в панели управления сайтом, а создание/изменение/удаление тем форума производится на сайте. Подробно о создании тем и опросов.

 
На начальном этапе после создания форума не надо создавать огромное количество разделов и форумов, особенно если у вас пока нет информации для заполнения. Лучше создать несколько разделов и форумов и максимально наполнить их темами. По мере увеличения количества пользователей и их потребностей, форум всегда можно расширить. На начальном этапе усложнять структуру форума подфорумами тоже не стоит. Форум должен быть компактен, лаконичен и максимально информативен. 

Дизайн

Дизайн форума должен быть удобен для чтения и добавления сообщений. Если вы хотите, чтобы пользователи как можно дольше и чаще читали темы и сообщения, избегайте пёстрых и режущих глаза контрастов, тяжелых ярких элементов дизайна. Прочитайте о том, как и где выбрать шаблон.

Домен

Чтобы не было проблем с продвижением в поисковых системах, во взаимодействии с социальными сетями и партнерскими программами, сайту нужен домен. Домен должен быть легко запоминающимся. Имя домена должно тесно переплетаться с тематикой форума.

Домен должен приобретаться сразу, и первичная индексация сайта в поисковых системах должна происходить по прикрепленному домену. Это позволит вам избежать переиндексации форума при последующем прикреплении домена. Прочитайте о том, как купить и прикрепить домен к сайту.

Понравилась статья? Поделить с друзьями:
  • Как написать свой протокол передачи данных
  • Как написать свой учебник английского
  • Как написать свой прокси сервер
  • Как написать свой тренинг
  • Как написать свой проводник