php - проблема с назначением значения сеанса - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть фрагмент кода, который проверяет, был ли установлен идентификатор сеанса для моего сайта, и если нет, он присваивает ему значение из моего URL. Ниже приведен код, который у меня есть:

if (!$_SESSION['test_id']){
  $_SESSION['test_id'] = strip_tags($_REQUEST["id"]);
};

Моя проблема не очень большая, но я получаю уведомление, в котором говорится:

Undefined index: test_id

Есть ли лучший способ присвоить эту переменную без отключения уведомления? Этот фрагмент кода находится на платформе Expression Engine (Code Igniter), поэтому я не могу полностью контролировать отображение уведомлений. На этой конкретной странице все сообщения об ошибках отключены в моем коде, но они все еще отображаются.

Большое спасибо за любую помощь!

Ответы [ 4 ]

3 голосов
/ 24 февраля 2012

Протестируйте также и против isset(). Это избавит от уведомления.

if (!isset($_SESSION['test_id']) && !$_SESSION['test_id']){
  $_SESSION['test_id'] = strip_tags($_REQUEST["id"]);
};
0 голосов
/ 24 февраля 2012

Эквивалентный код для того, что вы ищете:

if (!empty($_SESSION['test_id']))

isset($foo) && !$foo логически эквивалентно !empty(). Empty - это языковая конструкция, такая же как isset, но она также проверяет, что это непустое значение.

Так что нет необходимости в условии извлечения, просто бросьте туда !empty, и вы золотые ...

0 голосов
/ 24 февраля 2012

постарайся if (! isset ($ _ SESSION ['...'])) {}

или if (! empty ($ _ SESSION ['...')) {}

0 голосов
/ 24 февраля 2012

да .. вы можете сделать это .. используя isset()

if(!isset($_SESSION['test_id']))

Это потому, что 'test_id' не существует, когда вы проверяете, существует ли ... и isset не создаетэто ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...