Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/L2Top и системы поощрения/[help] L2top нет соединения
Search

[help] L2top нет соединения

5 replies139 viewsCurrently viewing: 1
F
Foximion

User

Участник

Posts: 32

На форуме с: 03/14/2009

Репутация: +4

Рейтинг: 0

· 03/14/2009, 02:24 AM
имеется скрипт для поощрений голосования на л2топе

<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>";
}

?>
скрыть
");
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))

В чем может быть проблема? ведь все было идеально russian_roulette.gif


//Dj StaL' - Большой код прячьте под "Спойлер"!
0
Фёдор
Фёдор

User

Бывалый

Posts: 249

На форуме с: 07/04/2008

Репутация: +68

Рейтинг: 0

· 03/14/2009, 03:30 AM

так же было, на l2top'e слишком много пользователей и этот лимит ограничивает их и l2top становится для данного скрипта недоступен...
выход только 1 - упорство (F5)

www.powerage.ru - Technical Admin

0
F
Foximion

User

Участник

Posts: 32

На форуме с: 03/14/2009

Репутация: +4

Рейтинг: 0

· 03/14/2009, 03:50 AM

т.е. ты хочешь сказать что скрипт рабочий, а лимит пользователей L2Top режет мне функционал скрипта?

в таком случае становится непонятно, почему скрипт аля этот "некого другого серва", пашет?

Опытные php скриптеры, посмотрите, подскажите, как исправить данный еррор, или как можно обойти скриптом этот "лимит пользователей".

Если есть более серьёзные и 100% рабочие скрипты - ICQ: 276067255. Обсудим.

0
AbsT
AbsT

User

Ветеран

Posts: 1514

На форуме с: 12/10/2007

Репутация: +768

Рейтинг: 0

· 03/14/2009, 12:00 PM

А попробуй создать простенький скрипт и вызвать его со своего веб-сервера

Код
<?php
$l2topid = 0000; // Заполнить
echo file_get_contents('http://l2top.ru/?servID='.$l2topid.'&act=info');
?>


Выполнение этого скрипта должно отобразить в браузере твой сервер и списки голосовавших.

— &#197;lderdom - ingen gl&#228;dje..

0
lin4ik
lin4ik

User

Участник

Posts: 42

На форуме с: 01/25/2009

Репутация: +2

Рейтинг: 0

· 03/26/2009, 03:03 AM

у тебя на веб сервере в корне лежит config.php???
если нет то он нужен 100%
если есть то кинь сюда я гляну в чём проблемма

0
Войдите или зарегистрируйтесь чтобы ответить