помогите.
$handle = fopen("ip.txt", "r");
while (!feof($handle)) {
$buffer = fgets($handle);
if ($buffer == $ip) $i=$i+1;
}
echo $i;
fclose($handle);
Спустя 8 минут, 10 секунд (28.04.2011 - 13:25) waldicom написал(а):
А что не работает-то?
Спустя 38 секунд (28.04.2011 - 13:25) feniks_iopok написал(а):
просто ничего не выводится. ни ошибок, ни чисел
Спустя 1 минута, 1 секунда (28.04.2011 - 13:26) feniks_iopok написал(а):
для проверки, добавил в файл 10 айпи адресов, из них 5 - это мой айпи. но все равно ничего не выводится

Спустя 5 минут, 10 секунд (28.04.2011 - 13:31) waldicom написал(а):
Строки хотя бы выводятся?
Что насчет вот этого кода:
Что насчет вот этого кода:
$ips = file("ip.txt");
$i = 0;
foreach($ips as $oneIp){
if($oneIp == $ip){
$i++;
}
}
echo $i;
Спустя 5 минут (28.04.2011 - 13:36) feniks_iopok написал(а):
ваш код просто выводит количество строк. "if($oneIp = $ip){" мне кажется там двойное равно нужно. если поставить двойное то выводит 0
хотя доолжно выводить 5.

Спустя 1 минута, 50 секунд (28.04.2011 - 13:38) waldicom написал(а):
Исправил.
Тогда просто выводите строки (echo $oneIp) и проверяйте, сходятся ли они со значением переменной $ip
Тогда просто выводите строки (echo $oneIp) и проверяйте, сходятся ли они со значением переменной $ip
Спустя 22 минуты, 14 секунд (28.04.2011 - 14:00) feniks_iopok написал(а):
ничего не работает 
вообще мне нужно сделать так:
пользователь зашел на страницу, его айпи занесся в переменную. затем проверяется сколько раз его айпи повторяется в документе (ip.txt). если меньше 5 то его айпи заносится в этот документ, и он пропускается к дальнейшим действиям на сайте. в обратном случае выдается сообщение что вы привысили лимит. знаю как сделать все это, кроме этого счетчика. как узнать сколько раз айпи пользователя повторяется в документе? (в одной строке один айпи)
Спасибо!

