繁体   English   中英

php - 如何在面板中为管理员提供自己的部分?

[英]php - how to give an admin their own section in panel?

我的用户/登录面板在php中有点问题。 如果客人在他的面板中看到我的页面,他可以选择登录和注册。 用户看到他们的成员面板如下:

(有一些IF函数,确保在base中没有会话ID,然后显示guest的选项)

                  <?php
        else:
        ?>

<div> 
<h1>Members panel</h1>
<p>You can put member-only data here</p>
<p><a href="registered.php">View a member page</a></p>           
<p><a href="changepass.php">Edit your password</a></p>
<p>-----</p>
<a href="?logoff">Log off</a>

现在:在我的数据库中,用户我有一个名为ROLE的列。 有用户和管理员等角色。 我想让管理员看到该面板中的另一部分。 我正在尝试使用另一个开关/案例和IF指令,例如:

                  <?php
                  if (isset($_SESSION['role']) && ($_SESSION['role'] =='admin')); 
                  {    
                  }
                  ?>
                  (there is member panel) 
                  <div class="left right">      
        <h1>Administrator panel</h1>
        <a href="admin.php">View an admin page</a>

但它不起作用。 (我有会话变量角色。)有什么想法吗?

您可以尝试删除';' 之后如果

<?php
  if (isset($_SESSION['role']) && ($_SESSION['role'] =='admin')) {    
?>
<!--ADMIN PANEL GOES HERE-->
<?php
    } else {
?>
<!---USER PANEL GOES HERE-->
<?php
    }
?>

首先你应该分开查看和控制,即不要将PHP代码放在你的html文件中。 有很多可能性来保持这个更清洁。 例如, SMARTY框架非常受欢迎。

第二,如何将角色写入$ _SESSION(以及为什么?)。 你应该更好地传递你的db-recordset。 伪:

$rs = db->query(SELECT * FROM users ORDER BY userID)
if ($rs[&currentUserID]['role'] == 'admin') {
  ...
}

第三:如果你搞乱php和html,你至少应该在一个单独的区域(显然在任何输出之前)生成你的php,并输出你的HTML,例如heredoc语法:

<?php
  // do any PHP stuff here
  $panel = 'user logged in';
  if (admin) {
    $panel .= "i'm an admin";
  }
echo <<<OUT
<!DOCTYPE html>
<html>
  ... // put all HTML in here and use variables

  <body>
    <div>$panel</div>
  </body>
</html>
OUT;
?>

PS:请删除css标签,因为你的问题与它无关

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM