您好,我正在尝试区分使用我网站的用户是管理员还是成员(member)。我有一个数据库,其中有用户角色表,例如 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 的变量存储在 session 变量中,这也成功了。
现在我试图在另一个 php 页面中使用该 session 变量来决定向用户显示什么,即如果他是管理员,他会获得更多功能,如果他是成员(member),他会获得更少的功能。我有这个代码:
<?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 } ?>
正如您所看到的,在此代码中它是否根据用户角色决定向用户显示哪些菜单项。但它不起作用,我收到这些错误:
注意: undefined variable :第 7 行 C:\xampp\htdocs\WSSA1S1\new\pagetemplateHEADER.php 中的 _SESSION
注意: undefined variable :_SESSION 位于 C:\xampp\htdocs\WSSA1S1\new\pagetemplateHEADER.php 第 14 行
我认为这是因为 php 代码的开头没有 session_start() 但当我插入 session_start() 时出现此错误:
注意: session 已启动 - 忽略第 4 行 C:\xampp\htdocs\WSSA1S1\new\pagetemplateLOGINSEC.php 中的 session_start()
有人可以给我一些建议吗?
P.S 我是 PHP、MySql 和 stackoverflow 的初学者,所以如果解决方案很简单,请放轻松。
最佳答案
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']
}
?>
关于php - 使用 session 变量来区分网站用户的类型,例如管理员或成员(member),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23970672/