система бана на сайте

Discussion in 'PHP' started by GAiN, 7 Feb 2014.

  1. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    проще делается это, когда это какой либо движок, то обычно есть такие функции, а когда сайт самописный и собран из разных компонентов - то заполнять каждый раз файл htaccess вручную долго и не удобно
    как огранизовать систему банов на сайте где нет движка ?
     
  2. nejtr0n

    nejtr0n New Member

    Joined:
    23 Dec 2013
    Messages:
    17
    Likes Received:
    3
    Reputations:
    1
    Написать самому систему банов. Запиливаешь в базу АйПи, ники (или еще какие то критерии бана), и перед загрузкой страницы проверять наличие бана в этой базе.
     
  3. sashasib

    sashasib New Member

    Joined:
    12 Feb 2014
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Всё просто.
    Создаётся таблица в MySQL, ну, скажем, `ban_users` (`id` — порядковый номер записи бана (для управления из админки, на всякий случай), `user_id` (ID забаненого пользователя), `ip` (думаю, тут всё ясно), `till` (время в UNIX timestamp до которого забанен пользователь).).

    При входе проверяете:

    1. Если юзер авторизован, смотрите, нет ли ID его логина в данной таблице. Если есть, проверяете время, до какого забанен пользователь (срваниваете с текущим значением time();). Если факт бана очевиден — редиректите на страницу с соответствующим сообщением.

    2. По такому же принципу проверяете и IP.

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

    Но общая суть такая.