【问题标题】:php - how to give an admin their own section in panel?php - 如何在面板中为管理员提供自己的部分?
【发布时间】:2012-08-06 13:57:40
【问题描述】:

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

(有一些 IF 函数,确保 base 中没有 session 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 的列。有用户和管理员等角色。我想让管理员看到该面板中的另一个部分。我正在尝试使用另一个 switch/case 和 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']) &amp;&amp; ($_SESSION['role'] =='admin')); 线上的; 吗?

标签: php database roles


【解决方案1】:

首先你应该分开查看和控制,即不要将 php 代码放在你的 html 文件中。有很多可能性可以保持这种清洁度。例如,SMARTY 框架非常流行。

其次,角色是如何写入您的 $_SESSION 的(为什么?)。你最好通过你的数据库记录集。伪:

$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标签,因为您的问题与它无关

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 试图这样做: 然后endif(对于其他人,如果我想)并且....现在两者都没有;)在更改之前,我可以在管理员帐户中看到成员页面。
    • 如果您想查看用户面板,您必须删除带有大括号“{”和“}”的“else”语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 2011-08-10
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多