我想尝试区分使用我网站的用户是管理员还是会员。我有一个数据库,我有用户角色的表,例如userRole 1 = member和userRole2 = admin。我有这个代码获取该特定用户的userRoleID并将其存储在变量中:
$result = "SELECT userRoleID FROM tbl_users" or die("Error: " . mysqli_error($con));
$res = $con->query($result);
while($row = mysqli_fetch_array($res)) {
$UserRoleID = $row['userRoleID'];
$_SESSION['user_role'] = $UserRoleID;
}
它正在成功运作。
正如您在代码的最后一行中所看到的那样,我试图将包含userID的变量存储在一个成功的会话变量中。
现在我试图在另一个php页面中使用该会话变量来决定向用户显示什么,即如果他是管理员,他会获得更多功能,如果他是一名成员,他就会减少。我有这段代码:
<?php
if (!empty($_SESSION['user_role'] == '2'))
{ ?>
<li><a href='index.php'>Home</a></li>
<li><a href='#'>About Us</a></li>
<li><a href='#'>Contact Us</a></li>
<li><a href='loginpage.php'>Login</a></li>
<?php } else if ($_SESSION['user_role'] == '3')
{ ?>
<li><a href='index.php'>Home</a></li>
<li><a href='#'>About Us</a></li>
<li><a href='#'>Contact Us</a></li>
<li><a href='loginpage.php'>Login</a></li>
<li><a href='#'>Admin</a></li>
<?php } ?>
正如您可以看到,在此代码中,它根据用户角色决定它向用户显示的菜单项。但它无法正常工作我收到了这些错误:
注意:未定义的变量:第7行的C:\ xampp \ htdocs \ WSSA1S1 \ new \ pagetemplateHEADER.php中的_SESSION
注意:未定义的变量:第14行的C:\ xampp \ htdocs \ WSSA1S1 \ new \ pagetemplateHEADER.php中的_SESSION
我认为这是因为php代码的开头没有session_start()但是当我插入session_start()时出现了这个错误:
注意:会话已经启动 - 忽略第4行的C:\ xampp \ htdocs \ WSSA1S1 \ new \ pagetemplateLOGINSEC.php中的session_start()
有人可以给我一些建议吗?
P.S我是PHP,MySql和stackoverflow的初学者,所以如果解决方案很简单,请放轻松。
答案 0 :(得分:0)
to keep things simple,
I would suggest something like the following:
<?php
if( (isset($_SESSION['user_role']) ) && (false != $_SESSION['user_role']) )
{
if( '2' == $_SESSION['user_role'] )
{
echo "<li><a href='index.php'>Home</a></li>";
echo "<li><a href='#'>About Us</a></li>";
echo "<li><a href='#'>Contact Us</a></li>";
echo "<li><a href='loginpage.php'>Login</a></li>";
}
elseif ('3' == $_SESSION['user_role'] )
{
echo "<li><a href='index.php'>Home</a></li>";
echo "<li><a href='#'>About Us</a></li>";
echo "<li><a href='#'>Contact Us</a></li>";
echo "<li><a href='loginpage.php'>Login</a></li>";
echo "<li><a href='#'>Admin</a></li>";
}
else
{ // error condition
// display details of invalid $_SESSION['user_role']
}
}
else
{ // error condition
// display details of missing or empty $_SESSION['user_role']
}
?>