2011-06-17 36 views
0

有人可以幫我用我的if statement?我試圖在人們訪問我的網站時進行兩項檢查。第一個檢查連接類型,如果它不是寬帶連接,它將標題重定向到谷歌。第二個檢查ip地址是否是一個已知的代理,如果是的話,它會發送指向谷歌的頭。我的問題是,無論它是否代理,它總是發送頭文件,連接類型也一樣,不管它發送頭文件是哪一個。我究竟做錯了什麼?基本如果聲明

HERE ARE THE OPTIONS FOR $TYPE. 
$type = "Corperate"; 
$type = "Dial-Up"; 
$type = "Broadband"; 


//Block based on connection type 
if ($type != "Broadband") { 
    header('Location: http://www.google.com'); 
} else { 
    //Do Nothing 
} 


HERE ARE THE OPTIONS FOR $PROXY. 
$proxy = "Suspected Network Sharing Device"; 
$proxy = "Known Proxy"; 
//Block based on proxy 
if (strlen($proxy) > 0) { 
    header('Location: http://www.google.com'); 
} else { 
    //Do nothing 
} 
+1

沒有足夠的信息。你能打印'$ type'和'$ proxy'的值並將它們發佈到這裏嗎? – Chetan 2011-06-17 03:08:06

+0

我假設您已將您的評論與代碼混合在一起。正如所寫,這不會運行。在測試之前,您似乎將$ type設置爲「寬帶」,如果它等於「寬帶」,並且對於測試$代理也是如此。請分開您的代碼和筆記。 – ben 2011-06-17 03:10:25

+0

如果未設置$ proxy,它是否爲空? – NullRef 2011-06-17 03:14:28

回答

0

既不要你的$代理的選項有長度> 0?

我覺得應該是

if($proxy != "known_proxy"){ 
    header('Location:http://www.google.com') 
} 
0

使用

if (!empty($proxy)) { 
    header('Location: http://www.google.com'); 
} 

代替。

此外,我甚至不確定這是你的問題,因爲兩個代理「選項」不是空字符串,因此有一個strlen() > 0

,如果語句將返回false的唯一方法是,如果你是做$proxy = ""