[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не могу найти ошибку в простом коде :(
feniks_iopok
в переменной $ip хранится ip пользователя. в файле ip.txt в каждой строке записанно по одному айпи адресу. нужно найти сколько раз повторяется айпи пользователя в файле. вот мой код, он не работает :(
помогите.

$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 - это мой айпи. но все равно ничего не выводится sad.gif

Спустя 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 sad.gif хотя доолжно выводить 5.

Спустя 1 минута, 50 секунд (28.04.2011 - 13:38) waldicom написал(а):
Исправил.
Тогда просто выводите строки (echo $oneIp) и проверяйте, сходятся ли они со значением переменной $ip

Спустя 22 минуты, 14 секунд (28.04.2011 - 14:00) feniks_iopok написал(а):
ничего не работает sad.gif
вообще мне нужно сделать так:
пользователь зашел на страницу, его айпи занесся в переменную. затем проверяется сколько раз его айпи повторяется в документе (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

Спустя 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

Спустя 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

Спустя 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 написал(а):
печаль печаль sad.gif

Спустя 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, то есть тоже самое, только без всяких циклов

Спустя 56 минут, 57 секунд (28.04.2011 - 20:09) Lex_R написал(а):
feniks_iopok
Перед сравнением строки из файла, нужно ее тримнуть, чтобы удалить перенос на конце строки.

Спустя 9 часов, 39 минут, 2 секунды (29.04.2011 - 05:48) feniks_iopok написал(а):
Invis1ble
или вы меня не поняли или я вас sad.gif

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 рублей в день, почему так мало?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.