вообще мне нужно сделать так:
пользователь зашел на страницу, его айпи занесся в переменную. затем проверяется сколько раз его айпи повторяется в документе (ip.txt). если меньше 5 то его айпи заносится в этот документ, и он пропускается к дальнейшим действиям на сайте. в обратном случае выдается сообщение что вы привысили лимит. знаю как сделать все это, кроме этого счетчика. как узнать сколько раз айпи пользователя повторяется в документе? (в одной строке один айпи)
Спасибо!
Спустя 2 минуты, 2 секунды (28.04.2011 - 14:02) waldicom написал(а):
что выводит этот код?
$ips = file("ip.txt");
$i = 0;
echo 'my ip = ' . $ip . '<br/>';
foreach($ips as $oneIp){
echo $oneIp . '<br/>';
}
Спустя 3 минуты, 32 секунды (28.04.2011 - 14:06) feniks_iopok написал(а):
этот код выводит все записи в документе с новой строки.
а ваш первый код работает так: он выдает совпадение только в последней строке. не пойму почему так. тоесть если в последней строке документа было совпадение - он выдает 1, если не было то 0
а ваш первый код работает так: он выдает совпадение только в последней строке. не пойму почему так. тоесть если в последней строке документа было совпадение - он выдает 1, если не было то 0
Спустя 2 минуты, 6 секунд (28.04.2011 - 14:08) waldicom написал(а):
просто дайте вывод сюда
Спустя 1 минута, 18 секунд (28.04.2011 - 14:09) feniks_iopok написал(а):
my ip =
123123
1231244
1423412
12523
3453245
127.0.0.1
23
453452354
127.0.0.1
234523
127.0.0.1
123123
1231244
1423412
12523
3453245
127.0.0.1
23
453452354
127.0.0.1
234523
127.0.0.1
Спустя 30 секунд (28.04.2011 - 14:10) waldicom написал(а):
ну? переменная, с которой вы сравниваете - пустая.
Спустя 2 минуты, 23 секунды (28.04.2011 - 14:12) feniks_iopok написал(а):
ааа так я стер весь свой код и вставил ваш.
сейчас вставлю код который айпи заносит в переменную
сейчас вставлю код который айпи заносит в переменную
Спустя 47 секунд (28.04.2011 - 14:13) feniks_iopok написал(а):
my ip = 127.0.0.1
123123
1231244
1423412
12523
3453245
127.0.0.1
23
453452354
127.0.0.1
234523
127.0.0.1
123123
1231244
1423412
12523
3453245
127.0.0.1
23
453452354
127.0.0.1
234523
127.0.0.1
Спустя 11 минут, 9 секунд (28.04.2011 - 14:24) waldicom написал(а):
ну и?
Теперь собрать все вместе
Теперь собрать все вместе
Спустя 7 минут, 13 секунд (28.04.2011 - 14:31) feniks_iopok написал(а):
function GetRealIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ip = getRealIp();
$ips = file("ip.txt");
$i = 0;
foreach($ips as $oneIp){
if($oneIp == $ip){
$i++;
}
}
echo $i;
этот код выводит либо 1 либо 0, в зависимости от того , что стоит в последней строке документа ip.txt. если мой айпи то 1 , если нет - 0. а повторения в середине документа он не считает :(
Спустя 17 минут, 33 секунды (28.04.2011 - 14:49) feniks_iopok написал(а):
печаль печаль

Спустя 2 часа, 5 минут, 2 секунды (28.04.2011 - 16:54) Invis1ble написал(а):
$count_values = array_count_values(file('ip.txt'));
$amount = $count_values['XXX.XXX.XXX.XXX'];
Спустя 39 минут, 45 секунд (28.04.2011 - 17:34) feniks_iopok написал(а):
и что делает этот скрипт ? О_о
Спустя 1 час, 38 минут, 37 секунд (28.04.2011 - 19:12) Invis1ble написал(а):
feniks_iopok
считает количество записей в файле для ip = XXX.XXX.XXX.XXX, то есть тоже самое, только без всяких циклов
считает количество записей в файле для ip = XXX.XXX.XXX.XXX, то есть тоже самое, только без всяких циклов
Спустя 56 минут, 57 секунд (28.04.2011 - 20:09) Lex_R написал(а):
feniks_iopok
Перед сравнением строки из файла, нужно ее тримнуть, чтобы удалить перенос на конце строки.
Перед сравнением строки из файла, нужно ее тримнуть, чтобы удалить перенос на конце строки.
Спустя 9 часов, 39 минут, 2 секунды (29.04.2011 - 05:48) feniks_iopok написал(а):
Invis1ble
или вы меня не поняли или я вас
Lex_R
что это значит и как сделать?
и еще один вопросец.
можно ли из массива удалить элементы которые повторяются более N раз, допустим более 5.
знаю как удалить просто повторяющиеся (array_unique), но мне нужно более какого-то числа.
или вы меня не поняли или я вас

Lex_R
что это значит и как сделать?
и еще один вопросец.
можно ли из массива удалить элементы которые повторяются более N раз, допустим более 5.
знаю как удалить просто повторяющиеся (array_unique), но мне нужно более какого-то числа.
Спустя 3 часа, 20 минут, 42 секунды (29.04.2011 - 09:09) feniks_iopok написал(а):
все! заказал на фрилансе этот скрипт , написали такой, все работает)
$ip = $_SERVER['REMOTE_ADDR'];
$f = file_get_contents("ip.txt");
preg_match_all('/'.$ip.'/', $f, $match);
echo count($match[0]);
Спустя 7 минут, 4 секунды (29.04.2011 - 09:16) waldicom написал(а):
Цитата (feniks_iopok @ 29.04.2011 - 07:09) |
все! заказал на фрилансе этот скрипт , написали такой, все работает) |
После того, как вам положили в рот, разжевали, и даже съели за вас - это было не самое удачное решение.
Спустя 5 минут, 23 секунды (29.04.2011 - 09:22) feniks_iopok написал(а):
ваши скрипты не работали...
_____________
есть сайт, 3-4к уников в сутки. зарабатываю 100 рублей в день, почему так мало?