I wasn't entirely satisfied with the popup method. Downside to popups; well its annoying; and it's a popup. Firefox blocks popups, noscript blocks popups, this and that blocks popups. You see where I'm going with this. Plus it sticks over your page content which if not your intend, ALSO annoying.
That said most scripts protect by limiting an IP to vote only every 12 hours; since vote sites only allow a vote every 12 hours per IP. Downside is if you are using a vote coin system they can farm coins this way. There are easy alternatives to use an account ID instead; and limit it 12 hours per account. While this works you could be restricting yourself valuable votes from those wannabe sploiters!
Solution: Allow 1 vote every 12 hours per IP/Account. What this script does is if they changed their IP but have already voted on the account; it will mail them something else; perhaps a flask to help them level. You could be cruel and mail nothing; and take the vote as they are trying to cheat, but I think flask would be more encouraging, and not dangerous to your vote coin system.
Another thing is that this does not use a popup window, which means you can put this pretty much any where on your website. Throw it in an IFrame in a table or something whatever works. Granted it takes a little html knowledge to set this up but all in all I find it much more effective and viewer friendly. example site: http://radracer.ipower.com/ I just slapped it on there all quick like (test only) link. If you have any questions feel free to ask, just specify if you are talking to me or the other guy
Run the following SQL under your charLogon Database
http://pastebin.com/f1f338d30Code:CREATE TABLE `voteprotip` ( `acip` varchar(16) character set utf8 collate utf8_unicode_ci NOT NULL, `ctime` int(11) NOT NULL, PRIMARY KEY (`acip`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `voteprotacc` ( `acct` int(10) NOT NULL, `ctime` int(11) NOT NULL, PRIMARY KEY (`acct`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Code:Change line 3, 4, 5, and 6 to your mySql information. Change line 112 to the (top100 vote supplied url) Save text as votescript.php, or change line 131 to the page name you will be using. and as said above include any where on your page. Note: Line 88 contains coin being sent, line 101 contains lesser item when voting on a diff IP