Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб want2vote money bonus.

Marshal_Xaker

Старожил
Пользователь
Баллы
103
Имя в Minecraft
Marshal_Xaker
Доброго времени суток. В общем, понадобился как-то скрипт поощрения (денежный) от топа want2vote. Конечно же отправился на RuBukkit и нашёл тему, но файл был удалён :( Взял их (топа) срипт для поощрения с плагином, переписал SQL запросик, добавил пару переменных для удобства. У итоге получился вот такой скриптик:

PHP:
<?php
/* Конфиги */            
$money = 1;                // Колличество денег за голосование
$table = "iConomy";      // Таблица iConomy
$tablemoney = "balance";  // таблица с балансом игрока balance/realmoney/bank и т.д.

$hostname = "localhost";    // IP базы данных MySQL
$username = "login";          // Логин к базе данных MySQL
$password = "pass";            // Пароль к базе данных MySQL
$dbName = "MySql";          // Имя базы данных MySQL
/* /Конфиги */




if ($_GET['nickname']!='') {
  // подключаемся к базе данных MySQL
  $connect_to_mysql = mysql_connect($hostname,$username,$password) OR DIE("Не могу соединиться с базой");
  mysql_select_db($dbName) or die(mysql_error());

  $nickname=mysql_escape_string($_GET['nickname']);
  $nickname=mysql_real_escape_string($nickname);
  // начисляем валюту
  $query = "UPDATE $table SET `$tablemoney`=`$tablemoney`+'$money' WHERE `username`='$nickname'";
  echo 'OK<br />';
  mysql_query($query) or die(mysql_error());
  mysql_close($connect_to_mysql);
}
?>

Думаю проблем с установкой элементарного скрипта не возникнет.


Защита от накрутки денег by RomaZveR.

Создаём директорию (например: vote)
заливаем туда и конфигурируем скрипт (пусть будет название vote.php)
создаём файл index.html с любым содержимым (защищаемся от просмотра каталога)
создаём в этой папке файл .htaccess, заполните его следующим содержимым:

Код:
DirectoryIndex index.html //защита от любопытных глаз каталога vote
<Files "vote.php">          //защищаемый файл
Order Deny,Allow              //параметры Разрешить, Запретить
Deny from all                      //Запретить для всех
Allow from ip_адрес_бота_want2vote    //разрешить для *** адреса
</Files>
// Защищаем сам файл .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
// Защищаемся глобальных переменных от XSS и SQLinj, в принципе можно и не добавлять, код и так фильтрует данные, но лишним не будет.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ vote.php [F,L]

(может быть это просто ip адрес их сайта, если нет - спросите у поддержки, если ботов у них несколько, то можете добавить ещё строчек для разрешения.)

Версия скрипта с проверкой удалённого сервера:
PHP:
<?php
if ($_SERVER['REMOTE_ADDR'] !=='127.0.0.1')
die(header("Status: 404 Not Found"));
exit;
/*Проверяем адрес удалённого сервера (т.е источник запроса к скрипту),
если его адрес НЕ 127.0.0.1, то код возвращает ошибку 404 не найдено.
Вместо 127.0.0.1 нужно прописать ip адрес бота want2vote */
/* Конфиги */  
$money = 1;                // Колличество денег за голосование
$table = "iConomy";      // Таблица iConomy
$tablemoney = "balance";  // таблица с балансом игрока balance/realmoney/bank и т.д.
$hostname = "localhost";    // IP базы данных MySQL
$username = "login";          // Логин к базе данных MySQL
$password = "pass";            // Пароль к базе данных MySQL
$dbName = "MySql";          // Имя базы данных MySQL
/* /Конфиги */
if ($_GET['nickname']!='') {
  // подключаемся к базе данных MySQL
  $connect_to_mysql = mysql_connect($hostname,$username,$password) OR DIE("Не могу соединиться с базой");
  mysql_select_db($dbName) or die(mysql_error());
  $nickname=mysql_escape_string($_GET['nickname']);
  $nickname=mysql_real_escape_string($nickname);
  // начисляем валюту
  $query = "UPDATE $table SET `$tablemoney`=`$tablemoney`+'$money' WHERE `username`='$nickname'";
  echo 'OK<br />';
  mysql_query($query) or die(mysql_error());
  mysql_close($connect_to_mysql);
}
?>
 

Вложения:

Последнее редактирование:
Я ж миллиардером любого с этим скриптом сделаю:D
Сам wand2vote говорит менять название файла что бы никто не знал его ссылку! Например 545ubvfdfgbghv3.php и ещё в 10 директориях. :p
 
Претензии не ко мне :( Я не виноват что wand2vote отправляет только GET запрос на скрипт с ником того кто проголосовал! :cry:
 
Претензии не ко мне :( Я не виноват что wand2vote отправляет только GET запрос на скрипт с ником того кто проголосовал! :cry:
Переход на POST ничего не изменит. Только у топкрафта хорошо продумана защита от несанкционированного доступа к скрипту.
 
Переход на POST ничего не изменит. Только у топкрафта хорошо продумана защита от несанкционированного доступа к скрипту.
Я и не говорил что post что-то изменит :confused: Главное, то что только ник игрока передаётся.
 
Можно прилепить проверку откуда пришел запрос
Зачем? Я же написал что изменением названия файла и пути к нему ты уже защитишься :) Никто кроме тебя ссылку на скрипт знать не будет.
 
Создавайте директорию (например: vote)
залейте туда и сконфигурируйте скрипт (пусть будет название vote.php)
создайте файл index.html с любым содержимым (защищаемся от просмотра каталога)
создайте в этой папке файл .htaccess, заполните его следующим содержимым:
Код:
DirectoryIndex index.html //защита от любопытных глаз каталога vote
<Files "vote.php">          //защищаемый файл
Order Deny,Allow              //параметры Разрешить, Запретить
Deny from all                      //Запретить для всех
Allow from ip_адрес_бота_want2vote    //разрешить для *** адреса
</Files>

// Защищаем сам файл .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

// Защищаемся глобальных переменных от XSS и SQLinj, в принципе можно и не добавлять, код и так фильтрует данные, но лишним не будет.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ vote.php [F,L]


(может быть это просто ip адрес их сайта, если нет - спросите у поддержки, если ботов у них несколько, то можете добавить ещё строчек для разрешения.)

Версия скрипта с проверкой удалённого сервера:
PHP:
<?php
if ($_SERVER['REMOTE_ADDR'] !=='127.0.0.1')
die(header("Status: 404 Not Found"));
exit;
/*Проверяем адрес удалённого сервера (т.е источник запроса к скрипту),
если его адрес НЕ 127.0.0.1, то код возвращает ошибку 404 не найдено.
Вместо 127.0.0.1 нужно прописать ip адрес бота want2vote */

/* Конфиги */     
$money = 1;                // Колличество денег за голосование
$table = "iConomy";      // Таблица iConomy
$tablemoney = "balance";  // таблица с балансом игрока balance/realmoney/bank и т.д.

$hostname = "localhost";    // IP базы данных MySQL
$username = "login";          // Логин к базе данных MySQL
$password = "pass";            // Пароль к базе данных MySQL
$dbName = "MySql";          // Имя базы данных MySQL
/* /Конфиги */

if ($_GET['nickname']!='') {
  // подключаемся к базе данных MySQL
  $connect_to_mysql = mysql_connect($hostname,$username,$password) OR DIE("Не могу соединиться с базой");
  mysql_select_db($dbName) or die(mysql_error());

  $nickname=mysql_escape_string($_GET['nickname']);
  $nickname=mysql_real_escape_string($nickname);
  // начисляем валюту
  $query = "UPDATE $table SET `$tablemoney`=`$tablemoney`+'$money' WHERE `username`='$nickname'";
  echo 'OK<br />';
  mysql_query($query) or die(mysql_error());
  mysql_close($connect_to_mysql);
}
?>

Ещё конечно лучше создать отдельную таблицу, и забивать туда ники проголосовавших,
затем сверять всё это дело, и уже выдавать бонус. Допишу как приду с работы.

Автор, добавь в основной пост, с сохранением копирайта конечно :cute:
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх