[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с $_GET
Skesh
Доброго всем времени суток, в ПХП новичок, прошу сильно не ругать. У меня на форуме завелся спамер, пытаюсь його вычеслить и заблокировать на хосте. Форум левый, функции опрыдиления ИП нету, ковырятся в нем напряжно так как испьзует формат dbf, отказатся от него тоже не могу, так как уже много чего написано. Итак что я делаю, у меня есть адресная строка: forummini/index.php?id=0015877 с помощю $_GET я хочу определить значение переменной id и если оно равно 0015877 (это значение сооствествуищее самой заспамленой рубрике, бот флудить имено в ней) записать ИП в файл, после чего внести его в список блокируемых уже на самом хосте. Вот код:

if ($_GET['id']==0015877) 
{
$ip=$_SERVER['REMOTE_ADDR']; // узнаем ІР адрес
$fp = fopen("ip.txt", "a+");
fwrite($fp, " $ip ");
fclose($fp);
}


Не работает, то воще ничего не записывает, то по 3 значения подряд в левой рубрике. Файл ip.txt существует, права 776. Подскажите плиз где ляп? или возможно существует другое ришение этой проблемы?



Спустя 27 минут, 18 секунд (2.09.2011 - 13:14) linker написал(а):
$_GET['id']=='0015877'

Спустя 7 минут, 51 секунда (2.09.2011 - 13:22) Skesh написал(а):
хммм... работает, но почему то записывает ИП дважды... кто знает почему?

Спустя 4 минуты, 51 секунда (2.09.2011 - 13:27) Invis1ble написал(а):
Skesh
А какая тебе разница, дважды или один раз? Тебе же нужно ip определить, вот и определяй wink.gif

Спустя 18 минут, 22 секунды (2.09.2011 - 13:45) Skesh написал(а):
я на манер немцов приучяюсь к порядку cool.gif вот и хочу во всем разобраться и чтобы все работало так как надо blink.gif

Спустя 51 минута, 38 секунд (2.09.2011 - 14:37) Mirexzpalich написал(а):
либо, 2-ды заходят на сайт, либо 2-ды выполняется этот скрипт, т.е. он в цикле.

Спустя 1 час, 5 минут, 32 секунды (2.09.2011 - 15:42) Skesh написал(а):
F5 щитается? smile.gif все понял спс.

Спустя 34 минуты, 17 секунд (2.09.2011 - 16:17) killer8080 написал(а):
Skesh
в этом коде айпишники пишуться слитно в одну строку, как это потом читать? Нужно хотя бы перевод строки вставить или другой разделитель. И код можно немного сократить, вот так например
if ($_GET['id'] == '0015877') 
file_put_contents("ip.txt", $_SERVER['REMOTE_ADDR']."\r\n", FILE_APPEND);

Хотя, я бы туда ещё добавил время и user agent.

Спустя 1 час, 34 минуты, 35 секунд (2.09.2011 - 17:51) kristall написал(а):
Такое еще бывает, когда сайт хромом смотрят. Он два запроса делает.

Спустя 52 минуты (2.09.2011 - 18:43) twin написал(а):
И оперой. Фавиконку запрашивает.
Кстати, совсем не зря
Цитата
я на манер немцов приучяюсь к порядку  вот и хочу во всем разобраться и чтобы все работало так как надо
Если есть реврайт на одну точку входа - скрипт отрабатывает вдвое больше положенного.

Спустя 10 минут, 56 секунд (2.09.2011 - 18:54) Invis1ble написал(а):
любая картинка, js-скрипт, css-файл и т.п. тоже get-запросами тянутся

Спустя 13 минут, 12 секунд (2.09.2011 - 19:07) killer8080 написал(а):
Цитата (Invis1ble @ 2.09.2011 - 18:54)
любая картинка, js-скрипт, css-файл и т.п. тоже get-запросами тянутся

а причём тут статика? Ну, конечно, за исключением случаев, если файла нет и 404 генериться скриптом.
Цитата (twin @ 2.09.2011 - 18:43)
Если есть реврайт на одну точку входа - скрипт отрабатывает вдвое больше положенного.

почему?

Спустя 1 час, 21 минута, 31 секунда (2.09.2011 - 20:29) twin написал(а):
Цитата (Invis1ble @ 2.09.2011 - 15:54)
любая картинка, js-скрипт, css-файл и т.п. тоже get-запросами тянутся

Нет, не так. Запросы тянутся, да. Но если есть файл со скриптами и стилями - нет вопросов. А если нет, то плохо. Но это ты сам регулируешь. Поставишь ссыль на скрипт - будет запрос. Нет - не будет.

А есть ссылка на фавиконку или нет, запрос все равно идет. И если фавиконки нет, то реврайт отправляет запрос на индекс (одна же точка входа). И индекс отрабатывает и отвечает два раза. А браузер не реагирует - не фавиконка же.

Снаружи ничего не видно, но скрипты работают вдвое больше положенного.

Спустя 7 часов, 31 минута, 33 секунды (3.09.2011 - 04:01) Invis1ble написал(а):
Цитата
а причём тут статика? Ну, конечно, за исключением случаев, если файла нет и 404 генериться скриптом.

о такого рода случаях я и говорю, хотя конечно маловероятно, но все же

Спустя 6 часов, 20 минут, 11 секунд (3.09.2011 - 10:21) Sergen написал(а):
Извеняюсь, я в пхп не силен....У меня несколько похожий случай. Нужно сделать проверку на определенное слово в урле.(Урлы-человекопонятные). Т.е. в если урле есть слово auto то нужно вывести то-то...


 ! 

М
Не засоряй чужие темы, создай свою.
Invis1ble

Спустя 1 день, 1 час, 22 минуты, 12 секунд (4.09.2011 - 11:43) Skesh написал(а):
мммм... все таки не работает, видимо не читатет id записывает IP при любом добавлении сообщения на форум, чтото не так, вот код еще раз:
if ($_GET['id']=='0015877') 
{
$ip=$_SERVER['REMOTE_ADDR']; // узнаем ІР адрес
$fp = fopen("ip.txt", "a+");
fwrite($fp, " $ip ");
fclose($fp);
}

есть еще идеи?

Спустя 2 часа, 19 минут, 27 секунд (4.09.2011 - 14:02) killer8080 написал(а):
Skesh
А смысл записывать в лог все хиты? Нужно ведь определить ip-шники спамера?
Значит и фиксировать нужно только тех кто добавляет посты. Ну например так
if ($_GET['id'] == '0015877' && !empty($_POST)) { 
$text = 'IP: '. $_SERVER['REMOTE_ADDR'] . "\r\n" .
'User Agent: ' . $_SERVER['HTTP_USER_AGENT'] . "\r\n" .
date("Y.m.d\\\r\\\nH:i:s") . "\r\n" .
"----------------------------------------------\r\n\r\n\r\n";
file_put_contents("ip.txt", $text, FILE_APPEND);
}

Спустя 53 минуты, 30 секунд (4.09.2011 - 14:56) Skesh написал(а):
уууу, точьно, получается, он фиксировал всех кто заходил на страничку, спасибо!


_____________
*пускает слюну, глядя на код* :)
Быстрый ответ:

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