2016-09-30 12 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申し訳ありません –

関連する問題