[help] L2top нет соединения
5 replies139 viewsCurrently viewing: 1
· 03/14/2009, 02:24 AM
имеется скрипт для поощрений голосования на л2топе
<script type='text/javascript'>
mytagid = Math.floor( Math.random() * 100 );
document.write("
document.close();
работал отменно, но не с того не с сяго второй день скрипт не пашет. пишет просто:
Не удалось получить информацию с L2Top.ru!
0 Festival Adena зачислено вашему персонажу!
Ясно дело, что завязка где то тут:
$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if(!$html || !preg_match_all('/<td>([^<]+)<\/td>/', $html, $matches))
В чем может быть проблема? ведь все было идеально
//Dj StaL' - Большой код прячьте под "Спойлер"!
<script type='text/javascript'>
mytagid = Math.floor( Math.random() * 100 );
document.write("
» Нажмите, чтобы показать текст - нажмите опять, чтобы скрыть... «
");
<?php
if(!isset($_POST['name']))
{
echo '<form action="golos.php" method="post">';
echo 'Ник персонажа<br/>
<input type="text" name="name" maxlength="15"/><br/><br/>
<input type="submit" value="Получить бонус"/>
</form>';
}
else
{
$bonus_id=6673; // ID вещи которую зачисляем игроку как бонус за голосование | По умолчанию 6673 - Festival Adena
$cols_for_vote=1; // Колличество зачисляемых вещей за одно голосование
$id_l2top=хххх; // Ваш ID в рейтинге L2Top
include 'config.php';
$mc = mysql_connect($L2JBS_config["mysql_host"], $L2JBS_config["mysql_login"], $L2JBS_config["mysql_password"]);
if($mc)
{
$db = mysql_select_db($L2JBS_config["mysql_db"]);
}
if(!$mc || !$db)
{
echo 'Нет соединения с базой данных.';
exit;
}
$name=mysql_escape_string($_POST['name']);
$ch=mysql_query("SELECT obj_Id FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);
$char_id=$chd['obj_Id'];
$total=0;
$ip_adress = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$ip_adress);
$ip_adress1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.'.$dip[3];
$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` = ".$bonus_id." AND `loc` = 'INVENTORY'");
$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` VALUES(".$ins_id.", ".mysql_escape_string($char_id).", ".$bonus_id.", 'Festival Adena', ".$cols_for_vote.", 0, 'OTHER', 'INVENTORY', 0, 0, 0, 0, 0)");
}
else
{
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id." AND `loc` = 'INVENTORY'");
}
mysql_query("INSERT INTO `l2top` VALUES (NULL, '".mysql_escape_string($name)."', '".mysql_escape_string($ip_adress1)."', '".mysql_escape_string($time)."', NULL)");
$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/>';
echo "<br /><br /><br /><b>30 последних проголосовавших:</b>";
echo "<table width=250>";
$sql = mysql_query("SELECT * FROM `l2top` ORDER BY `date` DESC LIMIT 30");
//mysql_close($db);
if(mysql_num_rows($sql)>0)
{
while($result=mysql_fetch_array($sql))
if($result['nick']=="")
{
echo "<tr><td>".$result['time']."</td><td>0</td></tr>";
}
else
{
echo "<tr><td>".$result['nick']."</td><td>".$result['time']."</td></tr>";
}
}
else
{
echo "<tr><td colspan=2 align=center>Таблица голосования пуста</td></tr>";
}
echo "</table>";
}
?>
скрыть
if(!isset($_POST['name']))
{
echo '<form action="golos.php" method="post">';
echo 'Ник персонажа<br/>
<input type="text" name="name" maxlength="15"/><br/><br/>
<input type="submit" value="Получить бонус"/>
</form>';
}
else
{
$bonus_id=6673; // ID вещи которую зачисляем игроку как бонус за голосование | По умолчанию 6673 - Festival Adena
$cols_for_vote=1; // Колличество зачисляемых вещей за одно голосование
$id_l2top=хххх; // Ваш ID в рейтинге L2Top
include 'config.php';
$mc = mysql_connect($L2JBS_config["mysql_host"], $L2JBS_config["mysql_login"], $L2JBS_config["mysql_password"]);
if($mc)
{
$db = mysql_select_db($L2JBS_config["mysql_db"]);
}
if(!$mc || !$db)
{
echo 'Нет соединения с базой данных.';
exit;
}
$name=mysql_escape_string($_POST['name']);
$ch=mysql_query("SELECT obj_Id FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);
$char_id=$chd['obj_Id'];
$total=0;
$ip_adress = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$ip_adress);
$ip_adress1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.'.$dip[3];
$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` = ".$bonus_id." AND `loc` = 'INVENTORY'");
$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` VALUES(".$ins_id.", ".mysql_escape_string($char_id).", ".$bonus_id.", 'Festival Adena', ".$cols_for_vote.", 0, 'OTHER', 'INVENTORY', 0, 0, 0, 0, 0)");
}
else
{
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id." AND `loc` = 'INVENTORY'");
}
mysql_query("INSERT INTO `l2top` VALUES (NULL, '".mysql_escape_string($name)."', '".mysql_escape_string($ip_adress1)."', '".mysql_escape_string($time)."', NULL)");
$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/>';
echo "<br /><br /><br /><b>30 последних проголосовавших:</b>";
echo "<table width=250>";
$sql = mysql_query("SELECT * FROM `l2top` ORDER BY `date` DESC LIMIT 30");
//mysql_close($db);
if(mysql_num_rows($sql)>0)
{
while($result=mysql_fetch_array($sql))
if($result['nick']=="")
{
echo "<tr><td>".$result['time']."</td><td>0</td></tr>";
}
else
{
echo "<tr><td>".$result['nick']."</td><td>".$result['time']."</td></tr>";
}
}
else
{
echo "<tr><td colspan=2 align=center>Таблица голосования пуста</td></tr>";
}
echo "</table>";
}
?>
скрыть
document.close();
работал отменно, но не с того не с сяго второй день скрипт не пашет. пишет просто:
Не удалось получить информацию с L2Top.ru!
0 Festival Adena зачислено вашему персонажу!
Ясно дело, что завязка где то тут:
$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if(!$html || !preg_match_all('/<td>([^<]+)<\/td>/', $html, $matches))
В чем может быть проблема? ведь все было идеально
//Dj StaL' - Большой код прячьте под "Спойлер"!
0
· 03/14/2009, 03:30 AM
так же было, на l2top'e слишком много пользователей и этот лимит ограничивает их и l2top становится для данного скрипта недоступен...
выход только 1 - упорство (F5)
www.powerage.ru - Technical Admin
0
· 03/14/2009, 03:50 AM
т.е. ты хочешь сказать что скрипт рабочий, а лимит пользователей L2Top режет мне функционал скрипта?
в таком случае становится непонятно, почему скрипт аля этот "некого другого серва", пашет?
Опытные php скриптеры, посмотрите, подскажите, как исправить данный еррор, или как можно обойти скриптом этот "лимит пользователей".
Если есть более серьёзные и 100% рабочие скрипты - ICQ: 276067255. Обсудим.
0
· 03/14/2009, 12:00 PM
А попробуй создать простенький скрипт и вызвать его со своего веб-сервера
Код
<?php
$l2topid = 0000; // Заполнить
echo file_get_contents('http://l2top.ru/?servID='.$l2topid.'&act=info');
?>
$l2topid = 0000; // Заполнить
echo file_get_contents('http://l2top.ru/?servID='.$l2topid.'&act=info');
?>
Выполнение этого скрипта должно отобразить в браузере твой сервер и списки голосовавших.
— Ålderdom - ingen glädje..
0
Войдите или зарегистрируйтесь чтобы ответить



