Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Идентивикатор сессии и ошибка "Notice: Undefined index: login in"
Покинул форум
Сообщений всего: 13
Дата рег-ции: Нояб. 2014
Помог: 0 раз(а)
Здравствуйте! Я делаю сайт на php, в-первую очередь, чтобы на практике освоить програмирование на php. Сделать успел уже ни мало когда пришла мысль проверить на наличие ошибок. Для этого вставил в код главной страницы, где происходит авторизация, вот такую строку:
$req=mysql_query("SELECT * FROM `users` WHERE `login` = '".$_SESSION['login']."'");
Понятно, что иддентификатор сессии не определен, так как пользователь не авторизован. В теме Решение ошибок в php в качестве решения подобных ошибок предлагаеться проверить в массиве наличие индекса. Как я понимаю, мне нужно указать индентификатор сессии.
Вопрос в том, как это сделать, если пользователь еще не авторизован. Ведь индекс "login" записываеться в сессию при авторизации.
P.S.: Простите за ошибку в названии темы. Поздно заметил.
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
Помог: 7 раз(а)
Вверху раздела "Вопросы новичков" есть прикрепленная тема об ошибках.
Цитата:
2) Notice: Undefined index: [index] in [filename] on line [line]
3) Notice: Undefined offset: [number] in [filename] on line [line]
Обе ошибки похожи, и возникают они при обращении к не существующему индексу массива ([index] или [number]) в строке [line] файла [filename], только в первом случае это строковый индекс ($arr['index']), а во втором - числовой ($arr[2]).
Решение: проверить в массиве наличие индекса [index] или [number].
В вашем случае это означает, что в массиве $_SESSION нет индекса 'login'.
Может быть вы ошиблись и должен быть массив _POST или _GET? (Добавление)
Вторая ошибка - это следствие первой. У вас вывод информации из за ошибки начинается раньше, чем идет формирование заголовков.
Покинул форум
Сообщений всего: 13
Дата рег-ции: Нояб. 2014
Помог: 0 раз(а)
kotyara1979 пишет:
В вашем случае это означает, что в массиве $_SESSION нет индекса 'login'.
Может быть вы ошиблись и должен быть массив _POST или _GET? (Добавление)
Вторая ошибка - это следствие первой. У вас вывод информации из за ошибки начинается раньше, чем идет формирование заголовков.
Насчет массива я не ошибся. Ну а то что нет индекса 'login' я знаю. В том то и проблема! Какой индекс должнн бать указан, если пользователь еще не авторизовался?
Чтобы ошибка не мешала поставил знак "@" перед запросом:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.