2014-09-03 2 views
-4

Я совершенно новый для мира php. Я искал этот сайт для конкретной вещи, которую я искал, но не смог ее найти.php-код, если тогда еще тег

Вопрос: У меня есть страница, где я хочу тег, такой как «User =», поэтому, если есть URL-адрес, который имеет index.php? U = Joe, тогда я хочу, чтобы «User = Joe» отображался на страницы для этого пользователя.

Теперь я дошел до этой точки без проблем. Моя проблема в том, что я хочу показать что-то, если кто-то идет к index.php без значения u u = пользователя.

Например: если в URL нет ничего, я хочу, чтобы страница произнесла «Пользователь = Неизвестно».

Я знаю, что это можно сделать с помощью оператора if, но мне нужна помощь с ним. Я не могу найти правильную концепцию.

Спасибо.

+0

Surf для PHP S $ _GET переменного ... –

+0

Спасибо всем за быстрые ответы! Мой вопрос исправлен :) –

ответ

1

Используйте isset(), чтобы проверить, была ли указана переменная параметра.

if (isset($_GET['u'])) { 
    $user = $_GET['u']; 
} else { 
    $user = "Unknown"; 
} 

echo "User = $user"; 
1

Вы просто должны проверить, если значение установлено с isset()

<?php 

if(isset($_GET["u"]) && $_GET["u"] != ""){ 
    $var = $_GET["u"]; 
} else{ 
    $var = "Joe"; 
} 

?> 
0

Аналогично другие ответы, но я предпочитаю array_key_exists над isset.

if (array_key_exists('u', $_GET)) 

Причина в том, что array_key_exists специфичен для массивов и имеет меньше «магическое» исключение, чем isset.

0

Я бы рекомендовал использовать filter_input($input_type,$input_var_name), чтобы получить значение переменной. Это происходит потому, что это возвращает false, если переменная не может быть найдена. Если вы вытащите его из массива, он вызовет ошибку. Вы могли бы использовать что-то вроде этого:

$user = filter_input(INPUT_GET,'u'); 
$user = !isset($user) ? 'Unknown' : $user; 

Однако, вы должны инкапсулировать это в функцию, так что вам не придется переписывать это каждый раз, когда вам нужно имя пользователя. Фактически, если вам нужно, чтобы имя пользователя сохранялось на нескольких страницах, я рекомендую использовать файлы cookie.

0

Это будет делать трюк: Быстро и легко ..

if($_GET['u']!=''){ 
    echo 'user = '.$_GET['u']; // The parameter has been set, and is not empty. 
} else { 
    echo 'Unknown user'; // The parameter has not even been set. So the value has no impact, and is not checked. 
} 
+1

Остерегайтесь, этот код будет работать, но он создаст ошибку в вашем файле error_log. Вы должны использовать isset(). – pmrotule

+0

Какая ошибка? – ThomasK

+1

Я проверил ваш код, и это то, что я получил в файле error.log: 'PHP Примечание: Неопределенный индекс: u в /home/public/test.php в строке 3' – pmrotule