2010-10-10 3 views
0

hi Я получаю эту ошибку. Уведомление: Неопределенный индекс: SESSION_ADMIN_MEMBER_TYPE в ... как я могу исправить эту ошибку?Ошибка: Обратите внимание: Неопределенный индекс: SESSION_ADMIN_MEMBER_TYPE в

if((isset($_GET['p']) && $_GET['p'] != 'docs') 
&& ($_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'normal' 
|| $_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'restricted' 
|| $_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'c_account')) 

ответ

2

Это означает, что SESSION_ADMIN_MEMBER_TYPE не установлен (очевидно). Таким образом, вы можете добавить дополнительную проверку:

isset($_SESSION['SESSION_ADMIN_MEMBER_TYPE']) 

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

Обратите внимание, что это уведомление является безобидным. Это просто, чтобы вы знали, что ключ не установлен.

+0

По умолчанию E_NOTICE скрыта. См. [Этот стареющий пост] (http://www.brandonchecketts.com/archives/php-performance-isset-versus-empty-versus-php-notices) для повышения производительности при добавлении проверок isset(). –

1

Это потому, что вы проверяете переменную сеанса перед ее набором. Таким образом, добавить проверку, чтобы увидеть, если его установить первый

if((isset($_GET['p']) && $_GET['p'] != 'docs' && 
isset($_SESSION["SESSION_ADMIN_MEMBER_TYPE"])) 
&& ($_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'normal' 
|| $_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'restricted' 
|| $_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'c_account')) 
1
if((isset($_GET['p']) && $_GET['p'] != 'docs') 
&& isset($_SESSION["SESSION_ADMIN_MEMBER_TYPE"]) && ($_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'normal' 
|| $_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'restricted' 
|| $_SESSION["SESSION_ADMIN_MEMBER_TYPE"] == 'c_account')) 

Проверив, если $ _SESSION [ "SESSION_ADMIN_MEMBER_TYPE"] установлено

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