Oylama Kontrolü Nedir?

Oylama ağ geçidinde oyuncuların doğru güvenlik kodunu girerek siteniz veya sunucunuz için Oy verip vermediklerini kontrol eden bir sistemdir.

Postback PHP

Whitelist IP: monitor.topg.org in your Firewall Settings.

Postback URL'nizi ayarlamak için Kontrol Paneli'ne gidin ve sitenizin veya sunucunuzun altındaki Düzenle seçeneğine tıklayın.

1. Postback URL'nizi belirleyin (TopG'de):

https://YOURDOMAIN/postback.php
Bağlantınızı belirlemek için sunucu sayfanızdaki Ayarları Düzenle seçeneğine tıklayın.
Postback.php dosyasının adı sadece bir örnektir, istediğiniz gibi adlandırabilirsiniz.


2. Oylama bağlantınızı güncelleyin ve sonuna parametre ekleyin:

https://topg.org/CATEGORY/in-SITEID-PARAMETER
TopG oylama bağlantınızın sonunda ekstra bir PARAMETRE bulunmalıdır. Oylama Kodu kısmından BAĞLANTIYI kopyalayın ve -KULLANICIADI veya -123456 veya izlediğiniz herhangi bir şeyi ekleyin (PARAMETRE'de yalnızca rakam, harf ve _ olabilir). Örneğin, `Razor` kullanıcı adının oy kullanıp kullanmadığını kontrol etmek isterseniz bağlantıyı https://topg.org/CATEGORY/in-SITEID-Razor olarak değiştirin.

3. Yanıtımız:

TopG oylamadan sonra sitenizi arayacak ve geri arama bağlantısı bunun gibi olacaktır:
https://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
Aynı PARAMETRE'yi size geri gönderilir ve SADECE kullanıcı size oy verdiyse arama yapılır. Postback.php dosyanız bu noktada kullanıcı PARAMETRE'sini uygun olarak GÜNCELLEMİŞ olmalıdır. Oy verilmediği takdirde cevap gönderilmemektedir.


Örnek:

Oylama bağlantınız Kullanıcı Kimliği (ilk) veya Kullanıcı adı (ikinci) için nasıl görünmeli:
https://topg.org/CATEGORY/in-SITEID-1234
https://topg.org/CATEGORY/in-SITEID-Razor

Birinci veya ikinci durumda cevabımız:
https://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
https://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
Sonuç: Hesap kimliği 1234 veya kullanıcı adı Razor olan oyuncu Postback bağlantınızı parametre ile getirdiğimiz için size oy verdi.
123.123.123.123 is the IP address used by the player to vote on Topg.
Yanıtımızı görüntülemek için lütfen PHP örneğimizi okuyun. SADECE kullanıcı sizin için oy verdiğinde http isteği geri araması gönderilir. Bunu ayarlarken yardıma ihtiyaç duyarsanız lütfen bizimle iletişime geçin.

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 için oylayıcı adı verilen özel bir eklenti kullanıyoruz. Oylama sürecinin akışı:
  1. Oyuncunuz kullanıcı adını Oylama Ağ Geçidimize giriyor.
  2. Sunucunuza oy verdiyse, onu ödüllendirebilmeniz için yanıt gönderiyoruz.
TOP: To auto-fill Minecraft username field change your voting link to this syntax:
https://topg.org/Minecraft/in-SITEID-username

Oylayıcı Nasıl Aktif Hale Getirilir

Sunucunuzu eklerken veya düzenlerken bu eklentiyi Kullanıcı Paneli'nde etkinleştirebilir ve ayarlayabilirsiniz.

Eklentiyi indirin ve yükleyin

Bukkit'ten veya Curse'den oylayıcı eklentisi edinebilirsiniz: Download Votifier . İkinci adım, bukkit forumlarında minecraft sürümünüzle uyumlu bir oylama kaydedicisi aramaktır..

Oylayıcı ayarlarınızı alın

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
Yeni siteleri test ederken hata ayıklamayı (debug: true) etkinleştirmenizi öneririz.