Бан по IP испульзуя PHP + MySQL

OREON

Гуру форума
Регистрация
18 Янв 2009
Сообщения
465
Реакции
80
Народ помогите ,не могу понять как зделать чтоб когда айпи забаненого скрипт находит в базе ,не пускал например добавлять на сайт статьи?Вот напрмер есть скрипт ban.php
через него я добавляю айпи в базу,а через вот этот делаю проверку в базе на бан chek.php

Дальше проверку подключаю в главную страницу иклюдом
Код:
<? include("ban/chek.php"); ?>
Так вот когда я баню на сайте свой же айпи,то мне пишет внизу страници что я забанен но в тоже время я могу писать что угодно на сайте и так далее.Подскажите что куда нужно еще дописать чтобы юзер который забанен не мог писать и добавлять как коментарии так и новости?
Ногами прошу не пинать,я не профессионал и не програмист.
 
ну так банопроверка должна проходить до начала обработки всего и вся, если это index.php то такая проверка должна быть вначале, иначе она просто может не вызываться, если файл постинга новостей вообще отдельным файлом существует.
а вообще нужно смотреть, что вызывается с клиента, тоесть нужно чётко отследить цепочку клиент->сервер->испольняемый файл. если исполняемый файл только один и только через него всё проходит - тогда странно. но думаю, что вполне вероятно вызывается что-то другое.
 
Ногами прошу не пинать,я не профессионал и не програмист.
Я тоже системный администратор :)
Но, по-моему, банить - задача не для php. Я бы включал забаненные ip в таблицу ipfw, или что у вас там!? А забаненные куки - в конфиг nginx.
Минимум программирования. Максимальная эффективность.
 
Я тоже системный администратор :)
Но, по-моему, банить - задача не для php. Я бы включал забаненные ip в таблицу ipfw, или что у вас там!? А забаненные куки - в конфиг nginx.
Минимум программирования. Максимальная эффективность.
Вы не поняли мне нужно сделать для сайта а не для серверной стороны,есть сайт по добавлению на него новостей -вот я и хочу реализовать на нем ,чтобы если юзер забанен на сайте он не мог отправлять на сайте через форму новостей,новость,а вот как зделать чтобы еще форма отправки проверяла (не забанен ли айпи этого юзера)если да то недавала постить статью на сайт
 
PHP:
if(@mysql_num_rows($result) > 0 )
 {die("Вы забанены!");}
 else{echo"Вы не забанены!";}

ну и собственно почему в низу страницы ??

проверку надо делать ещё до вывода контента пользователю

те
PHP:
<? include("ban/chek.php"); ?>

должно быть в самом начале index.php
 
PHP:
if(@mysql_num_rows($result) > 0 )
{die("Вы забанены!");}
else{echo"Вы не забанены!";}

ну и собственно почему в низу страницы ??

проверку надо делать ещё до вывода контента пользователю

те
PHP:
<? include("ban/chek.php"); ?>

должно быть в самом начале index.php
Всеравно если я даже вставляю в начало файла

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

при чём не так

PHP:
<? include("ban/chek.php"); ?>

<? //далее остальной весь код

 ?>

а вот так

PHP:
<? 
include("ban/chek.php"); 
//далее остальной весь код

 ?>
 
тебе нужно в тот файл php в котором получаются переменные $_POST добавить эту строку

при чём не так

PHP:
<? include("ban/chek.php"); ?>
 
<? //далее остальной весь код
 
?>

а вот так

PHP:
<?
include("ban/chek.php");
//далее остальной весь код
 
?>
Всеравно несмотря на то что я и вставляю туда код этого файла,новость всеравно можно добавлять даже если оно мне пишет
Ваш айпи адресс забанен!Новость добавлена. После проверки модератором она поступит в общую ленту
,я хоть и не специалист в PHP но уверен что код мой выше не полностью правильный или же в нем нехватает еще чегото[/quote]вот файл отвечающий за добавление новости и код который я разместил для проверки айпи
 
блин ну я же сказал как надо

инклуд должен быть в том же <? ?> что и получение $_POST

а у тебя их множество

вставь инклюд перед строчкой
PHP:
if(@$_POST['short'] && @$_POST['full'] && @$_POST['title']){
 
Назад
Сверху