2011-06-17 95 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 = ""