- Баллы
- 103
- Имя в Minecraft
- Marshal_Xaker
Доброго времени суток. В общем, понадобился как-то скрипт поощрения (денежный) от топа want2vote. Конечно же отправился на RuBukkit и нашёл тему, но файл был удалён
Взял их (топа) срипт для поощрения с плагином, переписал SQL запросик, добавил пару переменных для удобства. У итоге получился вот такой скриптик:
Думаю проблем с установкой элементарного скрипта не возникнет.
Защита от накрутки денег by RomaZveR.
Создаём директорию (например: vote)
заливаем туда и конфигурируем скрипт (пусть будет название vote.php)
создаём файл index.html с любым содержимым (защищаемся от просмотра каталога)
создаём в этой папке файл .htaccess, заполните его следующим содержимым:
(может быть это просто ip адрес их сайта, если нет - спросите у поддержки, если ботов у них несколько, то можете добавить ещё строчек для разрешения.)
Версия скрипта с проверкой удалённого сервера:
Взял их (топа) срипт для поощрения с плагином, переписал 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);
}
?>
Вложения:
Последнее редактирование:


Главное, то что только ник игрока передаётся.
Никто кроме тебя ссылку на скрипт знать не будет.