Что такое проверка голосования?
Это система, позволяющая проверить, голосуют ли игроки за ваш сайт или сервер, путем введения правильного кода безопасности капча при голосовании.Методы
Postback PHP
Whitelist IP: monitor.topg.org in your Firewall Settings.
Чтобы установить ваш URL обратной отправки данных, перейдите в личный кабинет, нажмите на ваш сайт или сервер, затем используйте опцию Изменить конфигурацию.
Чтобы установить эту ссылку, воспользуйтесь опцией Изменить настройки на странице вашего сервера.
Имя файла postback.php - просто пример и не обязательно, можете назвать файл как вам угодно.
Ваша ссылка для голосования TopG должна иметь дополнительный знак - и ПАРАМЕТР в конце. Скопируйте ССЫЛКУ из кода голосования и добавьте -USERNAME, или -123456, или что вам удобнее отслеживать (ПАРАМЕТР может содержать только цифры, буквы и _). Например, если я хочу проверить, голосует ли пользователь под именем `Razor`, я делаю ссылку https://topg.org/CATEGORY/in-SITEID-Razor.
https://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
Мы отправили вам обратно тот же ПАРАМЕТР, и вызов совершается ТОЛЬКО если пользователь проголосовал за вас. Ваш postback.php на этом этапе должен ОБНОВИТЬ пользовательский ПАРАМЕТР как Действительный. В случае, если пользователь не голосовал, мы не отправляем никакого ответа.
https://topg.org/CATEGORY/in-SITEID-1234
https://topg.org/CATEGORY/in-SITEID-Razor
Наш ответ в первом или втором случае будет:
https://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
https://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
Вывод: Игрок с ID аккаунта 1234 или именем пользователя Razor проголосовал за вас в случае, если мы вызвали вашу ссылку обратной отправки данных с параметром.
123.123.123.123 is the IP address used by the player to vote on Topg.
Пожалуйста, прочтите наш пример PHP, чтобы понять, как зафиксировать наш ответ. Мы вышлем вам HTTP-запрос обратного вызова, ТОЛЬКО если пользователь проголосовал за вас. Если вам нужна помощь с настройкой, пожалуйста, свяжитесь с нами.
How to fix voting callback on topg for Fusion CMS:
If you are using Fusion CMS go to /applications/modules/vote/plugins/topg.php and change line 21 to this:
Чтобы установить ваш URL обратной отправки данных, перейдите в личный кабинет, нажмите на ваш сайт или сервер, затем используйте опцию Изменить конфигурацию.
1. Установите ваш URL-адрес обратной отправки данных (на TopG):
https://YOURDOMAIN/postback.phpЧтобы установить эту ссылку, воспользуйтесь опцией Изменить настройки на странице вашего сервера.
Имя файла postback.php - просто пример и не обязательно, можете назвать файл как вам угодно.
2. Обновите ссылку для голосования и добавьте параметр в конце:
https://topg.org/CATEGORY/in-SITEID-PARAMETERВаша ссылка для голосования TopG должна иметь дополнительный знак - и ПАРАМЕТР в конце. Скопируйте ССЫЛКУ из кода голосования и добавьте -USERNAME, или -123456, или что вам удобнее отслеживать (ПАРАМЕТР может содержать только цифры, буквы и _). Например, если я хочу проверить, голосует ли пользователь под именем `Razor`, я делаю ссылку https://topg.org/CATEGORY/in-SITEID-Razor.
3. Наш ответ:
TopG будет вызывать ваш сайт после голосования, и обратный вызов будет выглядеть как эта ссылка:https://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
Мы отправили вам обратно тот же ПАРАМЕТР, и вызов совершается ТОЛЬКО если пользователь проголосовал за вас. Ваш postback.php на этом этапе должен ОБНОВИТЬ пользовательский ПАРАМЕТР как Действительный. В случае, если пользователь не голосовал, мы не отправляем никакого ответа.
Пример:
Как должна выглядеть ваша ссылка для голосования для ID пользователя (первая) или имени пользователя (вторая):https://topg.org/CATEGORY/in-SITEID-1234
https://topg.org/CATEGORY/in-SITEID-Razor
Наш ответ в первом или втором случае будет:
https://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
https://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
Вывод: Игрок с ID аккаунта 1234 или именем пользователя Razor проголосовал за вас в случае, если мы вызвали вашу ссылку обратной отправки данных с параметром.
123.123.123.123 is the IP address used by the player to vote on Topg.
Пожалуйста, прочтите наш пример PHP, чтобы понять, как зафиксировать наш ответ. Мы вышлем вам HTTP-запрос обратного вызова, ТОЛЬКО если пользователь проголосовал за вас. Если вам нужна помощь с настройкой, пожалуйста, свяжитесь с нами.
How to fix voting callback on topg for Fusion CMS:
If you are using Fusion CMS go to /applications/modules/vote/plugins/topg.php and change line 21 to this:
return $this->CI->input->ip_address() == gethostbyname('monitor.topg.org');
postback.php example
define("DEBUG", 0); //set to 1 to enable debuger
define("LOG_FILE", "_postback.log"); //if debug is enabled will create this file for logs
define("TOPG_IP", gethostbyname("monitor.topg.org")); //This is TopG IP address
$ip_request = $_SERVER['REMOTE_ADDR']; //for Cloudflare $ip_request = $_SERVER["HTTP_CF_CONNECTING_IP"];
if($ip_request == TOPG_IP) //check if response is coming from TopG
{
if(DEBUG == true) {
error_log(date('[Y-m-d H:i] ')."[OK] Valid callback: $ip_request".PHP_EOL, 3, LOG_FILE);
}
//get the parameters response from us and clean them
$p = preg_replace('/[^A-Za-z0-9\_\-]+/','',$_GET['p_resp']); //can be only numbers letters, minus and underscore
$user_ip = preg_replace('/[^0-9\.]+/','',$_GET['ip']); //can be only numbers and dots
//connect to database
//if using MySQL uncomment the following lines (remove slashes)
//$p = mysql_escape_string($p);
//$user_ip = mysql_escape_string($user_ip);
//or if using MySQLi (change $DB name to correct one)
//$p = $DB->real_escape_string($p);
//$user_ip = $DB->real_escape_string($user_ip);
if(DEBUG == true) {
error_log(date('[Y-m-d H:i] ')."[GET] Parameters [p_resp]=$p [ip]=$user_ip".PHP_EOL, 3, LOG_FILE);
}
//Note: we send the parameters $_GET['p_resp'] and $_GET['ip'] back ONLY! if user $p has voted
//here run your code
//first you should check if account $p is valid and exists in your database
//also check if the user has voted in the last 12 hours
//give points to user $p that voted with ip $user_ip
//close database
}
else
{
if(DEBUG == true) {
error_log(date('[Y-m-d H:i] ')."[Invalid] Invalid request: $ip_request".PHP_EOL, 3, LOG_FILE);
}
//handle invalid request when callback is NOT from TopG.
//ignore or log the $ip_request as invalid request in your database
}
Minecraft Votifier
Minecraft Votifier
Whitelist IP: monitor.topg.org in your Firewall Settings.Для Minecraft мы используем специальный плагин под названием votifier. Процесс голосования проходит так::
- Ваш игрок вводит свое имя пользователя в нашем шлюзе голосования
- Если он голосовал, мы посылаем ответ на ваш сервер, чтобы вы могли его вознаградить.
https://topg.org/Minecraft/in-SITEID-username
Как включить Votifier
Вы можете включить и настроить этот плагин в личном кабинете при добавлении или редактировании сервера.Скачать и установить плагин
Вы можете найти плагин votifier на Bukkit или Curse: Download Votifier . Второй шаг - найти на форумах Bukkit хорошо работающий votifier listener, совместимый с вашей версией Minecraft.Получить настройки votifier
PUBLIC KEY it's a long string file located: /plugins/Votifier/rsa/public.key. Copy-paste ALL of it.VOTIFIER IP and VOTIFIER PORT settings can be found inside: /plugins/Votifier/config.yml
host: VOTIFIER IP //your external IP address, the one used to connect to play port: VOTIFIER PORT //the default votifier port is 8192 debug: false //set to true to see connection details in console listener_folder: plugins/Votifier/listenersМы настоятельно рекомендуем включить отладку (Debug: True) во время тестирования новых топ-сайтов.