我需要一些关于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>'; }
?>
它工作正常,但有一个小问题:当用户没有登录时,它会收到一条消息 注意:未定义的索引:用户类
如何解决这个问题?
答案 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';
}