Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

PHP + MySQL бан ip

Обсуждение темы PHP + MySQL бан ip в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Приветствую. Творческое описание: Задача крайне проста, есть админка, хозяин заходит в админку заполняет несколько строчек и ip (злоумышленника) после чего когда злой батька ...


Закрытая тема
 
Опции темы
Старый 09.06.2010, 00:31   #1
Приветствую.

Творческое описание:

Задача крайне проста, есть админка, хозяин заходит в админку заполняет несколько строчек и ip (злоумышленника) после чего когда злой батька заходит на сайт он видит надпись что его послали на все 4 стороны
В Админке все готово и все работает а на сайте немного не так как планировалось.

Техническое описание:
SQL
CREATE TABLE IF NOT EXISTS `ipbann` (
`id_ipbann` int(255) NOT NULL AUTO_INCREMENT,
`ip_ipbann` varchar(50) NOT NULL,
`date_time_ipbann` datetime NOT NULL,
`stat_ipbann` varchar(9) NOT NULL,
`pr_ipbann` text NOT NULL,
PRIMARY KEY (`id_ipbann`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Есть запросы в БД
===
INSERT INTO `dipt`.`ipbann` (
`id_ipbann` ,
`ip_ipbann` ,
`date_time_ipbann` ,
`stat_ipbann` ,
`pr_ipbann`
)
VALUES (
NULL , '00.000.00.000', '2010-06-08 23:54:42', 'ban', '1'
-

Описание:
id_ipbann - Эта ячейка, получает индивидуальное число строк
ip_ipbann - Эта ячейка, получает айпи адрес злоумышленника который водит админ сайта.
date_time_ipbann - Дата и Время создания записи в БД
stat_ipbann - Статус бана.
pr_ipbann - Текст описания который выводиться при посещения с забаненого ip.
Это что касается данных с таблице БД.

Код php
===
$ip1=$_SERVER['REMOTE_ADDR'];
$sql1 = mysql_query("SELECT ip_ipbann FROM ipbann WHERE ip_ipbann='".$_SERVER['REMOTE_ADDR']."' ORDER BY LIMIT 1");
$query1 = mysql_query($sql1);
if ($query1 == $ip1) {
echo " <h1>Вы забанены на проекте ААА $resipbann[ip_ipbann]</h1> $resipbann[date_time_ipbann]<br>$resipbann[pr_ipbann]";
exit();
} else {
echo "";
}

$ip1=$_SERVER['REMOTE_ADDR'];
Отвечает за ip вошедшего, то есть глобально находит у посетителя его ip, после чего данный ip получает переменную $ip1.

$sql1 = mysql_query("SELECT ip_ipbann FROM ipbann WHERE ip_ipbann='".$_SERVER['REMOTE_ADDR']."' ORDER BY LIMIT 1");
Данный участок кода делает запрос к базе данных вытаскивая из него нужное поля для последующей проверки, с ip вошедшим.

$query1 = mysql_fetch_array($sql1);
Заносим запрос в массив для того чтобы потом проверить запрос и ip.

if ($query1 == $ip1) {
echo " <h1>Вы забанены на проекте ААА $resipbann[ip_ipbann]</h1> $resipbann[date_time_ipbann]<br>$resipbann[pr_ipbann]";
exit();
}
Проверяем ip посетителя c тем что в базе данных, если ip есть в БД то вытаскиваемым ему информацию что он забанен, в данной части кода то же есть дополнительная информация когда забанен и за что забанен, после прерываем все будущее действия сайта, то есть загрузку сайта.

else {
echo "";
}
Если же ip адрес вошедшего не существует то продолжаем работать с сайтом.

Проблема:
При занесении в БД хоть одного ip весь сайт для всех забанен
Вопрос в чем, проблема и как исправить код?

Всем спасибо.
(Тухлыми помидорами не кидайтесь).
 
Старый 09.06.2010, 00:31
Ссылки
Старый 11.06.2010, 10:32   #2
Во первых:
Цитата:
$sql1 = mysql_query("SELECT ip_ipbann FROM ipbann WHERE ip_ipbann='".$_SERVER['REMOTE_ADDR']."' ORDER BY LIMIT 1");
- не правильный запрос! ORDER BY LIMIT 1 - у вас и так лимит в одну строку - зачем упорядочивать и если уж на то пошло: ORDER BY условие LIMIT 1.
Во вторых:
Цитата:
$query1 = mysql_fetch_array($sql1);
здесь $query1 -будет содержать смешанный массив, а вы его как переменную пытаетесь сравнить:
Цитата:
if ($query1 == $ip1)
используйте лучше mysql_fetch_assoc() и сравнивайте так: if ($query1['ip_ipbann'] == $ip1).

В общем повнимательнее, в использовании выбранных функций.
 
Этот пользователь сказал спасибо moskitos80 за это полезное сообщение:
Tigran (11.06.2010)
Старый 11.06.2010, 17:23   #3
О спасибо!
Очень помогли...
Это именно то что нужно было!
Скоро опубликую весь код может кому-то понадобиться.
 
Старый 11.06.2010, 17:23
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mySQL iDeViL ASP, Perl, PHP и MySQL 8 31.01.2011 21:30
MySQL 74ivan74 Кальянная 0 16.10.2010 14:33
MySQL Razrushitel ASP, Perl, PHP и MySQL 3 18.09.2005 16:18
Mysql под win Lex ASP, Perl, PHP и MySQL 2 03.12.2004 17:27
PHP и Mysql vision HTML, CSS, JavaScript 0 18.07.2003 08:59


Текущее время: 03:47. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Тарифный план «Lite»
Место: 1000 Мб
Трафик: неограниченный
Панель управления
Заказать ТП «Lite»
Тарифный план «Normal»
Место: 2000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Normal»
Тарифный план «Profy»
Место: 7000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Profy»
Тарифный план «Места хватит!»
Место: 25 ГБ
Трафик: неограниченный
Поддержка SSI, ssh
Заказать ТП «Места хватит!»
Дизайнерский форум