2013-04-03 36 views
-5
<?php    
if((isset($_GET["r"])) == "en") 
{ 
    echo "<font color='#FF9900'>Right.</font>"; 
} 
else 
{ 
    echo ""; 
} 
?> 

当“index.php?r = en”时显示正确。但是当我发送错误的值时,它也显示相同的结果。如“index.php?r = abc”或“index.php?r”。检查GET变量是否设置检查该值不起作用

如何解决这个问题?

+3

'isset'返回TRUE或'FALSE'。 –

+0

本网站不是为这些类型的问题而设计的。你应该问一些具体的问题,以反映你迄今为止所做的研究,以及你被卡住的地方。 –

回答

1

替换此行:

if((isset($_GET["r"])) == "en") 

if((isset($_GET["r"])) && $_GET["r"] == "en") 
+0

非常感谢。有用。 – Subhajit

3

isset($_GET["r"])是一个布尔运算符。如果这是真的,你正在做以下对比:

if(true == "en") ...

你想要的是:

if(!empty($_GET[r]) && $_GET[r] == 'en') ... 
0
if(isset($_GET["r"]) && $_GET["r"] == "en") 
{ 
    echo "<font color='#FF9900'>Right.</font>"; 
} 
else 
{ 
    echo ""; 
} 
0
if(isset($_GET['r'])){  

    if($get === 'en'){ 
     echo 'something';} 
     else { 
     echo 'nothing';} 
    } 
+0

是的..但我不会只使用一个开关的情况下......这是'if'语句的用途。 – Lix

+0

是的,但我认为他可能想扩大名单,因为他似乎正在创造一种语言或类似的东西。 – 2013-04-03 14:29:03

+0

这也是如此...多一点解释,你的文章将是最好的建议真的... – Lix

0
<?php 
if(true === array_key_exists('r', $_GET) && 'en' == $_GET['r']) 
{ 
    echo "<font color='#FF9900'>Right.</font>"; 
} 
else 
{ 
    echo ""; 
} 
?>