You appear to be trying to use the REMOTE_ADDR from the browser to determine whether someone has voted or not. There are (at least) two problems with this.

First, a single (external) IP is often shared by many users. In companies or student dorms and the like, using NAT to allow multiple internally networked machines to access the internet via a single connection or corporate firewall etc. This means that only the first user to vote from within such an IP sharing group would be permitted to vote.

The second is that many home users still use dial-up connections and get allocated a different IP (via DHCP) each time they connect. I am one such user. In order for me to vote many times under your current scheme, I simply have to dis- and re-connect and click the vote button again. There is very little you can do to stop this using the IP alone.

Almost any scheme will require you to use a userid/password and/or a cookie to validate the voter. The former is non-trivial to implement though a search on merlyn's web-site will turn up several hits for schemes of varying complexity. The latter will fall down if your users are the paranoid types (like me) that habitually run with cookies disabled except on sites I have some modicum of trust in.


Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!

In reply to Re: Preventing multiple votes by same user effeciently by BrowserUk
in thread Preventing multiple votes by same user effeciently by carthag

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.