مستندات

استفاده از پست بک یا بررسی IP برای این که بدانید آیا بازیکن شما رای داده است یا خیر

پست بک

To set your postback URL go to Dashboard, click your site or server then use Edit Configuration option.

1. Set your Postback URL (on TakGames):

http://YOURDOMAIN/postback.php
To set this link use Edit Settings option from your server page.
The name of file postback.php is just an example and it's not mandatory, feel free to name it as you like.


2. Update your voting link and add parameter to the end:

http://www.takgames.ir/CATEGORY/in-SITEID-PARAMETER
Your TakGames voting link should have an extra - and PARAMETER on end. Copy the LINK from Voting Code and add -USERNAME or -123456 or whatever you keep track of (PARAMETER can be only numbers, letters and _ ). For example if I want to check if username `Razor` votes or not I make the link http://www.takgames.ir/CATEGORY/in-SITEID-Razor.

3. Our response:

TakGames will call your site after voting and the callback will look like this link:
http://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
We sent you back the same PARAMETER and the call is made ONLY if the user has voted for you. Your postback.php should UPDATE at this point the user PARAMETER as Valid. In case he didn't voted we don't send any response.


Example:

How your voting link should look like for User ID (first) or Username (second):
http://www.takgames.ir/CATEGORY/in-SITEID-1234
http://www.takgames.ir/CATEGORY/in-SITEID-Razor

Our response, due first or second case, will be:
http://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
http://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
Conclusion: The player with account id 1234 or username Razor has voted for you in case we called your postback link with parameter.
123.123.123.123 is the IP address used by the player to vote on TakGames.
Please read our PHP example to understand how to capture our response. We will send you the http request callback ONLY when the user has voted for you. If you need help setting this up please contact us.

How to fix voting callback on TakGames for Fusion CMS:
If you are using Fusion CMS go to /applications/modules/vote/plugins/takgames.php and change line 21 to this:
return $this->CI->input->ip_address() == gethostbyname('monitor.www.takgames.ir');

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("TAKGAMES_IP", gethostbyname("monitor.www.takgames.ir")); //This is TakGames IP address

$ip_request = $_SERVER['REMOTE_ADDR']; //for Cloudflare $ip_request = $_SERVER["HTTP_CF_CONNECTING_IP"];
if($ip_request == TAKGAMES_IP) //check if response is coming from TakGames
{
	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 TakGames.
	//ignore or log the $ip_request as invalid request in your database
}

بررسی IP

Check user IP voting records directly on our database

Just query this page to use it:

http://www.takgames.ir/check_ip.php?siteid=SITE_ID&userip=USER_IP


The page will return 1 if the user has voted in the last 12 hours and 0 if he did not.
In case of any error like missing parameter or invalid values the page will return blank.
Best practice is to define a delaied time to check for the user IP, 10 minutes after user has voted. To do that you will need to create a function that runs every 10 minutes and checks ONLY the users that voted 10 minutes or more ago.
Probably a good solution for delay check is to Create a Cron Job or Windows Task Scheduler depending on your OS.
Our example is simply just for the call + result but we can help with more if needed. Just contact us.

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(TAKGAMES_CHECK,"http://www.takgames.ir/check_ip.php?siteid=SITEID&userip=".$userip); //replace SITEID with yours
$voted = @file_get_contents(TAKGAMES_CHECK); //check url to see response for UserIP
if($voted)
{
	echo 'Valid! User with IP '.$userip.' has voted!';
}

بررسی امتیاز چیست ؟

این سیستم برای این است که بتوانید بررسی کنید آیا بازیکنی که به سایت ما فرستاده اید به شما رای داده است یا خیر