2016-09-30 1 views
-1

J'ai créé un système de connexion dans lequel je peux me connecter en tant qu'administrateur ou en tant qu'utilisateur (employeur). Si je suis connecté en tant qu'administrateur, sur la page suivante je peux mettre à jour, supprimer ou créer un nouvel employeur, et si je suis connecté en tant qu'employeur, je n'avais pas ces options. Cela fonctionne bien, mais aujourd'hui, quand je suis connecté en tant qu'administrateur, je n'ai pas cette permission et j'ai reçu un message: Vous ne pouvez pas créer un nouvel utilisateur (c'est le message que j'ai posté dans une autre déclaration).Je ne peux pas me connecter en tant qu'admin

Ceci est mon script homepage.php. De l'aide?

<?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

Si le code de votre instruction 'else' est en cours d'exécution, il est clair que la condition dans l'instruction' if' est fausse. Qu'est-ce que votre débogage a révélé? – David

+0

Alors qu'est-ce que '$ role' contient réellement? – arkascha

+2

Vous ne définissez que '$ role' depuis la session. Si '$ _SESSION ['role']' est celui qui contient la mauvaise valeur, nous devons voir où et comment vous l'avez défini. C'est juste comment vous l'utilisez après qu'il contient déjà la mauvaise valeur. –

Répondre

1

où est session_start(); fonction car sans cette fonction, comment pouvez-vous obtenir les variables de session alors s'il vous plaît d'abord mettre le session_start() en haut du fichier puis vérifier.

+1

Vérifiez ma dernière réponse, il est dans mon fichier connection.php. – Tomi

+0

ok désolé pour ça –