我在我的網站上建立了一個輪詢系統。但爲了確保人們不能再投票,我有知識產權發現機制來收集他們的知識產權並確保他們不會再投票。PHP - 比較字符串與strpos
我這樣做的方式,是我收集他們的IP,然後將它比作一個文本文件,其中有IP。它有一個逗號分隔每個IP。
function getUserIP()
{
//check ip from share internet
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
//to check ip is pass from proxy
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$visitorIp = getUserIP();
$myFile = "ip_polllist.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, 200);
fclose($fh);
$findme = $visitorIp.",";
$mystring = $theData;
echo $mystring;
echo $findme;
$pos = strpos($mystring, $findme);
if($pos === true)
{
die();
}
if($pos == true)
{
die();
}
代碼有什麼問題,爲什麼$pos = false
?
是否有任何輸出或錯誤消息? – ComFreek
沒有任何...當我回聲mystring和findme他們產生相同的結果。 –
你不是限制「每人1票」..這是限制「每公司/機構/辦公室/咖啡廳/移動提供商/等等1票」 –