Здравейте приятели, този път няма да пишем на английски (и без това не го владеем), а ще ги караме да си превеждат с google translator, ако им е интересно какво толкова съм казал
Както може би знаете всички споделени вот системи са без postback функции освен платените, които са и криптирани на всичкото отгоре.
Доста време не съм споделял нищо и реших да го направя отново с една много проста система за гласуване, която написах вчера с postback. Опитах се да я направя възможно най-разбираемо и четливо без излишно да усложнявам нещата.
Първо какво е "postback" или на български обратна връзка?
Когато даден вот уебсайт предлага такава услуга, вие имате възможност да си напишете скрипт, който да валидира гласуванията на потребителите ви. На практика днес всички системи за плащане използват обратна връзка и те са автоматичи. В този случай не съм заложил на автоматична, тъй като тези сайтове не са толкова надеждни не се знае дали ще върнат отговор и кога, както системите за плащане. Затова ние няма да чакаме отговор, а ще използваме "ръчна" валидация по IP адрес. Ще изпращаме въпрос и ще чакаме отговор от тяхната база, и в зависимост от резултата ще дадем награда или ще върнем грешка.
Целта
Всеки знае, че реално от хилядите кликвания и "гласувания" за които се дават награди било то кредити, зен или други ние получаваме реални 10-20% гласувания само от съвестните потребители. Целта ни е да даваме награда само за реалните гласове.
Инсталация
Тази системка реално няма никака инсталация, но няколко трябва да се направят за да работи при вас коректно:
- Изпълнявате скрипта script.sql в SQL query analizer-a
- Промянте данните за връзка в config.php. Ако не искате да ползвате системата отделно и нейният логин панел задайте в конфиг-а сесията, която използва вашият уебсайт
- Ръчно трябва да промените линковете в колонки [link] и [backlink] в таблица [vote_info] да съответстват на тези от вашият акаунт. Пример: Числото 93037 е моят акаунт в ТОП 100, трябва да го промените на вашият.
PHP:http://www.top100arena.com/in.asp?id=93037
PHP:http://www.top100arena.com/check_ip.asp?id=93037&ip=
Както виждате линка за гласуване и този за обратна връзка нямат нищо общо един с друг, затова не променяйте нищо друго освен акаунта си. В противен случай обратната връзка или линка за гласуване може да не работят и резултата ще е (headbang)
*Важно.
На практика можете да си добавите ръчно всякакъв нов линк към уебсайт за гласуване, които поддържат обратна връзка чрез IP проверка и той ще работи. Тук идва и момента да споменем, че тази система така както съм я разписал не съм предвидил опция за гласуване без обратна връзка. Така че нормални линкове към сайтове за гласуване, които не предлагат обратна връзка няма да работят ако ги добавите в бъдеще.
Ще се опитам да го обясня принципа на работа на модула за да можете сами да се ориентирате в кода и да го нагласите според нуждите си, това е лесно когато знаете как работи и каква логика следва
- При натискане на бутона гласуване на потребителя се отваря нов прозорец към уебсайта за гласуване, в този момент в първият прозорец скрипта променя бутона от "Vote" на "Get Cedits" и записва в таблица vote_logs акаунт името, дата на гласуване, IP адреса, ID на вот линка и празно поле в колонка "next_vote"
- При натискане на бутона "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");
Това е всичко за което се сещам. По принцип не мисля да го развивам, но ако има някакви проблеми по функционалноста ще се фикснат.