Голосование L2top
В общем с 31 числа перестал работать парсящий скрипт, переписал под нынешние ссылки топа но всё равно не работает... Помогите знающие люди, пожайлуста :) Вот собственно сам скрипт:
define("SECURED","TRUE");
require('config.php');
function add2log($str)
{
global $CONFIG;
$fh = fopen($CONFIG['logfile'], "a+");
$success - fwrite($fh, $str.' ['.date(d.'.'.m.'.'.Y.' - '.H.':'.i).']'.chr(13).chr(10));
fclose($fh);
}
{
add2log('Обращение к скрипту с ip:'.getenv('REMOTE_ADDR'));
add2log('Выполняюсь....');
$ok=false;
for ($i=1;$i<=10;$i++)
{
$l2topar=file('http://l2top.ru/info/'.$CONFIG['voteid'].'/');
if (count($l2topar)>5)
{
$ok=true;
break;
}
add2log('Чет л2топ не отвечает, попробую еще раз, попытка номер:'.$i);
sleep(5);
}
if ($ok)
{
for ($i=0;$i<=count($l2topar);$i++)
{
$l2top.=$l2topar[$i];
}
$pdata=(substr($l2top,(strpos($l2top,'сервер:<br></th>')+16),strlen($l2top)));
$data=(substr($pdata,(strpos($pdata,'</tr>')+6),(strpos($pdata,'</table>')-22)));
$data=(substr($data,1,strpos($data,'</table>')-8));
$nums=substr_count($data,'<tr>');
if (($nums<$CONFIG['vnum'] || $nums==$CONFIG['vnum']) and ($nums<>0))
{
for ($i=1;$i<=$nums;$i++)
{
$line[$i]=substr($data,strpos($data,'<tr>'),(strpos($data,'</tr>')-strpos($data,'<tr>')));
$datanew=substr($data,(strpos($data,'</tr>')+5));
$data=$datanew;
}
require('mysql.php');
for ($i=1;$i<=count($line);$i++)
{
//if(strpos($line[$i],'colspan' )>0) continue;
$line[$i]=substr($line[$i],strpos($line[$i],'</td>')+5);
$ip[$i]=substr($line[$i],(strpos($line[$i],'<td>')+4),((strpos($line[$i],'</td>'))-(strpos($line[$i],'<td>')+4)));
//$ip[$i]=substr($ip[$i],(strpos($ip[$i],"'>")+2),(strpos($ip[$i],'</a>')-(strpos($ip[$i],"'>")+2)));
$line[$i]=substr($line[$i],(strpos($line[$i],'</td>')+5));
$date[$i]=substr($line[$i],(strpos($line[$i],'<td>')+4),(strpos($line[$i],'</td>')-(strpos($line[$i],'<td>')+4)));
//die($date[$i]);
//$date[$i]=substr($date[$i],(strpos($date[$i],' ')+1));
$mydate[$i]=$date[$i];
//$timedate=explode('.',$date[$i]);
//$days=substr($timedate[0],strlen($timetodate[0])-2,2);
//$day[$i]=$days;
//$mounth[$i]=$timedate[1];
//$year[$i]='20'.$timedate[2];
$line[$i]=substr($line[$i],(strpos($line[$i],'</td>')+5));
$line[$i]=substr($line[$i],(strpos($line[$i],'</td>')+5));
if(strpos($line[$i],'colspan' )>0) {
$url[$i]=substr($line[$i],(strpos($line[$i],"<td colspan='1'>")+16),(strpos($line[$i],'</td>')-(strpos($line[$i],"<td colspan='1'>")+16)));
}
else $url[$i]=substr($line[$i],(strpos($line[$i],'<td>')+4),(strpos($line[$i],'</td>')-(strpos($line[$i],'<td>')+4)));
if ($CONFIG['prefix']<>''){
if (substr_count($url[$i],$CONFIG['prefix']))
{
$nickname[$i]=substr($url[$i],(strlen($CONFIG['prefix'])),(strlen($url[$i])-strlen($CONFIG['prefix'])));
}
}
else
{
//die($url[$i]);
$nickname[$i]=$url[$i];
}
if (strlen($nickname[$i])==0) continue;
//$mydate[$i]=($year[$i].'.'.$mounth[$i].'.'.$day[$i]);
$result=mysql_query('select id from l2vote where date="'.$mydate[$i].'" and name="'.$nickname[$i].'" ',$my_auth);
if (mysql_num_rows($result)==0){
$result=mysql_query('select max(id) from l2vote',$my_auth);
if (mysql_num_rows($result)==1)
{
$maxid=(mysql_result($result,0,'max(id)')+1);
if (empty($maxid)) {$maxid=1;}
}
else
{
$maxid=1;
}
add2log('Новый проголосовавший игрок добавлен в таблицу на ожидание передачи приза...('.$url[$i].')');
mysql_query('insert into l2vote (id,ip,name,date,status) values ("'.$maxid.'","'.$ip[$i].'","'.$nickname[$i].'","'.$mydate[$i].'","no")',$my_auth);
if (mysql_errno()>0)
{
echo($url[$i].'<br>');
echo($ip[$i].'<br>');
echo($mydate[$i].'<br>');
echo(mysql_error().'<hr>');
}
}
else
{
// add2log('Запись с ником '.$nickname[$i].' от '.$mydate[$i].' числа, уже есть в базе..');
}
}
mysql_close($my_auth);
}
else
{
add2log('ошибка, неверное количество записей получено с л2топа ('.$nums.')');
}
}
else
{
add2log('Ахтунг! нет конекта к л2топу, миссия проваленна. :(');
}
}
//echo('</table>');
add2log('EOF');
?>
На стандарте стресс 8+ работает нормально.
Попробуй покапать скрипты с шары
Так он у меня работал, 31 перестал работать... Я думал ссылки поменяли или ещё что... А вообще ip могли забанить за обращение каждые 5 минут? Ибо у меня хост со статик ip
Wh1tePower: Так он у меня работал, 31 перестал работать... Я думал ссылки поменяли или ещё что... А вообще ip могли забанить за обращение каждые 5 минут? Ибо у меня хост со статик ip
Могли если с сайта обращаются к списку проголосовавших чаще чем раз в пять минут.
Напиши в тех поддержку
[email protected] вроде..
Попроси проверить заблокирован ли айпи твоего сайта и не забудь указать его ...или домен...
Тему можно закрывать. Был забанен IP, поговрил с админами - разбанили
А хотя... Кто знает чеем нужно заменить
$data=(substr($pdata,(strpos($pdata,'</tr>')+6),(strpos($pdata,'</table>')-22)));
$data=(substr($data,1,strpos($data,'</table>')-8));
$nums=substr_count($data,'<tr>');
if (($nums<$CONFIG['vnum'] || $nums==$CONFIG['vnum']) and ($nums<>0))
{
for ($i=1;$i<=$nums;$i++)
{
$line[$i]=substr($data,strpos($data,'<tr>'),(strpos($data,'</tr>')-strpos($data,'<tr>')));
$datanew=substr($data,(strpos($data,'</tr>')+5));
$data=$datanew;
Что бы парсер брал имена из списка последних 500 голосовавших?
Wh1tePower: А хотя... Кто знает чеем нужно заменить
Что бы парсер брал имена из списка последних 500 голосовавших?
На Форуме я тоже Radar!
Я везде Radar!
А можно не кусок чужого выдранного кода, а просто небольшая переписка моих строк?
И то вообще на index.php похоже оО


