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/Web обвязка/[help]скрипт L2top.
Search

[help]скрипт L2top.

16 replies242 viewsCurrently viewing: 1
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/22/2008, 10:37 AM

Сборка сервера L2emu rev.701 (Gracia Part 1)

Ошибка при зачеслении приза за голосование :

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in W:\www\l2top.php on line 71

Сам скрипт голосования :

Код
<?


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

echo '<form action="l2top.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=1000; // Колличество зачисляемых вещей за одно голосование
$id_l2top=5252; // Ваш ID в рейтинге L2Top

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

$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 obj_Id FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);

$char_id=$chd['obj_Id'];
$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`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
данный запрос необходимо переделывать взависимости от того, какая структура таблицы items у вас на сборке сервера. Данный запрос отвечает за добавление бонусной вещи за голосование в инвентарь, если у вас её еще нет.
*/
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
}
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/>';

}

?>


То что заливал в базу :

Код
CREATE TABLE IF NOT EXISTS `l2top` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`nick` varchar(30) NOT NULL,
`ip` varchar(20) NOT NULL,
`time` varchar(20) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `items` (
`owner_id` int(11) DEFAULT NULL,
`object_id` int(11) NOT NULL DEFAULT '0',
`item_id` int(11) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
`enchant_level` int(11) DEFAULT NULL,
`loc` varchar(10) DEFAULT NULL,
`loc_data` int(11) DEFAULT NULL,
`price_sell` int(11) DEFAULT NULL,
`price_buy` int(11) DEFAULT NULL,
`time_of_use` int(11) DEFAULT NULL,
`custom_type1` int(11) DEFAULT '0',
`custom_type2` int(11) DEFAULT '0',
`mana_left` decimal(3,0) NOT NULL DEFAULT '-1',
PRIMARY KEY (`object_id`),
KEY `key_owner_id` (`owner_id`),
KEY `key_loc` (`loc`),
KEY `key_item_id` (`item_id`),
KEY `key_time_of_use` (`time_of_use`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Прошу помочь настроить данный скрипт под l2emu rev.701 Gracia Part 1.

//php файлы нужно писать в теге код Boec

— рас&#33;11рас&#33;1

0
B
billsmith

User

Новичок

Posts: 11

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

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

Рейтинг: 0

· 11/22/2008, 11:32 AM

1. Скрипт для удобства чтенеия нужно выкладывать в тегах для кода.
2. Какая строчка в этом скрипте у тебя 71 ?

0
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/22/2008, 12:08 PM

$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())

71 строка.

— рас&#33;11рас&#33;1

0
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/22/2008, 12:52 PM

Неужели никто не знает как исправить?

— рас&#33;11рас&#33;1

0
Bafroom
Bafroom

User

Бывалый

Posts: 255

На форуме с: 06/08/2008

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

Рейтинг: 0

· 11/22/2008, 03:37 PM

А этот скрипт разве не по IP работает. Если да, то у тя облом, ибо l2top перешёл на ники, а IP скрыл

— 41

0
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/22/2008, 04:17 PM

Я откуда знаю как он работает. сказали что должен работать

— рас&#33;11рас&#33;1

0
Bafroom
Bafroom

User

Бывалый

Posts: 255

На форуме с: 06/08/2008

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

Рейтинг: 0

· 11/22/2008, 05:26 PM

скрипт, то хороший, но увы он по IP а в л2топе ИП скрыли

— 41

0
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/22/2008, 05:41 PM

Не могли бы тогда посоветовать скрипт?

— рас&#33;11рас&#33;1

0
B
billsmith

User

Новичок

Posts: 11

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

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

Рейтинг: 0

· 11/22/2008, 06:10 PM

Somesay: $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())

71 строка.

$result = mysql_query("SELECT * FROM `items` WHERE `owner_id` = '".mysql_escape_string($char_id)."' AND `item_id` = 6673 AND `loc` = 'INVENTORY'");

Строка у тебя верная, разве что можеш поменять её на такую, чтоб неиспользовали баг скрипта на получение приза в двойном рамере. Только 72 и 73 строки ненароком неубери. А чё это за ошибку такую даёт хз, возможно ты нетак пользователя прописал, или права ему на SELECT для базы невыставил.

Bafroom: скрипт, то хороший, но увы он по IP а в л2топе ИП скрыли

Этот скрипт как раз ник проверяет а не IP?так что всё норм.

0
Bafroom
Bafroom

User

Бывалый

Posts: 255

На форуме с: 06/08/2008

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

Рейтинг: 0

· 11/22/2008, 07:18 PM

Цитата
Этот скрипт как раз ник проверяет а не IP?так что всё норм

да ладно я себе его поставил он проверяет IP

— 41

0
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/22/2008, 09:13 PM

Ну может вы мне какой нибудь скрипт посоветуюте? d94fefdbba8d.gif

— рас&#33;11рас&#33;1

0
E
ejikdark

User

Новичок

Posts: 7

На форуме с: 03/27/2008

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

Рейтинг: 0

· 11/22/2008, 09:17 PM

Somesay: Ну может вы мне какой нибудь скрипт посоветуюте? d94fefdbba8d.gif

http://forum.inshell.ru/showthread.php?t=5 попробуй этот

0
B
billsmith

User

Новичок

Posts: 11

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

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

Рейтинг: 0

· 11/22/2008, 10:44 PM

Bafroom: да ладно я себе его поставил он проверяет IP

Внимательно посмотри эту часть кода
Код
$result = mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");

где видно что сверяется только имя и время, а ваш IP
Код
$your_ip = $_SERVER['REMOTE_ADDR'];
испольуется только тут
Код
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
занося информацию о IP в таблицу l2top, и эту строку вообще из скрипта можно выбросить.

0
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/24/2008, 05:06 PM

Тема еще актуальна!
И пожалуйста не нужно давать ссылки на скрипты, которые используют крон.

— рас&#33;11рас&#33;1

0
E
ejikdark

User

Новичок

Posts: 7

На форуме с: 03/27/2008

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

Рейтинг: 0

· 11/24/2008, 07:18 PM

Somesay: Тема еще актуальна!
И пожалуйста не нужно давать ссылки на скрипты, которые используют крон.

тот скрипт что я выложил через крон у мну на хостинге не запустился, поставил на исполнение сервером, работает норм

0
SomeSay
SomeSay

User

Бывалый

Posts: 341

На форуме с: 02/27/2007

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

Рейтинг: 0

· 11/24/2008, 09:20 PM

меня просто не устраивает крон система.

— рас&#33;11рас&#33;1

0
Topic is closed for replies