Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2012, 20:44   #1
Steh
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 43
По умолчанию Составить простое условие

Работает скрипт. идет цикл for...

Делаем блэк лист для IP, обращающихся к скрипту.

Примерно так:

если айпи не..... выполняем цикл. Можно из файлика запрещенные айпи
брать.

Как правильно составить условие?
Steh вне форума Ответить с цитированием
Старый 07.05.2012, 20:52   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Либо человеческим языком объясните, что вы хотите, либо приведите свой код и укажите, что именно у вас в нем не работает или работает не так, как требуется.
Arigato вне форума Ответить с цитированием
Старый 07.05.2012, 20:54   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Управляющие конструкции
Andkorol вне форума Ответить с цитированием
Старый 08.05.2012, 06:27   #4
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

Код:
$bl = 0;
$ip_c = count($ip);
for($i=0;$i<$ip_c;$i++) if($SERVER['REMOTE_ADDR'] == $ip[$i]) $bl = 1;
if($bl == 1) echo 'in black list'; else echo 'not in black list';
frommars вне форума Ответить с цитированием
Старый 08.05.2012, 07:25   #5
Steh
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 43
По умолчанию

нужно запретить обращение к скрипту или выполнение операции с некоторых IP

Сам скрипт - выдаем 50 строк урл для анализа и вырезаем

PHP код:
<?
$baza
=file("urls.txt");
$bc=count($baza);

for(
$a=0;$a<=$bc;$a++) {
    
$baza[$a]=trim($baza[$a]);
    if (
$baza[$a]!="") {
if (
$a<=50) {
$out1.=$baza[$a]."\n";
}
else {
$new.=$baza[$a]."\n";
}    
}}
$openf=fopen("urls.txt",w);
fwrite($openf,$new);
fclose($openf);

echo 
$out1;
unset(
$new,$baza,$bc,$a,$out1);
?>

Последний раз редактировалось ACE Valery; 08.05.2012 в 11:58.
Steh вне форума Ответить с цитированием
Старый 08.05.2012, 07:26   #6
Steh
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 43
По умолчанию

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

если не эти блэчные айпи. тогда выполняем операцию.


А так автодобавлялки в блэк не надо и счетчиков. Просто сверяем с каких айпи запросы и разрешаем или нет выполнение операции

Последний раз редактировалось Steh; 08.05.2012 в 07:29.
Steh вне форума Ответить с цитированием
Старый 08.05.2012, 17:48   #7
Steh
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 43
По умолчанию

х.з вроде так услвоия "не записывается с "!". попробовал так. все равно получает данные

Код:
<?
if($SERVER['REMOTE_ADDR'] !== "zdes IP")
{
$baza=file("urls.txt");
$bc=count($baza);

for($a=0;$a<=$bc;$a++) {
    $baza[$a]=trim($baza[$a]);
    if ($baza[$a]!="") {
if ($a<=50) {
$out1.=$baza[$a]."\n";
}
else {
$new.=$baza[$a]."\n";
}    
}}
$openf=fopen("urls.txt",w);
fwrite($openf,$new);
fclose($openf);

echo $out1;
unset($new,$baza,$bc,$a,$out1);
}
?>

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

if ($ip !== '000.000.000.000')


Помогите код составить((

Последний раз редактировалось Steh; 08.05.2012 в 17:50.
Steh вне форума Ответить с цитированием
Старый 08.05.2012, 17:59   #8
MLMaster
 
Регистрация: 05.05.2012
Сообщений: 7
По умолчанию

а блэк-лист нужно именно в файле держать? Не удобнее ли в таблице базы данных хранить? Тогда примерно так получится (в случае с MySQL) :

PHP код:
<?
$ip 
$SERVER['REMOTE_ADDR'];
include (
"connect.php")
$query_result mysql_query ('SELECT * FROM blacklist') or die(mysql_error());
while (
$row =  mysql_fetch_array ($query_result))
  {
    if (
$row['ip'] == $ip)
    {
      
$block 1;
      break;
    }
  }
unset (
$row);
mysql_free_result ($query_result);
mysql_close();
if (
$block != 1)
{
  
твой код
}
?>

Последний раз редактировалось MLMaster; 08.05.2012 в 18:02.
MLMaster вне форума Ответить с цитированием
Старый 08.05.2012, 19:23   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
попробовал так. все равно получает данные
if($SERVER['REMOTE_ADDR'] !== "zdes IP")
...
$ip = $SERVER['REMOTE_ADDR'];
Может таки $_SERVER попробуете юзать..?

Поиск ошибок и отладка
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить условие проверки вхождения числа в заданный диапазон (Delphi) Hylim1991 Помощь студентам 1 22.03.2012 08:16
Не получается составить условие artemavd Общие вопросы Delphi 10 19.12.2011 04:58
k-е простое daniil123 Паскаль, Turbo Pascal, PascalABC.NET 0 14.12.2011 23:52
Простое суммирование Trimbl Microsoft Office Excel 2 20.12.2010 08:58
Простое любопытство.... KORT Свободное общение 130 20.06.2009 19:06