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

Ну так все что можно и что нельзя нужно заключать в уже готовые условия.
Код:
f(@mysql_num_rows($result) > 0 )
{
   echo"Вы забанены!";
}
else {
   echo"Вы не забанены!";
   Здесь размещается код или что угодно, что разрешено не забаненным
}
OREON, если вам это нужно для Jboard, то там, где подключается форма добавления новостей в файле index.php и рисуйте что-то типа этого:
Код:
f(@mysql_num_rows($result) > 0 )
{
   echo"Вы забанены!";
}
else {
   require_once 'inc/addnews.inc.php';
}
 
Ну так все что можно и что нельзя нужно заключать в уже готовые условия.
Код:
f(@mysql_num_rows($result) > 0 )
{
  echo"Вы забанены!";
}
else {
  echo"Вы не забанены!";
  Здесь размещается код или что угодно, что разрешено не забаненным
}
OREON, если вам это нужно для Jboard, то там, где подключается форма добавления новостей в файле index.php и рисуйте что-то типа этого:
Код:
f(@mysql_num_rows($result) > 0 )
{
  echo"Вы забанены!";
}
else {
  require_once 'inc/addnews.inc.php';
}

Если делать так как вы описали то оно даже не определяет мой айпи и не пишет что я забанен,постом выше если делать,то оно видет что я забанен но новость которую я добавляю всеравно пропускает,и к томуже при заходе на страницу новостей мне сразу пишет что мой айпи забанен (так пишет если я делаю как написано постом выше),а как вы понимаете должно писать только тогда когда я добавляю в форму новость и пытаюсь отправить ее
 
Попробуйте так
PHP:
<?php
//Получаем IP
if(getenv('HTTP_X_FORWARDED_FOR'))
{$ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif(getenv('REMOTE_ADDR'))
{$ip = getenv('REMOTE_ADDR');}
 
//Соединяемся с БД
$host = "mysql";
$user = "";
$pass = "";
$db = "";
$connect = @mysql_connect("$host", "$user","$pass");
@mysql_select_db("$db", $connect);
 
//Сравниваем с ip-шниками в БД
$query = "SELECT * FROM `ipban` WHERE `ip` = '$ip'";
$result = @mysql_query($query);
if(@mysql_num_rows($result) > 0 ) {
        exit ("Вы забанены!");
}else{
        exit("Вы не забанены!");
}
?>
 
Как составить теперь запрос что бы он работал через форму для удаления айпи с базы? или же чтобы выводило айпи забаненых и возле каждого айпи был крестик чтоб удалить его из базы,вот скрипт отвечающий за добавление айпи в базу
 
примерно так делал на скорую руку)
PHP:
<?php
//Получаем IP
if(getenv('HTTP_X_FORWARDED_FOR'))
{$ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif(getenv('REMOTE_ADDR'))
{$ip = getenv('REMOTE_ADDR');}
 
//Соединяемся с БД
$host = "kuiv.mysql.ukraine.com.ua";
$user = "kuiv_jboard";
$pass = "cfvfhcrbq190176";
$db = "kuiv_jboard";
$connect = @mysql_connect("$host", "$user","$pass");
@mysql_select_db("$db", $connect);
if($_POST['del_ip']){
$del_ip=$_POST['del_ip'];
$query = "DELETE FROM `ipban` WHERE `id` = $del_ip";
$result = @mysql_query($query);
}
//Выводим форму
if($_POST['ips'] == NULL)
{echo"
<form action method='post'>
<input type='name' name='ips'>
<input type='submit' value='Забанить'>
</form>
<form action method='post'>
<input type='name' name='del_ip'>
<input type='submit' value='Удалить'>
</form>";
 
}
else{
$ips = htmlspecialchars($_POST['ips']);
//Делаем запрос на добавлние IP в блэк
$query = "INSERT INTO `ipban`  VALUES(NULL, '$ips')";
$result = @mysql_query($query);
if(!$result) {echo"Ошибка!";}
else{echo"IP $ips забанен!";}
}
?>
 
Код нужно не только копировать но и смотреть поправил! Появились теги не понятно откуда. Смотри выше
Теперь вот две появилось
Notice: Undefined index: del_ip in /home/----/-----/www/ban/ban.php on line 15

Notice: Undefined index: ips in /home/------/----/www/ban/ban.php on line 21
так же когда пытаюсь удалить айпи с бана пишет ошибку
Notice: Undefined index: ips in /home/----/-----/www/ban/ban.php on line 21
и айпи с базы неудаляет, С этими что делать?
 
Немного другой вариант с решением для первых двух undefined index: (я предполагаю, что структура таблицы а-ля (id int not null auto_increment, ip varchar(15) not null))
PHP:
<?php
//Получаем IP
if(getenv('HTTP_X_FORWARDED_FOR'))
{$ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif(getenv('REMOTE_ADDR'))
{$ip = getenv('REMOTE_ADDR');}
//Соединяемся с БД
$host = "kuiv.mysql.ukraine.com.ua";
$user = "kuiv_jboard";
$pass = "cfvfhcrbq190176";
$db = "kuiv_jboard";
$connect = @mysql_connect("$host", "$user", "$pass");
@mysql_select_db("$db", $connect);
if (isset( $_POST['del_ip'] )) $del_ip =  $_POST['del_ip']; else $del_ip = false;
if (isset( $_POST['ips']  )) $ips =  $_POST['ips'] ; else $ips = false;
if($del_ip != false){
$query = "DELETE FROM `ipban` WHERE `ip` = '$del_ip'";
//echo $query;
$result = @mysql_query($query);
}
//Выводим форму
if($ips == false)
{echo"
<form action='ban.php' method='post'>
<input type='name' name='ips'>
<input type='submit' value='Забанить'>
</form>
<form action ='ban.php'  method='post'>
<input type='name' name='del_ip'>
<input type='submit' value='Удалить'>
</form>";
$query = "SELECT * from ipban";
$result = @mysql_query($query);
echo "<form action ='ban.php' method='post'> <table>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr><td>".$row['ip']."</td><td><input type=hidden name='del_ip' value='".$row['ip']."'><input type=submit value='unban'></td></tr>"; }
echo "</table></form>";
}
else{
$ips = htmlspecialchars($ips);
//Делаем запрос на добавлние IP в блэк
$query = "INSERT INTO `ipban` (ip) VALUES('$ips')";
$result = @mysql_query($query);
if(!$result) {echo"Ошибка!";}
else{echo"IP $ips забанен!";}
}
?>
Проверить сейчас не на чем, но в целом код должен быть рабочий.
 
Назад
Сверху