2016-09-30 113 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

好的抱歉 –