فحص التصويت

استعمل Postback أو CheckIP أو مؤكد الأصوات لتأكيد ما إذا كان اللاعبين يقومون بالتصويت أم لا

ما هو فحص التصويت?

هو نظام لفحص ما إذا كان اللاعبين يقومون بالتصويت لموقعك أو خادمك بادخال رمز الأمان الصحيح على بوابة التصويت.

Postback

لتحديد رابط postback الخاص بك اذهب إلى اللوحة، ثم اضغط على موقعك أو خادمك واختر خيار تعديل إعدادات التكوين.

1. قم بتحديد رابط Postback الخاص بك (على TopG):

http://YOURDOMAIN/postback.php
لتحديد هذا الرابط قم باختيار خيار تعديل الإعدادات من صفحة خادمك.
اسم الملف postback.php مجرد مثال وليس واجباً، قم بتسميته بحرية كما تحب.


2. قم بتحديث رابط التصويت الخاص بك وإضافة المعلم إلى الأخير.

http://topg.org/CATEGORY/in-SITEID-PARAMETER
يجب أن يحتوي رابط TopG للتصويت الخاص بك على شرطة زائدة وكلمة PARAMETER في آخره. قم بنسخ الرابط من رمز التصويت واضف -USERNAME أو -123456 أو غير ذلك مما تقوم بتتبعه (يمكن لـPARAMETER أن يحتوي فقط على الأرقام والحروف و_ ). على سبيل المثال إذا أردت أنا أن أتأكد من أن اسم المستخدم `Razor` يقوم بالتصويت أم لا، أقوم بتعديل الرابط ليبقى على الشكل التالي http://topg.org/CATEGORY/in-SITEID-Razor.

3. ردنا:

سيتصل TopG بموقعك بعد التصويت وسيكون رد الاتصال على شكل الرابط التالي:
http://YOURDOMAIN/postback.php?p_resp=PARAMETER&ip=USERIP
قمنا بإعادة إرسال نفس المعلم إليك وتم الاتصال فقط في حالة ما إذا قام المستخدم بالتصويت لك فقط. يجب أن يقوم ملف postback.php الخاص بك بتحديث معلم المستخدم وإعلامك بأنه صالح. في حالة ما إذا لم يقم بالتصويت لا نقوم بإرسال أية إجابة.


مثال:

كيف سيظهر لك رابط التصويت الخاص بك في حالة هوية المستخدم (الأولى) أو حالة اسم المستخدم (الثانية):
http://topg.org/CATEGORY/in-SITEID-1234
http://topg.org/CATEGORY/in-SITEID-Razor

ردنا، الذي سيتوجب في الحالة الأولى أو الثانية، سيكون:
http://YOURDOMAIN/postback.php?p_resp=1234&ip=123.123.123.123
http://YOURDOMAIN/postback.php?p_resp=Razor&ip=123.123.123.123
النتيجة: اللاعب صاحب حساب رقم 1234 أو اسم المستخدم Razor قام بالتصويت لك في حال قمنا بالاتصال برابط postback الخاص بك وتعديله بوضع المعلم.
123.123.123.123 is the IP address used by the player to vote on Topg.
يرجى قراءة مثال PHP لفهم كيفية التقاط ردنا. سوف نرسل لك رد طلب HTTP فقط عندما يقوم المستخدم بالتصويت لك. إذا كنت بحاجة إلى مساعدة في هذا الإعداد يرجى الاتصال بنا.

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

تحقق من سجلات التصويت IP المستخدم مباشرة على قاعدة البيانات الخاصة بنا

مجرد الاستعلام هذه الصفحة لاستخدامه:

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


ستعود الصفحة 1 إذا كان تصويت المستخدم في 12 ساعة الماضية و0 إذا لم يفعل.
في حال وجود أي خطأ مثل المعلمة أو غير صالحة القيم المفقودة ستعود الصفحة فارغة.
أفضل الممارسات لتحديد وقت المنأخر للتحقق من وIP المستخدم، و 10 دقيقة بعد تصويت المستخدم . للقيام بذلك سوف تحتاج إلى إنشاء وظيفة التي تدير كل 10 دقيقة وفحص المستخدمين الذين قاموا بالتصويت فقط من10 دقائق أو أكثر قبل.
ربما حل جيد لفحص التأخير هو إنشاء وظيفة كرون أو جدولة المهام ويندوز معتمدا على نظام التشغيل الخاص بك.
مثالنا على ذلك هو ببساطةالإتصال + لكننا يمكن أن نساعدك أكثر إذا لزم الأمر. فقط اتصل بنا

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

نستخدم البرنامج المساعد خاص يسمى votifier من أجل minecraft. تجرى عملية التصويت هو من هذا القبيل:
  1. يدخل لاعبك اسم المستخدم له على بوابة التصويت لدينا.
  2. نرسل ردا على الخادم الخاص بك إذا كان قد تم التصوت حتى تتمكن من مكافأة له.
TOP: To auto-fill Minecraft username field change your voting link to this syntax:
http://topg.org/Minecraft/in-SITEID-username

كيفية تمكين تفعيل مكبر الصوت

يمكنك تمكين ووضع هذا البرنامج المساعد على لوحة القيادة أثناء إضافة أو تعديل الخادم الخاص بك.

تحميل وتثبيت البرنامج المساعد

يمكنك الحصول على البرنامج المساعد تفعيل مكبر الصوت من باكيت أو من كيرس: Download Votifier . الخطوة الثانية هي البحث في منتدى باكيت للعمل على تفعيل مكبر الصوت الجيد من أجل التوافق مع نسخة Minecraft الخاص بك.

الحصول على إعدادات تفعيل الصوت الخاص بك

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
نقترح بشدة تمكين التصحيح (debug: true) أثناء اختبار أهم المواقع الجديدة.