Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

фильтр ip в скрипте счетчика на php

381
28 декабря 2003 года
qik
116 / / 20.06.2000
как?
кароче счетчик и мой собств. ip пиленгует как его фильтровать?
291
28 декабря 2003 года
gufy
703 / / 08.01.2003
гы.. методом непосредственной фильтризации:))

$ip = getenv ("REMOTE_ADDR");
if ($ip=='your_ip'){
die('ah..that's me!!!');
}

надеюсь правильно понял проблему
381
28 декабря 2003 года
qik
116 / / 20.06.2000
Цитата:

$ip = getenv ("REMOTE_ADDR");
if ($ip=='your_ip'){
die('ah..that's me!!!');


вот че у меня есть:

Код:
<?php
$dat_file="...";
$log_file="...";
$f=fopen($dat_file,"r");
$count=fgets($f,100);
fclose($f);
$count=ereg_replace("\n","",$count);
//как я понимаю именно в этот момент нужно
проверить ip, вернее сравнить его с 1.1.1.1, к
примеру, и если он совпадет - не удваивать счет,
а если не совпадает продолжить и увеличить счет.
$count++;
$f=fopen($dat_file,"w");
fputs($f,"$count\n");
fclose($f);
echo "$count";
$f=fopen($log_file,"a+");
$ip=getenv("REMOTE_ADDR");
$ag=getenv("HTTP_USER_AGENT");
$from=getenv("HTTP_REFERER");
$host=getenv("REQUEST_URI");
fputs($f,"$ip#$ag#$from#$host\n");
fclose($f);
?>
291
28 декабря 2003 года
gufy
703 / / 08.01.2003
совершенно верно.
только было ли опиской слово удваивать?
381
28 декабря 2003 года
qik
116 / / 20.06.2000
Цитата:
Originally posted by gufy
совершенно верно.
только было ли опиской слово удваивать?


да. конечно описа лся! 8)
вместо

 
Код:
die()
можно использовать
 
Код:
exit()
?
381
28 декабря 2003 года
qik
116 / / 20.06.2000
смотри хрень какая, пишу:
Код:
$dat_file="...";
$log_file="...";
$f=fopen($dat_file,"r");
$count=fgets($f,100);
fclose($f);
// начался. кусок который ты мне дал
$count=ereg_replace("\n","",$count);
$ip = getenv ("REMOTE_ADDR");
if ($ip=='156.2.56.304'){
die('bla-bla');
// кончился. кусок который ты мне дал
$count++;
$f=fopen($dat_file,"w");
fputs($f,"$count\n");
fclose($f);
echo "$count";
$f=fopen($log_file,"a+");
$ip=getenv("REMOTE_ADDR");
$ag=getenv("HTTP_USER_AGENT");
$from=getenv("HTTP_REFERER");
$host=getenv("REQUEST_URI");
fputs($f,"$ip#$ag#$from#$host\n");
fclose($f);

и нифига омне не выдает... при любом ip - просто пустое полею 8(
381
29 декабря 2003 года
qik
116 / / 20.06.2000
домучал я его, все сделал сам, работает ништяк. вто че получилось:
Код:
$ip = getenv ("REMOTE_ADDR");
if ($ip=='100.100.100.100'){
echo die('pizdec');
}
$dat_file="counter/counter.dat"; $log_file="counter/counter.log"; $f=fopen($dat_file,"r");
$count=fgets($f,100);
fclose($f);
$count=ereg_replace("\n","",$count);
$count++;
$f=fopen($dat_file,"w");
fputs($f,"$count\n");
fclose($f);
echo "$count";
$f=fopen($log_file,"a+");
$ip=getenv("REMOTE_ADDR");
$ag=getenv("HTTP_USER_AGENT");
$from=getenv("HTTP_REFERER");
$host=getenv("REQUEST_URI");
fputs($f,"$ip#$ag#$from#$host\n");
fclose($f);

только он гад еще кусок html`я обрезает...
381
29 декабря 2003 года
qik
116 / / 20.06.2000
люди че делать-то ??? этот скрипт не только завершает свою работу, но и сворачивает html d котором он стоит =( че за хрень???
283
29 декабря 2003 года
Alone
910 / / 20.11.2002
Цитата:
Originally posted by qik
люди че делать-то ??? этот скрипт не только завершает свою работу, но и сворачивает html в котором он стоит =( че за хрень???


Что значит "в котором он стоит"?
он ssi вставляется? тогда не должен
или ты имел ввиду что в коде есть html?
тогда да все верно die именно для этого :)( в perl в die приводит к тому что сервер возращает 500 ошибку и пишет в лог, в php наверное по другому... )
я не пишу на php но правильнее былобы так

Код:
$ip = getenv ("REMOTE_ADDR");
if ($ip!='100.100.100.100')
//или как у вас там не равенство означает
//и еще различается ли сравнение строк и чисел
{
 $dat_file="counter/counter.dat";
 $log_file="counter/counter.log";
 $f=fopen($dat_file,"r");
 $count=fgets($f,100);
 fclose($f);
 $count=ereg_replace("\n","",$count);
 $count++;
 $f=fopen($dat_file,"w");
 fputs($f,"$count\n");
 fclose($f);
 echo "$count";
 $f=fopen($log_file,"a+");
 $ip=getenv("REMOTE_ADDR");
 $ag=getenv("HTTP_USER_AGENT");
 $from=getenv("HTTP_REFERER");
 $host=getenv("REQUEST_URI");
 fputs($f,"$ip#$ag#$from#$host\n");
 fclose($f);
}


и еще RTFM
[phpdoc]fopen[/phpdoc] внимание на 'w+'
[phpdoc]flock[/phpdoc]
[phpdoc]ftruncate[/phpdoc]
[phpdoc]fseek[/phpdoc]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог