2013-04-03 2 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

Yea ... Но я бы не использовал переключатель только для одного случая ... Вот что такое инструкция '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 ""; 
} 
?> 
Смежные вопросы