如何在php中为已注册和未注册的用户提供不同的菜单?

时间:2011-04-14 01:49:42

标签: php session

我需要一些关于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 个答案:

答案 0 :(得分:1)

在尝试访问任何session_start()变量之前,请确保已调用$_SESSION。请注意,在设置索引之前不会设置该索引,您可以使用isset()if (isset($_SESSION['user-class']) && $_SESSION['user-class'] == 1) { ...检查其是否设置。此外,作为一种练习形式,请勿使用$_SESSION-变量命名,而是使用_ - 这样就可以使用list()等函数。

答案 1 :(得分:1)

您可以使用if( isset( $_SESSION['user-class'] ) )来检查变量是否存在。或者,您可以在头文件中为所有登录或未登录的用户预定义$_SESSION['user-class']变量。

答案 2 :(得分:0)

if (!isset($_SESSION)) session_start();

if (isset($_SESSION['user-class']) && $_SESSION['user-class'] == 1) {
   echo ' logout';
} else { 
   echo ' login';
}
相关问题