2016-09-30 94 views
-1

我創建了一個登錄系統,我可以作爲管理員或作爲用戶(僱主)​​登錄。如果我以管理員身份登錄,則可以在下一頁上更新,刪除或創建新僱主,如果我以僱主身份登錄,則沒有該選項。這工作正常,但今天當我作爲管理員登錄一個沒有該權限,我收到一條消息:你不能創建一個新的用戶(這是我在其他聲明中發佈的消息)。我無法以管理員身份登錄

這是我的homepage.php腳本。任何幫助?

<?php 

    require_once("connection.php"); 

    $user_id = $_SESSION['userid']; 
    $role = $_SESSION['role']; 

    $sql = "SELECT * FROM login"; 
    $stmt = $conn->query($sql); 


    ?> 
    <html> 
    <head> 
     <link rel="stylesheet" href="css/bootstrap.min.css"> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
    </head> 
    <body> 
    <nav class="navbar navbar-default"> 
     <div class="navbar-header"> 
      <a class="navbar-brand" href="#"><?php echo $role ?></a> 
     </div> 
     <div class="container"> 
     <?php if($role == 'admin') { ?> 

     <a href="new_emp.php"><button type="button" class="btn btn-default navbar-btn">New Employee</button></a> 
     <?php } else { }?> 
     <a href="info.php"><button type="button" class="btn btn-default navbar-btn">Employee</button></a> 
     <a href="logout.php"><button type="button" class="btn btn-default navbar-btn">Sign Out</button></a> 
     </div> 
    </nav> 
    <div class="box"> 
     <div class="col-sm-4 col-md-6 col-md-offset-2"> 
      <table class="table table-hover table-striped table bordered" border="1"> 
       <thead> 
        <tr> 
         <th style="width:250px">UserName</th> 
         <th style="width:250px">User Password</th> 
         <th style="width:250px">User Role</th> 
         <th>Action</th> 
        </tr> 
       </thead> 
       <tbody> 
        <?php foreach($stmt as $row){ ?> 
        <tr> 
         <td><?php echo $row['user_name'] ?></td> 
         <td>*******</td> 
         <td><?php echo $row['user_role'] ?></td> 
         <?php if($role == "admin"){ ?> 
         <td> 
          <form action="delete.php" name="deleteForm" method="post"> 
           <input type="hidden" name="delete_id" value="<?php echo $row['user_id'] ?>"/> 
           <button type="submit" name="delete_user" class="btn btn-info">Delete</button> 
          </form> 
         </td> 
         <td> 
          <form action="update.php" name="updForm" method="post"> 
           <input type="hidden" name="update_id" value="<?php echo $row['user_id'] ?>"/> 
           <button type="submit" name="update_user" class="btn btn-info">Update</button> 
          </form> 
         </td> 
         <?php } ?> 
        </tr> 
        <?php } ?> 
        <?php if($role == "admin"){ ?> 
        <form action="add_user.php" method="POST" name="add_user"> 
        <tr> 
         <td><input type="text" name="username" class="form-control"/></td> 
         <td><input type="text" name="password" class="form-control"/></td> 
         <td> 
          <select name="select_role" class="form-control"> 
           <option value="admin">Admin</option> 
           <option value="emp">Employee</option> 
          </selet> 
         </td> 
         <td> 
          <button type="submit" name="sub_user" class="btn btn-danger">Add User</button> 
         </td> 
        </tr> 
        <?php } else{ ?> 
        <tr> 
         You can't add a new user! 
        </tr> 
        <?php } ?> 
       </form> 
       </tbody> 
      </table> 
     </div> 
    </div> 
    </body> 
    </html> 
+2

如果您的'else'語句中的代碼正在執行,那麼'if'語句中的條件顯然是錯誤的。你的調試揭示了什麼? – David

+0

那麼'$ role'實際上包含了什麼? – arkascha

+2

您只能從會話中設置'$ role'。如果$ _SESSION ['role']'是包含錯誤值的那個,我們需要看看你在哪裏以及如何設置它。這就是你在使用它之後已經包含了錯誤的值。 –

回答

1

哪裏是session_start(); 功能,因爲沒有這個功能,你怎麼能得到會話變量,所以請首先把在session_start()在文件的頂部,然後檢查。

+1

查看我的最新回覆,它位於我的connection.php文件中。 – Tomi

+0

好的抱歉 –