2014-05-13 42 views
-1

我有一個應用程序與人們可以投票的圖像,我想檢查用戶的IP,不允許他再次投票。什麼是最好的辦法呢,我應該得到的IP和填寫.txt文件,每次用戶試圖投票生病檢查該文件,如果該IP不在文件中允許他?還是有更好的解決方案獲取用戶的IP地址,並檢查是否讓他再次投票php

回答

3

可以得到用戶的是這樣的:

$users_ip = $_SERVER['REMOTE_ADDR']; 

不要使用文本文件(因爲這將有損於你的硬盤,太多的I/O);而是使用數據庫。

當用戶到達投票腳本:

  • 檢查這個IP有一個記錄在你的數據庫表
  • 如果IP有一個記錄,檢查當用戶最後一次投票,並比較當前時間
  • 如果從他的最後一投的時間跨度>它應該是什麼,讓他投,更新數據庫表爲IP「last_vote」

  • 如果用戶沒有在數據庫記錄(第一選票) ;用ip和當前時間戳插入分表表格行

+0

謝謝你看起來像一個堅實的解決方案,只有你有一個額外的信息。如果用戶投票,他不能再投票,我想讓我的生活更輕鬆:),只是把IP放在數據庫中,然後檢查IP是否在數據庫中有記錄,如果它已經通知用戶他已經投票。 – Alexandros

0

您還可以將cookie存儲一段時間間隔。如果用戶爲某個問題投票,那麼就爲該問題保存一個特定的cookie。

setcookie('voted'.$_POST['qid'], 'yes', time() + 4800 , "/"); 

如果問題是新的,那麼用戶可以投票。

+0

基於cookie的驗證是壞主意。用戶可以使用不同的瀏覽器或使用私人模式(FireFox)或隱身模式(Chrome)跳過/跳過它。 – Latheesan