Как включить разные меню для зарегистрированных и незарегистрированных пользователей в php? - PullRequest
0 голосов
/ 14 апреля 2011

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

<?php
if ($_SESSION['user-class'] == 1) // 1 is class of registered users, which is assign after user log in
{echo '<a href="index.php?id=logout">Log out</a>'; }
else
{echo '<a href="index.php?id=login">Log in</a>'; }
?>

Работает нормально, но есть одна маленькая проблема: когда пользователь не вошел в систему, он получает сообщение Примечание: неопределенный индекс: пользовательский класс

Как это исправить?

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

Вместо этого вы можете использовать if( isset( $_SESSION['user-class'] ) ), который проверит, существует ли еще переменная.В качестве альтернативы, вы можете просто предопределить переменную $_SESSION['user-class'] для всех пользователей, вошли или нет, в ваших заголовочных файлах.

1 голос
/ 14 апреля 2011

Убедитесь, что вы вызвали session_start(), прежде чем пытаться получить доступ к $_SESSION переменным.И помните, что этот индекс не будет установлен, пока вы его не установите, вы можете проверить, установлен ли он с помощью isset(): if (isset($_SESSION['user-class']) && $_SESSION['user-class'] == 1) { ....Также, в качестве формы практики, не называйте свои $_SESSION переменные с -, используйте вместо этого _ - позволяет использовать такие функции, как list().

0 голосов
/ 21 апреля 2011
if (!isset($_SESSION)) session_start();

if (isset($_SESSION['user-class']) && $_SESSION['user-class'] == 1) {
   echo ' logout';
} else { 
   echo ' login';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...