PHPで回数制限をつけた投票プログラムの作成
PHPで簡易的な投票プログラムを用いたサイトを作成しています。
様々な投稿に対し、
Facebookのいいね!やtwitterのRTのように、
それぞれに投票できるようなプログラムを作成しました。
具体的には以下の通りです。
・会員登録機能のあるサイトだが、ゲストでも投票ができる
・1つの記事につき、1人1日1回まで投票可
・ゲスト状態とログイン状態を使い分ければ2ユーザーと捉え、1日2回分投票可
・ログイン状態の場合、DBにIDと記事番号と投票日のログを残す
・ゲスト状態の場合、ゲストIDを発行し、セッション変数に保存、DBにゲストIDと記事番号と投票日のログを残す
ここで問題となるのが、
ゲストIDの発行が、クッキーを削除してしまえば何度でもできてしまうため、クッキーを削除することでゲストの場合、何回でも投票できてしまうという点です。
このままゆるい制限でもいいのかなーとも思ったのですが、
やはり厳密にしておかねば、
サーバーへの負荷にもなりかねないと思い、
何か良い手はないかと質問させて頂きました。
ゲストログ保存用のテーブルのみ、IPを保存し、IPで制限するというのも考えたのですが、
複数PCで同一IPを使用しているゲストの場合に動作が厳密すぎて投票ができなくなりかねない気がします。
何か良い手はないでしょうか?
補足ですが、PHPで作られているかはわかりませんが、
「stampers」というLINEスタンプの投票サイトのLOVEボタンが、
クッキーを削除してもログが残っており、且つ、
同一IPの別のパソコンから投票する場合はきちんと初回として処理されているので、
同じようにできればきちんと識別できたら良いなと思っています。
ご回答、よろしくお願いします。
補足
早速のご回答ありがとうございます。 一からプログラムを作らないでも実装できるように、 このようなフォームを探していますが、ありますでしょうか? 有料でも構いません。 セッションとクッキーによる複数回投票防止策の違いを教えていただけるでしょうか? またIPアドレスの識別による複数回投票防止は可能でしょうか?