- 締切済み
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の別のパソコンから投票する場合はきちんと初回として処理されているので、 同じようにできればきちんと識別できたら良いなと思っています。 ご回答、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tracer
- ベストアンサー率41% (255/621)
- t_ohta
- ベストアンサー率38% (5320/13881)
- kamikami30
- ベストアンサー率24% (812/3335)
- agunuz
- ベストアンサー率65% (288/438)
お礼
ご回答ありがとうございます。 >IPアドレスやUserAgent等の組み合わせで一意性を判断するしか無いで >しょう。 >「stampers」もUA変えたりCookie削除したりすると複数回投票できる >ようですから、同じような考えで判断してるんじゃないでしょうか。 なるほど。 単にcookieのみよりもJavascriptのUserAgentを組み合わせた方が強固になりますね。 その方向性でプログラムを組もうと思います。