Checagem de Votos

Use Postback, CheckIP ou Votifier para checar se jogadores estão votando ou não

O que é Checagem de Votos?

É um sistema para checar se jogadores Votam ou não em seu site ou servidor digitando o código captcha de segurança no gateway de voto.

Postback

Para configurar sua URL postback vá em Painel, clique no seu site ou servidor e depois use a opção Editar Configurações.

1. Configurar sua URL Postback (no TopG):

http://YOURDOMAIN/postback.php
Para configurar este link, use a opção Editar Configurações da página do seu servidor.
O nome do arquivo postback.php é apenas um exemplo e não é obrigatório, sinta-se à vontade para nomeá-lo como quiser.


2. Atualize seu link de votação e adicione parâmetro ao final:

http://topg.org/CATEGORY/in-SITEID-PARAMETER
Seu link de votação TopG deve ter um - extra e PARÂMETRO no final. Copie o LINK do código de votação e adicione -USUARIO ou -123456 ou qualquer coisa para você manter o controle (PARÂMETRO pode ser apenas números, letras e _). Por exemplo, se eu quiser checar se o usuário `Razor` vota ou não, eu crio o link http://topg.org/CATEGORY/in-SITEID-Razor.

3. Nossa resposta:

TopG irá contatar seu site após votar e a resposta será parecida com este link :
http://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
Nós te enviamos de volta o mesmo PARÂMETRO e o contato é feito APENAS se o usuário votou em você. Seu postback.php deve ATUALIZAR neste momento o usuário PARÂMETRO como Válido. No caso de ele não ter votado, nós não enviamos nenhuma resposta.


Exemplo:

Como seu link de votação deve ser para ID de Usuário (primeiro) ou Nome de Usuário (segundo) :
http://topg.org/CATEGORY/in-SITEID-1234
http://topg.org/CATEGORY/in-SITEID-Razor

Nossa resposta, no primeiro ou segundo caso, será :
http://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
http://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
Conclusão: O jogador de conta id 1234 ou nome de usuário Razor votou em você no caso de termos contatado seu link postback com parâmetro.
123.123.123.123 is the IP address used by the player to vote on Topg.
Por favor, leia nosso exemplo PHP para entender como capturar nossa resposta. Nós enviaremos a você a resposta da solicitação http APENAS quando o usuário votou em você. Se você precisar de ajuda para configurar isto, por favor, entre em contato.

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 and _
	$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
}

CheckIP

Conferir registros de votos por IP de usuário diretamente em nosso banco de dados

Apenas solicite a esta página para usar :

http://topg.org/check_ip.php?siteid=SITE_ID&userip=USER_IP


A página irá retornar 1 se o usuário votou nas últimas 12 horas e 0 se não votou.
Em caso de qualquer erro como parâmetro ausente ou valores inválidos, a página retornará em branco.
A melhor prática é definir um tempo atrasado para checar pelo IP de usuário, 10 minutos após o usuário ter votado. Para fazer isso, você precise criar uma função que roda a cada 10 minutos e checa APENAS os usuários que votaram há 10 minutos ou mais.
Provavelmente uma boa solução para checagem com atraso é Criar uma Tarefa Cron ou Agendador de Tarefas do Windows, dependendo do seu OS.
Nosso exemplo é simplesmente apenas para a chamada + resultado, mas podemos ajudar com mais, se necessário. Apenas entre em contato.

IP Check PHP example

$userip = $_SERVER['REMOTE_ADDR']; //get your player or user IP address
//or if Cloudflare $userip = $_SERVER["HTTP_CF_CONNECTING_IP"];
define(TOPG_CHECK,"http://topg.org/check_ip.php?siteid=SITEID&userip=".$userip); //replace SITEID with yours
$voted = @file_get_contents(TOPG_CHECK); //check url to see response for UserIP
if($voted)
{
	echo 'Valid! User with IP '.$userip.' has voted!';
}

Votifier

Minecraft Votifier

Para Minecraft, usamos um plugin especial chamado votifier. O fluxo do processo de votação é assim:
  1. Seu jogador digita o nome de usuário em nosso Gateway de Votação.
  2. Nós enviamos uma resposta para seu servidor se ele votou para que você possa recompensá-lo.
TOP: To auto-fill Minecraft username field change your voting link to this syntax:
http://topg.org/Minecraft/in-SITEID-username

Como habilitar o Votifier

Você pode habilitar e configurar este plugin no Painel enquanto adiciona ou edita seu servidor.

Baixe e instale o plugin

Você pode conseguir o plugin Votifier a partir do Bukkit ou do Curse: Download Votifier . O segundo passo é procurer nos fóruns bukkit por um bom ouvinte votifier compatível com sua versão do minecraft.

Arrume suas configurações 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
Nós recomendamos fortemente habilitar debugging (debug: true) enquanto estiver testando novos sites.