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-- Estructura de tabla para la tabla `login_admin`
--
CREATE TABLE IF NOT EXISTS `login_admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nick` varchar(20) NOT NULL,
`apellido` varchar(30) NOT NULL,
`nombre` varchar(50) NOT NULL,
`contrasenia` varchar(200) NOT NULL,
`cargo` varchar(20) NOT NULL,
`ci` varchar(15) NOT NULL,
`rda` varchar(20) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Volcado de datos para la tabla `login_admin`
--
INSERT INTO `login_admin` (`id`, `nick`, `apellido`, `nombre`, `contrasenia`, `cargo`, `ci`, `rda`) VALUES
(1, '1234567', 'Perez', 'Juan', 'casa', '4', '1234567', '010203'),
(2, '12345', 'Gonzales', 'Mandachin', 'casas', '3', '12345', '54321'),
(3, '123456', 'Wilson', 'Perez', 'casi', '2', '5063511', '6023563'),
(4, '112233', 'Sanchez', 'Willian', 'caza', '4', '112233', '6050402');
conexion.php
login.php
Código PHP:
Ver original<?php
require_once("sesion.class.php");
include("config.php");
$sesion = new sesion();
if( isset($_POST["iniciar"]) ) {
$usuario = $_POST["usuario"];
$password = $_POST["password"];
$cargo = $_POST['cargo'];
if(validarUsuario($usuario,$password,$cargo) == true){
$sesion->set("usuario",$usuario);
if ($cargo=='4') {
header("location: http://localhost/entrar/director.php");//index del director
}
if ($cargo=='3') {//index de los docente
header("location: http://localhost/entrar/docente.php");
}
if ($cargo=='2') {//index de estudiantes
header("location: http://localhost/entrar/estudiante.php");
}
}
else
{
echo "<div class='row-fluid'>"."<div class='col-md-4 col-md-offset-4'>";
echo "<p class='error'>"."Estimado Usuario "."<br>"."<stron>"."Verifica tu nombre de usuario, contraseña y el Cargo"."</strong>"."</p>";
echo "</div>"."</div";
}
}
function validarUsuario($usuario, $password, $cargo)
{
$conexion = new mysqli("localhost","root","root","login");
$consulta = "SELECT contrasenia FROM login_admin WHERE nick = '$usuario' AND cargo='$cargo';";
$result = $conexion->query($consulta);
if($result->num_rows > 0)
{
$fila = $result->fetch_assoc();
if( strcmp($password,$fila["contrasenia"]) == 0 ) return true;
else
return false;
}
else
return false;
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>::PANEL ADMINISTRATIVO::</title>
<!-- Bootstrap -->
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/bootstrap-theme.css" rel="stylesheet">
<!-- Bootstrap -->
</head>
<body>
</tr>
</tbody>
</table>
<div class="row-fluid">
<div class="col-md-4 col-md-offset-4">
<table class="table table-striped table-bordered table-condensed table-hover">
<thead>
<tr>
<th colspan="2" class="ingreso"><H2>INGRESO SOLO ADMINISTRADORES</H2></th>
</tr>
</thead>
<tbody>
<form name="frmLogin" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<div class="form-group">
<tr>
<td><label for="exampleInputEmail1">Código de Usuario:</label></td>
<td> <input type="text" class="form-control" id="exampleInputEmail1" name="usuario" placeholder="Ej. 5232120"/ autofocus></td>
</tr>
</div>
<div class="form-group">
<tr>
<td> <label for="exampleInputPassword1">Contraseña:</label></td>
<td><input type="password" class="form-control" id="exampleInputPassword1" name="password"/></td>
</tr>
<tr>
<td> <label for="exampleInputPassword1">Cargo:</label></td>
<td><select name="cargo" class="form-control">
<option value="">Seleccionar</option>
<option value="4">Director</option>
<option value="3">Docente</option>
<option value="2">Estudiante</option>
</td>
</tr>
</div>
<tr>
<td><a href="http://localhost/colegio/index.php"><button class="btn btn-success btn-lg"type="button">REGRESAR</button></a></td>
<td ><input type="submit" class="btn btn-primary btn-lg"name ="iniciar" value="INGRESAR"/> </td>
</tr>
</form>
</tbody>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
</body>
</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?>
<?php
class session_class{
function __construct(){
}
public function set($nombre, $valor){
$_SESSION[$nombre] = $valor;
}
public function get($nombre){
if (isset ($_SESSION[$nombre])) { return $_SESSION[$nombre];
}else{
return "No existe la variable";
}
}
public function borrar_variable($nombre){
unset ($_SESSION[$nombre]); }
public function borrar_variables_sesion(){
}
public function borrarsesion(){
borrar_variables_sesion();
}
}
?>
cerrarsesion.php
Código PHP:
Ver original<?php
require_once("sesion.class.php");
$sesion = new sesion();
$usuario = $sesion->get("usuario");
if( $usuario == false )
{
header("Location: login.php"); }
else
{
$usuario = $sesion->get("usuario");
$sesion->borrarsesion();
header("location: login.php"); }
?>
y los archivos que faltan estan en BLANCO:
director.php , docente.php , estudiante.php