Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2015, 20:49
Avatar de tercerared
tercerared
 
Fecha de Ingreso: marzo-2015
Mensajes: 8
Antigüedad: 9 años, 1 mes
Puntos: 1
Login con niveles de usuarios con php y mysql

Hola a todos,Recurro a ustedes porque son los MEJORES, como dice el Titulo, Estoy haciendo un Sistema Login con Niveles de Usuarios para mi proyecto (COLEGIO) y me quede estancado. Los archivos que estoy utilizando son los siguientes:
Base de datos:
Código PHP:
Ver original
  1. -- Estructura de tabla para la tabla `login_admin`
  2. --
  3.  
  4. CREATE TABLE IF NOT EXISTS `login_admin` (
  5.   `id` int(11) NOT NULL AUTO_INCREMENT,
  6.   `nick` varchar(20) NOT NULL,
  7.   `apellido` varchar(30) NOT NULL,
  8.   `nombre` varchar(50) NOT NULL,
  9.   `contrasenia` varchar(200) NOT NULL,
  10.   `cargo` varchar(20) NOT NULL,
  11.   `ci` varchar(15) NOT NULL,
  12.   `rda` varchar(20) NOT NULL,
  13.   PRIMARY KEY (`id`)
  14. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
  15.  
  16. --
  17. -- Volcado de datos para la tabla `login_admin`
  18. --
  19.  
  20. INSERT INTO `login_admin` (`id`, `nick`, `apellido`, `nombre`, `contrasenia`, `cargo`, `ci`, `rda`) VALUES
  21. (1, '1234567', 'Perez', 'Juan', 'casa', '4', '1234567', '010203'),
  22. (2, '12345', 'Gonzales', 'Mandachin', 'casas', '3', '12345', '54321'),
  23. (3, '123456', 'Wilson', 'Perez', 'casi', '2', '5063511', '6023563'),
  24. (4, '112233', 'Sanchez', 'Willian', 'caza', '4', '112233', '6050402');
conexion.php
Código PHP:
Ver original
  1. <?php
  2. $link = new mysqli("localhost","root","root","login") or die("Error " . mysqli_error($link));
  3. ?>
login.php
Código PHP:
Ver original
  1. <?php
  2.     require_once("sesion.class.php");
  3.   include("config.php");
  4.  
  5.     $sesion = new sesion();
  6.    
  7.     if( isset($_POST["iniciar"]) )
  8.     {
  9.        
  10.         $usuario = $_POST["usuario"];
  11.         $password = $_POST["password"];
  12.     $cargo    = $_POST['cargo'];
  13.        
  14.         if(validarUsuario($usuario,$password,$cargo) == true){         
  15.            
  16.      
  17.       $sesion->set("usuario",$usuario);
  18.            
  19.       if ($cargo=='4') {
  20.         header("location: http://localhost/entrar/director.php");//index del director
  21.  
  22.       }
  23.       if ($cargo=='3') {//index de los docente
  24.         header("location: http://localhost/entrar/docente.php");
  25.  
  26.       }
  27.       if ($cargo=='2') {//index de estudiantes
  28.         header("location: http://localhost/entrar/estudiante.php");
  29.  
  30.       }
  31.            
  32.         }
  33.         else
  34.         {
  35.             echo "<div class='row-fluid'>"."<div class='col-md-4 col-md-offset-4'>";
  36.       echo "<p class='error'>"."Estimado Usuario "."<br>"."<stron>"."Verifica tu nombre de usuario, contrase&ntilde;a y el Cargo"."</strong>"."</p>";
  37.       echo "</div>"."</div";
  38.         }
  39.     }
  40.    
  41.     function validarUsuario($usuario, $password, $cargo)
  42.     {
  43.         $conexion = new mysqli("localhost","root","root","login");
  44.         $consulta = "SELECT contrasenia FROM login_admin WHERE nick = '$usuario' AND cargo='$cargo';";
  45.        
  46.         $result = $conexion->query($consulta);
  47.        
  48.         if($result->num_rows > 0)
  49.         {
  50.             $fila = $result->fetch_assoc();
  51.             if( strcmp($password,$fila["contrasenia"]) == 0 )
  52.                 return true;                       
  53.             else                   
  54.                 return false;
  55.         }
  56.         else
  57.                 return false;
  58.     }
  59.  
  60. ?>
  61. <!DOCTYPE html>
  62. <html lang="es">
  63.   <head>
  64.     <meta charset="utf-8">
  65.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  66.     <meta name="viewport" content="width=device-width, initial-scale=1">
  67.     <title>::PANEL ADMINISTRATIVO::</title>
  68.  
  69.     <!-- Bootstrap -->
  70.     <link href="css/bootstrap.css" rel="stylesheet">
  71.     <link href="css/bootstrap-theme.css" rel="stylesheet">
  72.  <!-- Bootstrap -->
  73.   </head>
  74.   <body>
  75.  
  76.  
  77.     </tr>
  78.   </tbody>
  79. </table>
  80. <div class="row-fluid">
  81.     <div class="col-md-4 col-md-offset-4">
  82.     <table class="table table-striped table-bordered table-condensed table-hover">
  83.  
  84.   <thead>
  85.     <tr>
  86.       <th colspan="2" class="ingreso"><H2>INGRESO SOLO ADMINISTRADORES</H2></th>
  87.     </tr>
  88.   </thead>
  89.     <tbody>
  90.       <form name="frmLogin" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  91.             <div class="form-group">
  92.            
  93.                 <tr>
  94.                   <td><label for="exampleInputEmail1">C&oacute;digo de Usuario:</label></td>
  95.                    <td>   <input type="text" class="form-control" id="exampleInputEmail1" name="usuario" placeholder="Ej. 5232120"/ autofocus></td>
  96.                 </tr>
  97.             </div>
  98.                <div class="form-group">
  99.                <tr>
  100.                      <td> <label for="exampleInputPassword1">Contrase&ntilde;a:</label></td>
  101.                       <td><input type="password" class="form-control" id="exampleInputPassword1" name="password"/></td>
  102.               </tr>
  103.               <tr>
  104.                      <td> <label for="exampleInputPassword1">Cargo:</label></td>
  105.                       <td><select name="cargo" class="form-control">
  106.                         <option value="">Seleccionar</option>
  107.                         <option value="4">Director</option>
  108.                         <option value="3">Docente</option>
  109.                         <option value="2">Estudiante</option>                      
  110.                       </td>
  111.               </tr>
  112.              </div>
  113.              <tr>
  114.              <td><a href="http://localhost/colegio/index.php"><button class="btn btn-success btn-lg"type="button">REGRESAR</button></a></td>
  115.               <td ><input type="submit" class="btn btn-primary btn-lg"name ="iniciar" value="INGRESAR"/> </td>
  116.               </tr>
  117.         </form>
  118.       </tbody>   
  119.       </div>
  120. </div>
  121.     <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  122.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  123.     <!-- Include all compiled plugins (below), or include individual files as needed -->
  124.     <script src="js/bootstrap.min.js"></script>
  125.  
  126.   </body>
  127. </html>
Este Archivo login.php reconoce los niveles de usuario lo hace todo bien, pero lo que me falta es que cuando redireccione a los usuarios( con diferentes privilegios)
a las paginas, director.php , docente.php , estudiante.php, no sea visible para los demas. Me Explico.

Juan Perez es director y se logea a director.php y juanita Perez es Docente y se logea a docente.php, pero juanita con solo cambiar la URL puede ingresar a la pagina director.php etc.
Es ahi donde no se que mas hacerle para dichas paginas, pense ponerle (IF) pero no me ilumino, bueno de antemano GRACIAS


sesion_class.php
Código PHP:
Ver original
  1. ?>
  2.     <?php
  3.     class session_class{
  4.         function __construct(){
  5.             session_start();
  6.         }
  7.         public function set($nombre, $valor){
  8.             $_SESSION[$nombre] = $valor;
  9.         }
  10.         public function get($nombre){
  11.             if (isset ($_SESSION[$nombre])) {
  12.                 return $_SESSION[$nombre];
  13.             }else{
  14.                 return "No existe la variable";
  15.             }
  16.         }
  17.         public function borrar_variable($nombre){
  18.             unset ($_SESSION[$nombre]);
  19.         }
  20.         public function borrar_variables_sesion(){
  21.             $_SESSION = array();
  22.         }
  23.         public function borrarsesion(){
  24.             borrar_variables_sesion();
  25.             session_destroy();
  26.         }
  27.     }
  28. ?>
cerrarsesion.php
Código PHP:
Ver original
  1. <?php
  2.     require_once("sesion.class.php");
  3.    
  4.     $sesion = new sesion();
  5.     $usuario = $sesion->get("usuario");
  6.     if( $usuario == false )
  7.     {  
  8.         header("Location: login.php");
  9.     }
  10.     else
  11.     {
  12.         $usuario = $sesion->get("usuario");
  13.         $sesion->borrarsesion();   
  14.         header("location: login.php");
  15.     }
  16. ?>
y los archivos que faltan estan en BLANCO:
director.php , docente.php , estudiante.php