|
|
|
| Скажите, как реализовать подобное
Есть список имен длинной ~100 строк
Как мне сделать условие подобное этому:
<?
if(ereg(вася,$spisok))
{
echo 'в списке присутствует';
}
else
{
echo 'в списке нету';
}
?>
|
| |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 01:52)
| | вася - это шаблон регулярного выражения? Вы ничего не напутали?
Такого типа, как список, в php нет.
Следовательно, Вы имеете в виду либо переменную, содержащую текст с этими именами, либо массив, элементы которого содержат эти имена.
Что именно? | |
|
|
|
|
|
|
|
для: Trianon
(01.02.2009 в 01:57)
| | Простите, да немного напутала... ночь уже ((
Попробую на IP объяснить.
Нужно создать список (или массив) с IP адресами
а делее сравнивать...
Вот что я натворила, но оно не работает =(
<?
$ban_ip = array("
89.188.122.18
", "
89.188.122.19
");
if(ereg('$ban_ip',$_SERVER['REMOTE_ADDR']))
{
echo 'Вы в бане';
}
else
{
echo 'Вы не в бане';
}
?>
|
Дело в том, что список будет длинным, не буду же я каждый раз сравнивать через () and () | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:03)
| |
<?php
$ban_ip = array("89.188.122.18", "89.188.122.19");
if( in_array($_SERVER['REMOTE_ADDR'], $ban_ip) )
{
echo 'Banned';
}
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(01.02.2009 в 02:06)
| | BinLaden, так не работает =( | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:09)
| | Вероятно там есть переводы строк/пробелы. Массив как формируется? | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:09)
| | А нет... работает, только зависимо к переносам в array
Пойдет, большое спасибо! | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:03)
| |
<?
$ban_ip = array(
"89.188.122.18",
"89.188.122.19",
"89.188.122.20");
if(array_search($_SERVER['REMOTE_ADDR'], $ban_ip) !== false)
{
echo 'Вы в бане';
}
else
{
echo 'Вы не в бане';
}
?>
|
$ban_ip можно также сформировать из текста.
$ip_list = "
89.188.122.18
89.188.122.19
89.188.122.20
";
$ban_ip = array_map('trim', explode("\n", $ip_list));
|
| |
|
|
|
|
|
|
|
для: Trianon
(01.02.2009 в 02:09)
| | Trianon, спасибо! Ваш вариант больше подходит... А что из этих вариантов будет меньше сервер нагружать? | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:12)
| | А может можно вносить сразу по маске?
типа так:
89.188.122.0 - 89.188.122.255
122.188.122.0 - 122.188.122.255 | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:16)
| | а может сразу всех забанить? Чего мелочиться-то? | |
|
|
|
|
|
|
|
для: Trianon
(01.02.2009 в 02:17)
| | Не =)) всех нинадо... | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:12)
| | Способ с минимальной нагрузкой будет таким:
<?
$ban_ip = array(
"89.188.122.18" =>1,
"89.188.122.19" =>1,
"89.188.122.20" =>1);
if(isset($ban_ip[$_SERVER['REMOTE_ADDR']]))
{
echo 'Вы в бане';
}
else
{
echo 'Вы не в бане';
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(01.02.2009 в 02:16)
| | Так можно по маске или так нельзя? | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:21)
| | так а откуда Вы маску-то возьмете?
Маска - это свойство сетевого интерфейса клиентской машины.
Серверу она неизвестна. | |
|
|
|
|
|
|
|
для: Trianon
(01.02.2009 в 02:22)
| | Ну чтобы сразу всего провайдера забанить
webnames.ru например показывает по IP адресу диапазон | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:24)
| | провайдер-то чем провинился? | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:24)
| | На обращение к webnames , боюсь, уйдет столько времени, что скрипту будет некогда работать. | |
|
|
|
|
|
|
|
для: Trianon
(01.02.2009 в 02:27)
| | Я сама буду ручками заносить диапазон | |
|
|
|
|
|
|
|
для: Елена Смирнова
(01.02.2009 в 02:29)
| | IP-адреса где -- в таблице БД или в простом файле? Если в простом файле, то Вы будете вручную его править или Вам важнее быстродействие (тогда придётся редактировать его через скрипт)? | |
|
|
|