Voting Check

Verwende Postback, CheckIP oder Votifier , um zu sehen, ob Spieler voten oder nicht.

Was ist Voting Check?

Es ist ein Verfahren um zu sehen, ob Spieler für Deine Seite oder Server voten oder nicht, indem der Captcha-Sicherheitscode am Voting Gateway abgefragt wird.

Postback

Um Deine Postback URL einzustellen, gehe zum Bedienfeld, klicke auf Deine Seite oder Server und gehe auf Konfigurationsoptionen bearbeiten.

1. Postback URL einsetzen (on TopG):

http://YOURDOMAIN/postback.php
Um diesen Link einzusetzen, gehe auf ‚Einstellungsoptionen bearbeiten‘ auf Deiner Serverseite.
Der Name der Postback.php-Datei ist nur ein Beispiel und nicht bindend, Du kannst sie nennen wie Du möchtest.


2. Update Deinen Voting-Link und füge am Ende Parameter hinzu:

http://topg.org/CATEGORY/in-SITEID-PARAMETER
Dein TopG Voting Link sollte ein Extra – und PARAMETER am Ende haben. Kopiere den Link vom Voting-Code und füge –USERNAME oder -123456 hinzu, oder was immer Du nachverfolgen willst (PARAMETER können nur Zahlen, Buchstaben und _ sein). Wenn Du z.B. testen willst, ob der Username ‘Razor’ voted oder nicht, erstellst Du den Link http://topg.org/Kategorie/in-SITEID-Razor.

3. Unsere Antwort:

TopG ruft Deine Seite nach dem Voting an, der Rückruf sieht aus wie dieser Link:
http://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
Wir haben Dir dieselben PARAMETER zurückgesendet, der Anruf findet NUR DANN statt, wenn der Nutzer für Dich gevotet hat. Dein Postback.php sollte an diesem Punkt die Nutzer PARAMETER als GÜLTIG UPDATEN. Falls er nicht gevotet hat, senden wir keine Antwort.


Beispiel:

Wie Dein Voting-Link für die Nutzer ID (1.) oder Nutzername (2.) aussehen sollte:
http://topg.org/CATEGORY/in-SITEID-1234
http://topg.org/CATEGORY/in-SITEID-Razor

Unsere Antwort, je nach Fall eins oder Fall zwei lautet:
http://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
http://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
Zusammenfassung: Der Spieler mit der Account ID 1234 oder dem Nutzernamen Razor hat für Dich gevotet, wenn wir Deinen Postback-Link mit Parameter angerufen haben.
123.123.123.123 is the IP address used by the player to vote on Topg.
Bitte lies unser PHP Beispiel, zur Erläuterung, wie Du unsere Antwort einsammeln kannst. Wir senden Dir den http Anfrage Rückruf NUR DANN, wenn der Nutzer für Dich gevotet hat. Wenn Du Hilfe dabei brauchst, diese Funktion einzurichten, kontaktiere uns.

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

Prüfe die Nutzer IP Voting Records direkt auf unserer Datenbank

Um diese Seite zu nutzen, einfach anfragen:

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


Die Seite antwortet mit 1, wenn der Nutzer in den letzten 12 Stunden gevotet hat und mit 0, wenn nicht.
Im Falle eines Fehlers, wie z.B. fehlenden Parametern oder ungültigen Werten antwortet die Seite leer.
Am besten, man legt die Wartezeit fest, nach welcher man die Nutzer ID prüft, 10 Minuten nachdem der Nutzer gevotet hat. Dafür richtet man eine Routine ein, die alle 10 Minuten abläuft und NUR solche Nutzer prüft, die 10 Minuten zuvor oder früher gevotet haben.
Eine gute Möglichkeit für einen verzögerten Check ist ein Cron Job oder die Windows Aufgabenplanung, je nach Betriebssystem.
Unser Beispiel betrifft einfach nur Anfrage + Resultat, aber wir können auch darüber hinaus weiterhelfen. Wende Dich einfach an uns.

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

Für Minecraft verwenden wir das Votifier Plugin. Der Votingprozess läuft folgendermaßen ab:
  1. Dein Spieler gibt seinen Nutzernamen auf unserem Voting Zugang ein.
  2. Wir senden ein Nachricht an Deinen Server, wenn er gevotet hat, damit Du ihn belohnen kannst.
TOP: To auto-fill Minecraft username field change your voting link to this syntax:
http://topg.org/Minecraft/in-SITEID-username

Wie man Votifier aktiviert

Du kannst dieses Plugin auf dem Bedienfeld aktivieren und einstellen, während Du Deinen Server hinzufügst oder editierst.

Plugin herunterladen und installieren

Das Votifier Plugin bekommst Du bei Bukkit oder bei Curse: Download Votifier . Der zweite Schritt ist, Bukkit Foren nach einem gut funktionierenden Votifier Listener zu durchsuchen, der mit Deiner Minecraftversion kompatibel ist.

Hol Dir Deine Votifier Settings

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
Wir empfehlen, Debugging zu aktivieren (debug: true) wenn Du neue Topseiten testest.