Работает ли isset с GET?

57
6

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

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

код im использует:

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

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

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

спросил(а) 2012-01-29T07:25:00+04:00 8 лет, 8 месяцев назад
1
Решение
79

Предупреждение, которое вы получаете, вероятно, является ошибкой 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'):
}

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

ответил(а) 2012-01-29T07:33:00+04:00 8 лет, 8 месяцев назад
70

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

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


Я бы рекомендовал вам потратить небольшое время, затрачиваемое на то, чтобы прочитать "Окончательное руководство по PHP isset" и "Пустое".

ответил(а) 2012-01-29T07:33:00+04:00 8 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема