2010-11-20 36 views
1

JQuery & PHPを使用して、ユーザーがクリックして「好き」のデータベース(またはテキストファイル)に+1を追加するような「好きな」ボタンを作成できますか?そのユーザーの「好きな」ボタンを無効にして、ユーザーが一度クリックできるようにします。私は周りの閲覧とjQueryを使ってクッキーを書くことについていくつかの情報を見つけました:クリック数の制限、制限、無効化

http://jquery-howto.blogspot.com/2010/09/jquery-cookies-getsetdelete-plugin.html

おそらく、などのボタンがクリックされたとき、それは将来のクリックからそれらを防止するであろうユーザーのコンピュータにクッキーを書くことができますか?基本的には、ユーザーが好きなボタンをクリックしたり、データベースの種類にカウントを追加したり、ユーザーのボタンを無効にしたりするだけです。かなりシンプルな私は想像していた - これのためのプラグインのいくつかのタイプが既にあるかもしれませんが、私は何も見つかりませんでした。何か案は?

ありがとうございます!

+2

ユーザーまたはJavaScript(クライアント側)ベースのセキュリティを信頼しないことを忘れないでください。 –

+0

右。 JQueryのエフェクトを使ったより純粋なPHPソリューションが、より良い選択肢になるかもしれません。おそらく、IPに基づいてクリック数を制限するのでしょうか? – opes

答えて

2

jqueryの:

$("button").click(function(){ 
    $(this).remove(); 
    $.post('count.php'); 
}); 

ユーザーは、単にページをリロードすることができますので、任意の実際の検証は、PHP側で発生する必要がありますけれども。

+0

それは理にかなっています。そして検証ではIPアドレスで制限する必要がありますか?それとも別の方法がありますか? – opes

+0

@ダン:あなたのユーザーがサイトに登録されている場合が最善の方法です。そうでなければ、CookieとIP履歴の組み合わせがうまくいくでしょう。 – drudge

+0

多くのユーザーが1つのIP上にいるのは非常に一般的なので、IPアドレスだけで制限しないでください。ネットワーク上の一人の人が投票され、他の人がすべてブロックされた場合、どのくらい嫌なことでしょうか?)代わりに、セッション、他のクッキーまたはユーザー名で制限してください。 –

0

jQueryのone()機能を見てください。 1回の呼び出しでイベントをバインドすることができます。ここでは、ページの読み込みを実行する例を示します。

if (likedBefore) { 
    $("button").addClass("liked"); 
} 
else { 
    $("button").one("click", function() { 
    $(this).addClass("liked"); 
    $.post("count.php"); 
    }); 
} 

サーバー側の検証はもう少し難しいです。それは本当にあなたがこれが必要な安全性にかかっています。