[Release] Vote-Reward System with PostBack

dota-sdso

Well-Known Member
Joined
Apr 30, 2014
Messages
590
Reaction score
822
KCwCkzcdRb629gqTbAiPmg.png




Здравейте приятели, този път няма да пишем на английски (и без това не го владеем), а ще ги караме да си превеждат с google translator, ако им е интересно какво толкова съм казал :p

Както може би знаете всички споделени вот системи са без postback функции освен платените, които са и криптирани на всичкото отгоре.

Доста време не съм споделял нищо и реших да го направя отново с една много проста система за гласуване, която написах вчера с postback. Опитах се да я направя възможно най-разбираемо и четливо без излишно да усложнявам нещата.

Първо какво е "postback" или на български обратна връзка?
Когато даден вот уебсайт предлага такава услуга, вие имате възможност да си напишете скрипт, който да валидира гласуванията на потребителите ви. На практика днес всички системи за плащане използват обратна връзка и те са автоматичи. В този случай не съм заложил на автоматична, тъй като тези сайтове не са толкова надеждни не се знае дали ще върнат отговор и кога, както системите за плащане. Затова ние няма да чакаме отговор, а ще използваме "ръчна" валидация по IP адрес. Ще изпращаме въпрос и ще чакаме отговор от тяхната база, и в зависимост от резултата ще дадем награда или ще върнем грешка.

Целта
Всеки знае, че реално от хилядите кликвания и "гласувания" за които се дават награди било то кредити, зен или други ние получаваме реални 10-20% гласувания само от съвестните потребители. Целта ни е да даваме награда само за реалните гласове.


Инсталация
Тази системка реално няма никака инсталация, но няколко трябва да се направят за да работи при вас коректно:
  1. Изпълнявате скрипта script.sql в SQL query analizer-a
  2. Промянте данните за връзка в config.php. Ако не искате да ползвате системата отделно и нейният логин панел задайте в конфиг-а сесията, която използва вашият уебсайт
  3. Ръчно трябва да промените линковете в колонки [link] и [backlink] в таблица [vote_info] да съответстват на тези от вашият акаунт. Пример: Числото 93037 е моят акаунт в ТОП 100, трябва да го промените на вашият.
    PHP:
    http://www.top100arena.com/in.asp?id=93037
    - [votelink]
    PHP:
    http://www.top100arena.com/check_ip.asp?id=93037&ip=
    [backlink]
    Както виждате линка за гласуване и този за обратна връзка нямат нищо общо един с друг, затова не променяйте нищо друго освен акаунта си. В противен случай обратната връзка или линка за гласуване може да не работят и резултата ще е (headbang)

*Важно.

На практика можете да си добавите ръчно всякакъв нов линк към уебсайт за гласуване, които поддържат обратна връзка чрез IP проверка и той ще работи. Тук идва и момента да споменем, че тази система така както съм я разписал не съм предвидил опция за гласуване без обратна връзка. Така че нормални линкове към сайтове за гласуване, които не предлагат обратна връзка няма да работят ако ги добавите в бъдеще.


Ще се опитам да го обясня принципа на работа на модула за да можете сами да се ориентирате в кода и да го нагласите според нуждите си, това е лесно когато знаете как работи и каква логика следва

  1. При натискане на бутона гласуване на потребителя се отваря нов прозорец към уебсайта за гласуване, в този момент в първият прозорец скрипта променя бутона от "Vote" на "Get Cedits" и записва в таблица vote_logs акаунт името, дата на гласуване, IP адреса, ID на вот линка и празно поле в колонка "next_vote"
  2. При натискане на бутона "Get Cedits" скрипта изпраща заяква към вот сайта и очаква отговор 0 или 1. Ако отговорът е 1-ца значи потребителят е гласувал, ъпдейтваме next_vote колонката с времето в което е гласувал реално + времето което сайта дава до следващият вот. В случай, че отговора е 0- това означава че потребителят не е гласувал и скрипта изтрива записа с празната колонка next_vote и връща буона Vote за да може потребителят да гласува нормално. Тук съм предвидил и възможност за правене на логове, наказания, банове и така нататъка, които можете да си развиете в последствие.


Добавил съм и един файл ranking.php тъй като знам, че повечето от вас имат ранкинги на гласуващите а можете да срешнете трудности със заявката.
PHP:
mssql_query("Select count(account) as total,account from vote_logs group by account order by total desc");


Това е всичко за което се сещам. По принцип не мисля да го развивам, но ако има някакви проблеми по функционалноста ще се фикснат.
 

Attachments

  • VoteReward With PostBack.rar
    7.7 KB · Views: 123

kontris21

Member
Joined
Sep 4, 2016
Messages
41
Reaction score
4
@r00tme not bad system but you need to login about 5 times, otherwise you didn't connect to the system with properly account and password.. :) Something not good.
 

dota-sdso

Well-Known Member
Joined
Apr 30, 2014
Messages
590
Reaction score
822
@r00tme not bad system but you need to login about 5 times, otherwise, you didn't connect to the system with properly account and password.. :) Something not good.

kontris21, press the button "Login Now" to submit the form and you won't have a problem. The form will not be submitted but fields cleared with pressing Enter with the keyboard. In short: don't relay in keyboard events but use the button provided with the form. To me, this is the right behaviour but if it does not fulfil your requirements feel free to edit the code.

My personal advice is to use your own website login session by replacing
Code:
 $options['web_session']    = 'username';           // Web Session
from the config. In this case, as soon the user is logged into your website will have access to the voting system without an additional login. Even better... take the module itself and build it into your website without login system.

Having an external voting system has always been odd to me. It has to be part of your website.

P.S.
HTML:
<button onclick="functions('login')"  type="button" class="btn btn-primary btn-sm">Login Now</button>
To help you out a bit about what exactly causes the "problem": The form use button tag with type button instead of submitting, because it is not essential if you click it. You could change the button type to submit, add an additional form field input (which could be hidden) or add a javascript event listener whichever is easier for you (wonder)
 
Last edited:
  • Love
Reactions: kontris21

hA7SH9dks

Member
Joined
Sep 30, 2019
Messages
361
Reaction score
9
Можели да Ви Попитам?
В Сайтовете където поддържат postback има поле където трябва да се въведе линк към системата за гласуване на сайтат ли?
какъв по-точно линк трябва да се въведе в полето postback на самият топ100 където го поддържа ?
където пише postback url или нещо от сорта ?
edit: или то е необходимо само когато има "автоматична валидация" и трябва да се чака отговор от тяхната БД, като е проверката по ип имали значение какво пише в полето postback URL на самият топ100?
 

r00tme

Member
Joined
Feb 4, 2021
Messages
73
Reaction score
63
Няма стандартизация, както и не всеки вот сайт предлага такава услуга. Всеки вот сайт си има документация, която обяснява как се ползва техният линк за обратна връзка. Иначе специално за тази вот система, да не забравяме, че е писана преди повече от 5 години (релийса е поне половин година след като е тествана) и е съвсем възможно да не е актуално днес.

Иначе TOP100arena обяснява как се ползва тяхното API в момента, при самото пускане на реклама. Ако се загледаш линка няма нищо общо с този, който е в обясненията на релийса, така че този скрипт по този начин няма да работи, ще иска промени.

3d743a043be0be7aabf667846a297261.png
 
  • Love
Reactions: hA7SH9dks