Forum Webscript.Ru
Наши скрипты => Sad But True => Тема начата: от 27 Ноября 2001, 15:14:47
-
Как очистить файл с IP и вообще что чистить надо?
-
Как очистить файл с IP и вообще что чистить надо?
Все данные в файле polldata.txt
Строка с ip:
ip[~]0|0|0|0|0|0|0|0|0|0
это "чистая запись", кол-во нулей кол-во проверяемый ip.
При создании нового голосования, все данные автоматически обнуляются.
-
Проблема в том, что многие не могут голосовать по причине того, что сидят за фаерволом :(
-
Есть два варианта:
первый, или запоминать лишь один ip (в sbt.cfg устанавливается $ip_check=1;)
Или чтоб не проверять вообще, надо сделать вот что:
vote.cgi
строка 49 (подпрограмма main):
$check=&check_me;
ее нужно закомментировать, т.е. поставить перед ней #:
#$check=&check_me;
далее:
utils.pl, подпрограмма modify_poll_var
с 86 строки по 95 идет блок:
if ($old_key eq \'ip\'){
#Save ip
#Get last voting ips
@my_ip= split (/\\|/,$old_val);
unshift(@my_ip,$ENV{\'REMOTE_ADDR\'});
if (($#my_ip+1)>$ip_check){pop @my_ip}
$old_val=join("|", @my_ip);
$newdata .=$old_key."\\[~\\]".$old_val."\\n";
}
elsif ($old_key eq \'total\'){
$old_val +=1;
$newdata .=$old_key."\\[~\\]".$old_val;
}
меняем его на это:
if ($old_key eq \'total\'){
$old_val +=1;
$newdata .=$old_key."\\[~\\]".$old_val;
}
Все. В sbt.cfg переменной $ip_check не стоит присваивать 0, лучше оставить там какое-нибудь значение (по умолчанию, там 10).
-
Сделал как сказано - всё работает, но.....
Теперь полная свобода накрутчикам :((((
Как бы это завязать с куками? А то совсем напасть какая-то :(((
Проблема с фаерволами - это насущная проблема. :(
-
Как бы это завязать с куками? А то совсем напасть какая-то ((
Да... перестарался я :)
vote.cgi
строка 49 (подпрограмма main):
$check=&check_me;
ее нужно закомментировать, т.е. поставить перед ней #:
#$check=&check_me;
этого трогать не надо.
Т.е. не надо комметировать, надо оставить
$check=&check_me;
как есть.
А свой взгляд обратить на подпрограмму sub check_me (в том же файле):
$your_ip=$ENV{\'REMOTE_ADDR\'}||(return 1);
if ($my_vars{\'ip\'} =~ /$your_ip/){return 1;}
вот эти две строки надо закомментировать (или удалить), тогда останется только проверка по кукам.