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

ok 죄송합니다. –

관련 문제