2012-01-29 2 views
1

Я знаю, что этот вид кажется глупым вопросом, и с большим количеством исследований я мог бы найти ответ, но у меня есть крайний срок, чтобы помочь.Работает ли isset с GET?

Использование codeigniter im пытается увидеть, является ли идентификатор в URL-адресе «uID» (идентификатор пользователя) или «sID» (идентификатор системы).

код им с помощью является:

if(isset($this->input->get('uID'))) { 
     $getID = $this-input->get('uID'); 
    } else { 
     $getID = $this->input->get('sID'); 
    } 

, когда я использую, что я получаю ошибку сервера говоря веб-сайт временно недоступен или под constrcution. Есть идеи?

Заранее благодарим за помощь. Обычно я потратил больше времени на поиск ответа, но у меня просто нет времени сегодня вечером.

ответ

3

Предупреждение, которое вы получаете, вероятно, является ошибкой 500 - это означает, что ваш сервер не настроен на отображение ошибок для вас, или вы не включили его в свой файл index.php.

Ошибка, которую вы получаете, но не видит: «Неустранимая ошибка: нельзя использовать возвращаемое значение функции в контексте записи», потому что вы не можете использовать isset для функции.

Если вы могли бы не делать то, что ожидаете, так как CI $this->input->get('key') всегда возвращает значение - он возвращает false, если ключ не существует.

Поэтому, чтобы сделать то, что, кажется, что вы пытаетесь сделать, вы бы написать:

$getID = $this->input->get('uID') ? $this->input->get('uID') : $this->input->get('sID'); 

Основываясь на комментарии ниже, я думал, что я также обеспечить его таким образом, что имеет смысл к вам:

if($this->input->get('uID')) { 
    $getID = $this->input->get('uID'); 
} 
else { 
    $getID = $this->input->get('sID'): 
} 

Эти два решения функционально одинаковы.

+0

Хорошо, что работает. Благодарю. Однако я не понимаю ваш код. Что такое '?' –

+0

'условие? execute_if_the_condition_was_true: exe_if_condition_false' ... называется тернарным оператором – Erik

+0

- это установить $ getID в sID, если uID не установлен? –

2

isset работает только с переменными.
$this->input->get() - вызов функции. Это дает вам ошибку.

Я бы предположил, что если uID не установлен в запросе, $this->input->get будет возвращать null или false или некоторые такие. То есть вам не нужно isset, возвращаемое значение должно быть уже falsey.

Я бы рекомендовал вам потратить небольшое время на чтение The Definitive Guide To PHP's isset And empty.

Смежные вопросы