Показать сообщение отдельно
Непрочитано 01.05.2009, 12:07   #1
Пользователь

Автор темы (Топик Стартер) Скрипт L2top бонуса, перестал работать

Пользовались вот таким скриптом для выдачи бонуса на l2top, но в какой то момент скрипт перестал работать. На л2топе вроде изменений не происходило, писали им на счёт бана сервера, сказали, что всё в порядке и проблема в скрипте.
Сам скрипт:
PHP код:
<?php


if(!isset($_POST['name'])){

echo 
'<form action="l2topa.php" method="post">';


echo 
'Ник персонажа<br/>
<input type="text" name="name"/><br/><br/>
<input type="submit" value="Получить бонус"/>

</form>'
;


}else{

$bonus_id=6673// ID вещи которую зачисляем игроку как бонус за голосование | По умолчанию 6673 - Festival Adena
$cols_for_vote=5// Колличество зачисляемых вещей за одно голосование
$id_l2top=5913// Ваш ID в рейтинге L2Top

$host='localhost'// сервер на котором установлена база данных L2J
$user='root'// имя пользователя от базы данный
$pass='root'// пароль пользователя от базы данный
$db='l2ви'// название базы данных

$mc mysql_connect($host$user$pass);
if(
$mc){
$db mysql_select_db ($db);
}

if(!
$mc || !$db){

echo 
'Нет соединения с базой данных.';

exit;

}

$name=mysql_escape_string($_POST['name']);

$ch=mysql_query("SELECT charId FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);

$char_id=$chd['charId'];
$total=0;
$your_ip $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';

$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!
$html || !preg_match_all('/<td>([^<]+)<\/td>/'$html$matches))
$error .= 'Не удалось получить информацию с L2Top.ru!<br/>';
else
{
foreach (
$matches[1] as $id => $nick)
{
if (
strtolower(trim($nick))==strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if (
$voters != array())
{
foreach (
$voters as $time)
{
$result mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row mysql_fetch_assoc($result);
if (
$row == array())
{
$result mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 6673");
$row mysql_fetch_assoc($result);
if (
$row == array())
{
$result mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row mysql_fetch_assoc($result);
$ins_id $row['id'];

mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`, `attributes`)
VALUES("
.mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, NULL, 0, 0, -1, 'none')");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 6673");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= 'Голос за '$time.' зачислен.<br/>';
}
else
$error .= 'Голос за '$time.' уже был зачислен.<br/>';
}
}
else
$error .= 'Ваш голос на сайте L2Top.ru не найден.<br>';
}

echo 
$error.'<br><b>'.$total.'</b> Festival Adena зачислено вашему персонажу!<br/>';

}

?>
Проблема возникает на участвке вытаскивания инфы со страницы сервера на л2топ.
Выдаёт ошибку:
"Не удалось получить информацию с L2Top.ru!"
Посмотрел исходный код страницы л2топ там вроде всё так же как было раньше. Тоесть парсить скрипт должен, но он этого не делает.
kemn вне форума Ответить с цитированием