Скрипт Поощрений За Голосование
Вот сам скрипт:
<tr>
<td valign="top"><div class=title_stat>Авто поощрение за голоса в л2топе</div></td>
</tr>
</table>
</td>
</tr>
</table><br />
<?php
$cols_for_vote = 5; // Это количество COL за 1 голос
if (isset($_POST['nick']))
{
$total = 0;
$your_ip = $_SERVER['REMOTE_ADDR'];
echo '<b>Ник вашего чара: </b>'.$_POST['nick'].'<br />';
echo '<b>Ваш ip: </b>'.$your_ip.'<br />';
$error = '';
$voters = array();
$link = mysql_connect("localhost", "root","Пас базы") or die("Could not connect : " . mysql_error());
mysql_select_db("l2jdb") or die("Could not connect : " . mysql_error());
mysql_query ("set NAMES cp1251");
$result = mysql_query("SELECT `obj_Id` FROM `characters` WHERE `char_name` = '".mysql_escape_string($_POST['nick'])."'");
$row = mysql_fetch_assoc($result);
if ($row == array())//есть ли такой чар вообще
$error .= 'Нет чара с таким именем!<br />';
else
{
$char_id = $row['obj_Id'];
$html = @file_get_contents('http://l2top.ru/?voteme=4086');
if (!$html || !preg_match_all('/<td><a href=\'[^\']+\'>([^<]+)<\/a><\/td>\s+<td>([^<]+)<\/td>/', $html, $matches))
$error .= 'Не удалось получить информацию с l2top.ru!<br/>';
else
{
foreach ($matches[1] as $id => $ip)
{
if ($ip == $your_ip)
$voters[] = $matches[2][$id];
}
if ($voters != array())
{
foreach ($voters as $time)
{
$result = mysql_query("SELECT * FROM `l2top` WHERE `ip` = '".mysql_escape_string($your_ip)."' 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` = 4037");
$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 `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`, `donatorRentTime`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", 4037, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1, 0)");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".mysql_escape_string($_POST['nick'])."', '".mysql_escape_string($your_ip)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' засчитан!<br/>';
}
else
$error .= 'Голос за '. $time.' уже был засчитан ранее!<br/>';
}
}
else
$error .= 'Вы НЕ голосовали!<br>';
}
}
echo $error.'<b>'.$total.'</b> COL добавлено вашему чару!<br/><a href="event.php">Назад</a>';
}
else
{
?>
<form method="POST" action="event.php">
<b>1. <a href="http://l2top.ru/?voteme=4086" target="_blank">Проголосуйте на L2Top</a></b>
<br />
<a href="http://l2top.ru/?voteme=4086" target="_blank"><img style="filter:alpha(opacity=50); opacity:0.5; -moz-opacity:0.5;" src="http://l2top.ru/?voteme=4086" width="88" height="31" border="0" alt="L2top.ru: Рейитинг-каталог серверов Lineage2" ></a>
<br /><br />
<b>2.</b> Введите ник вашего чара:
<br />
<input type="text" name="nick" maxlength="25">
<br /><br />
<input type="submit" value="Получить COL">
</form>
<?php
}
?>
Делаю ещё 1 такой скрипт только с названием event.php - на него должы переходить пользователи после ввода ника персонажа.
Заполняю эту строку, ввожу данные моего сервера:
mysql_select_db("l2jdb") or die("Could not connect : " . mysql_error());
И настраиваю все ссылки на л2топ.
Теперь когда проголосуеш за сервер,вводиш ник персонажа, вылетает такая ошибка:
Голос за 08:19:44 18.04.08 засчитан!
5 COL добавлено вашему чару!
Написанно, что колы добавленны, но это не так и какаято ошибка.
Что нужно сделать что бы это исправить?
Trojan: хмммммммм, может таблица в бд неправильная или её вообще нету !
Что за таблица? Её нужно самому добавлять?
Мб вот это нужно добавить?
CREATE TABLE `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 `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;
Trojan: Конечно нужно!
В консоле сделай запрос:КодDROP TABLE IF EXISTS `l2top`;
CREATE TABLE `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;
Настроил скрипт, сделал запрос в новикэте, таблица появилась. В этой таблице показываются проголосовавшие игроки, которые должны получить коины, но они их не получают автоматически. Что делать, мб кто-то знает?
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
они не получают коин только потому что у них нет его.Функция update обновляет количество ,а не создает предмет.Поэтому я предлагаю 2 варианта:
1.добавить всем по 1 коину.
2.сделать в скрипте проверку,запросом SELECT по item_id=4037 и затем,если запрос верен то делать
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
если нет то INSERT ...
3.Все описал одробно,жду заслуженное спасибо
и еще не пойму как у тебя работает скрипт,если
$html = @file_get_contents('http://l2top.ru/?voteme=4086');
это голосование,по идее страничка ?voteme=4086'&act=info от туда берем из списка голосовавших ipшники.
У кого вообще этот скрипт работает напишите
— Php+Mysql+JS
ADM Clean: mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
они не получают коин только потому что у них нет его.Функция update обновляет количество ,а не создает предмет.Поэтому я предлагаю 2 варианта:
1.добавить всем по 1 коину.
2.сделать в скрипте проверку,запросом SELECT по item_id=4037 и затем,если запрос верен то делать
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
если нет то INSERT ...
3.Все описал одробно,жду заслуженное спасибо
и еще не пойму как у тебя работает скрипт,если
$html = @file_get_contents('http://l2top.ru/?voteme=4086');
это голосование,по идее страничка ?voteme=4086'&act=info от туда берем из списка голосовавших ipшники.
У кого вообще этот скрипт работает напишите
Все пробовал не хочет он создавать сточку в mysql.....можно ли скрипт который будет создавать по 1 коле! но без голосования и чтоб проверялось уже есть или нет!
NFS: автору спс за скрипт очень помог я его загнал за 20 вмз =)
дам...
таких как ты надо банить!!!!!!!!!
человек выложыл что б помогли а ты продаеш
у меня пишет
$link = mysql_connect("localhost", "root","root") or die("Could not connect : " . mysql_error()); mysql_select_db("l2rt") or die("Could not connect : " . mysql_error());
— 2
У меня пишет вот что
Ник вашего чара: [Main][ADM]Nowell
Ваш ip: 79.*******
Не удалось получить информацию с l2top.ru!
0 Aden добавлено вашему чару!
Назад
что делать? как исправить?
CBOJIO4: У меня пишет вот что
Ник вашего чара: [Main][ADM]Nowell
Ваш ip: 79.*******
Не удалось получить информацию с l2top.ru!
0 Aden добавлено вашему чару!
Назад
что делать? как исправить?
А можно отписать как ты его ваше запустил??
CBOJIO4: Кто ответит на мои вопросы?
Сволыш) Обьясни как ты ваше его запустил)) У меня ошибка ета вылазает:
$link = mysql_connect("localhost", "root","root") or die("Could not connect : " . mysql_error()); mysql_select_db("l2rt") or die("Could not connect : " . mysql_error());
Обьясните хоть кто нить.
$link = mysql_connect("localhost", "root","пороль от мускла") or die("Could not connect : " . mysql_error()); mysql_select_db("l2rt") or die("Could not connect : " . mysql_error());
Народ не ленитесь ответьте кто нить)))) в чем проблема то сообствено)))
помогите народ)
$link = mysql_connect("localhost", "root","root") or die("Could not connect : " . mysql_error()); mysql_select_db("l2rt") or die("Could not connect : " . mysql_error());
Поменяй пароли олжно получиться примерно так
$link = mysql_connect("localhost", "root","пароль к твоей базе") or die("Could not connect : " . mysql_error()); mysql_select_db("l2rt") or die("Could not connect : " . mysql_error());
mysql_select_db("l2jdb") or die("Could not connect : " . mysql_error());
Поставь вместо l2jdb базу в которой у тебя таблица l2top
И будет тебе щастье ![]()










