0

複数のフィールド (企業、製品) を持つ Web サイトがあり、その投票ごとに、ユーザーごとにフィールドに 1 票だけ投票することができます。しかし、私は誰にもこの権利を登録してほしくありません。私の調査によると、それが単一の投票である場合、Cookie が最適なオプションのようです (投票したかどうかを確認し、そうであれば Cookie を追加し、投票させないでください。ただし、1000 件の投票がある場合、どうすればわかりますか1 つの投票に投票したことがあり、その投票に再度投票させない場合、他の投票には?) Cookie は主に 1 人のユーザーを識別するために機能しますが、投票したものと投票していないものを特定するにはどうすればよいですか? ? 個々のモノは、固有の企業 ID によって定義されます。どんな提案もいいでしょう。このサイトで最も重要なことは匿名であるため、登録を求めることはできません。また、彼らが IP を変更したり、Cookie を削除したりできることも知っています。しかし、技術に詳しくないユーザーへの解決策を探しています。

4

1 に答える 1

0

Cookie ID を生成し、この ID に対して投票された投票をサーバーに保存できます。もう 1 つの方法は、投票された投票 ID を連結して Cookie に保存することです。

編集:サンプル実装でJSFIDDLEを追加しました:

$(document).ready(function() {

    var cookiename = "mypolls";

    $('input[type=button]').click(function() {

        var pollId = $(this).parent().attr('id');

        if ($.cookie(cookiename)) {

            var voted = $.cookie(cookiename);

            if (voted.indexOf('|' + pollId + '|') > -1) {

                alert('Already voted!');
                return;
            }
            else {

                voted += pollId + '|';

                // storing updated cookie
                $.cookie(cookiename, voted);
            }
        }
        else {

            // adding cookie
            $.cookie(cookiename, '|' + pollId  + '|');
        }

        alert('Thank you for your vote!');
    });
});​
于 2012-10-13T07:18:29.007 に答える