Verifica Voturi

Foloseste Postback, CheckIP sau Votifier sa verifici daca jucatorii voteaza sau nu.

Ce este Verificarea Voturilor?

Este un sistem prin care se verifica daca jucatorii voteaza sau nu pentru siteul sau serverul tau prin introducerea corecta a codului de securitate pe pagina noastra de vot.

Postback

Pentru a activa postback URL mergi in Panou Utilizator si foloseste optiunea Edit corespunzatoare siteului sau serverului.

1. Seteaza Postback URL (pentru TopG):

http://YOURDOMAIN/postback.php
Pentru a seta acest link foloseste optiunea Edit din Panou Utilizator corespunzatoare serverului tau.
Numele fisierului postback.php este doar demonstrativ si poate fi schimbat dupa cum se doreste.


2. Actualizeaza link-ul tau de vot si adauga parametrul la sfarsit:

http://topg.org/CATEGORY/in-SITEID-PARAMETER
Link-ul tau de vote pentru TopG trebuie sa aiba un extra -PARAMETER la sfarsit. Copie LINK-ul din Cod de Votare si pune -USERNAME sau -123456 sau ce vrei sa tii ca evidenta. (PARAMETER poate fi doar numere, litere si _ ). De exemplu doresti sa verifici daca utilizatorul cu nume `Razor` a votat sau nu genereaza link-ul astfel http://topg.org/CATEGORY/in-SITEID-Razor.

3. Raspunsul nostru:

TopG va apela siteul tau doar daca votul este valid si apelul va arata astfel:
http://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
Trimitem inapoi acelasi PARAMETER si apelul este realizat DOAR DAVA jucatorul a votat corect. Fisierul tau postback.php ar trebui sa ACTUALIZEZE in acel moment utilizatorul PARAMETER va fiind Valid. Daca acesta nu a votat, nu trimitem nici un raspuns/apel.


Exemplu:

Cum ar trebui sa arate link-ul tau de vote pentru User ID (primul exemplu) sau Username (al doilea):
http://topg.org/CATEGORY/in-SITEID-1234
http://topg.org/CATEGORY/in-SITEID-Razor

Raspunsul nostru, dupa vaz, primul sau al doilea, va fi:
http://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
http://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
Concluzie: Jucatorul cu User ID 1234 sau Username Razor a votat pentru tine si in acest caz am apelat postback-ul tau si am retransmis inapoi parametrul.
123.123.123.123 is the IP address used by the player to vote on Topg.
Te rugam sa citesti exemplul noastru in PHP example pentru a intelege cum sa capturezi raspunsul. Trimitem raspunsul HTTP doar can jucatorul voteaza valid. Daca ai nevoie de asistenta pentru a instala acest system contacteaza-ne.

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
}

Votifier

Minecraft Votifier

Pentru Minecraft folosim un plugin special nummit votifier. Procesul de vot se desfasoara in felul urmator:
  1. Jucatorul introduce username-ul pe pagina noastra de vot.
  2. Trimitem raspuns catre serverul tau daca a votat sau nu.
TOP: To auto-fill Minecraft username field change your voting link to this syntax:
http://topg.org/Minecraft/in-SITEID-username

Cum sa activezi Votifier

Poti activa si seta acest plugin din Panoul Utilizatorului prin functia Edit.

Descarca si instaleaza plugin-ul

Poti gasi acest plugin gratuit pe forumul Bukkit sau pe Curse: Download Votifier . Al doilea pas este sa cauti in comunitatea bukkit un votifier listener compatibil cu versiunea ta de minecraft.

Setarile tale pentru 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
Recomandam sa activati modul debug (debug: true) pentru a testa la inregistrarea pe topuri noi.