2011-02-06 6 views
2

私はあなたがログインする必要がない投票システムを持っています。私は、IPや何らかの種類のものをブロックすることによって、1日に1回投票できる場所にどのように設定できるのかを知りたいのです。私は、データベースを持っていないことを好む人が再び投票できる時間を設定するにはどうすればよいですか?

<script type="text/javascript"> 

var clicks = 0; 
function linkClick(){ 
document.getElementById('clicked').value = ++clicks; 
} 

document.write('<a href="#" onclick="linkClick()">Vote Now!</a>'); 

$('#clicked').parent().bind('click', function(evt) { 
$(this).unbind('click'); 
/* do long time task.... 

evt.preventDefault(); 
}); 


</script> 

You have clicked the link <input id="clicked" size="3" onfocus="this.blur();" value="0" > times 

このコードそれだけで一度だけ使用の投票をできるようになるスタンドとして、私は事前にあなたに感謝し、それが24時間ごととhtmlでのようにしたいと思い

+1

PHPなどのサーバーサイドスクリプトを使用する方がよいと思います。誰でもHTMLに侵入して、何度でも投票したいと思った回数だけ投票することができます。 – JCOC611

答えて

0

あなたはクッキーを作成し、毎日それがすでに投票しているかどうかを確認することができます。 JCO611は正しいが、これは簡単にバイパスされる。私はいくつかのサーバー側のコードを使用することをお勧めします。 JavaScriptでクッキーの詳細について

http://www.quirksmode.org/js/cookies.html

+0

2つありがとう:私は私のログインシステムが完璧になっている間、私はいつもクッキーを使用するつもりです:) – Mason

+0

これがなぜ投票されなかったのか分かりません。 OPはJavascriptでそれをやる方法を尋ねました。私は答えを出し、そのようにすることの問題について彼に警告した。 – Roloc

3

それはjavascriptやHTMLで安全な方法でこれを実装することはできません。その理由は、WebユーザーとしてCookieをクリアしたり、新しいブラウザを開いたり、ユーザーインターフェイスを使わなくてもサーバーをプログラムで呼び出すことができるからです。これは、Webページがどのようなものかにかかわらず、実際に私が1日に2回提出することを防ぐために、サーバー上に何かが必要であることを意味します。

ユーザーログインを使用して、ユーザーが2回転記していないことを確認することをお勧めします。

+0

ユーザログインが良い、ユニークなコンピュータIDハッシュも良いアイデア、MACアドレスは確かですが、IPアドレスはNATを使用して実際に誰もがかなり毛深くなります。 –

+0

それは本当です、私は他の一意の識別子を使用するあなたの考えが好きです、私はあなたが他のコンピュータまたは新しいログインを使用して人の問題にぶつかるかのいずれかの方法を考える。ある時点で、あるユーザーが別のユーザーと違うかどうかは実際には分かりません。 –

関連する問題