PHP - Login de usuario segun el rol

 
Vista:
sin imagen de perfil

Login de usuario segun el rol

Publicado por Leo (50 intervenciones) el 20/08/2014 22:16:58
Hola que tal. Quisiera hacer un login de usuario y dependiendo su rol direccionarlo a su menu correspondiente. Tengo una base de datos con una tabla con los siguientes campos: nombre, apellido, direccion, dni, telefono, correoelectronico, clave y perfilid. El perfilid es el que le da su rol, si es 1 es administrador, si es 2 profesor y 3 alumno.
He podido logear pero no logro direccionar a los usuarios a sus correspondientes menus. Les dejo el codigo del index.php. Muchas gracias por su ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
	session_start();
	define("PALABRA","j)7h&54Bh");
	include('scripts/conexion.php');
	if(isset($_POST['txtusuario']) && isset($_POST['txtclave'])){
		if($_POST['txtusuario']!='' && $_POST['txtclave']!=''){
			$mensaje='';
			$dni = $_POST['txtusuario'];
			$clave = $_POST['txtclave'];
			$sql = "SELECT dni, perfilid from persona where dni = '$dni' and clave = '$clave'";
			$rs = mysql_query($sql);
			if($rs){
				$fila = mysql_fetch_row($rs);
				$_SESSION['nusuario'] = $fila[0];
				$_SESSION['perfil'] = $fila[1];
			}else{
				$mensaje = 'Usuario y/o clave incorrecta';
			}
		}
	}
 
?>
<html>
<head>
	<title>Crear</title>
	<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
	<script type="text/javascript" src="js/dataTables.js"></script>
	<script type="text/javascript" src="js/jquery-ui.js"></script>
	<script type="text/javascript" src="js/jquery.form.js"></script>
	<link type="text/css" rel="stylesheet" href="css/dataTables.css"/>
	<link type="text/css" rel="stylesheet" href="css/dataTables_themeroller.css"/>
	<link type="text/css" rel="stylesheet" href="css/jquery-ui.css"/>
	<link rel="stylesheet" type="text/css" href="css/nuevo.css"/>
</head>
<body>
<div id="encabezado"></div>
<div id="contenido">
	<?php
	//ACA ES DONDE TENDRIA QUE DIRECCIONAR A LOS USUARIOS
	?>
</div>
<div id="pie"></div>
<script type="text/javascript"></script>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Salvador

Login de usuario segun el rol

Publicado por Salvador (125 intervenciones) el 20/08/2014 23:35:20
puedes usar esto

1
2
3
4
5
6
7
8
9
10
11
switch ($_SESSION['perfil']){
                       case '1':
                             echo 'menu admin';
                        break
                       case '2':
                             echo 'menu profesor';
                        break
                       case '3':
                             echo 'menu usuario';
                        break
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Login de usuario segun el rol

Publicado por leo (50 intervenciones) el 21/08/2014 01:19:04
Bueno voy a probar con eso. Muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Login de usuario segun el rol

Publicado por Leo (50 intervenciones) el 21/08/2014 01:30:02
Probe lo hice asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
		switch ($_SESSION['perfil']){
			case '1':
				echo 'vistas/administrador.php';
				break;
			case '2':
				echo 'vistas/profesor.php';
				break;
			case '3':
				echo 'vistas/alumno.php';
				break;
		}
	?>

pero me larga el siguiente error:
Notice: Undefined index: perfil in C:\xampp\htdocs\crearpowa\index.php on line 41
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login de usuario segun el rol

Publicado por xve (6935 intervenciones) el 21/08/2014 09:57:01
Hola Leo, lo que te da no es un error es una Notificación de que la variable $_SESSION['perfil'] no esta definida.

Antes del switch(), prueba a poner algo así:
1
2
3
4
if(isset($_SESSION['perfil']))
{
    ....switch...
}

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Login de usuario segun el rol

Publicado por Leo (50 intervenciones) el 21/08/2014 11:07:44
Hola xve, hice lo siguiente como me dijiste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
	if(isset($_SESSION['perfil'])){
		include('vistas/login.php');
		switch ($_SESSION['perfil']){
			case '1':
				echo 'vistas/administrador.php';
				break;
			case '2':
				echo 'vistas/profesor.php';
				break;
			case '3':
				echo 'vistas/alumno.php';
				break;
		}
	}
	?>

Ahora no me dice ningún error ni notificación sino que el login no aparare, muestra la pantalla en blanco. Muchas gracias por tu ayuda y disculpa las molestias soy nuevo en esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Salvador

Login de usuario segun el rol

Publicado por Salvador (125 intervenciones) el 21/08/2014 17:45:15
Te da una pagina en blanco porque no encontro la variable de $_SESSION['perfil'] y solo condicionaste si la encontraba,,,


si existe session,,,, entonces esto,,,, de lo contrario,,,, esto...

tambien puede ser que la session no cumpla con ninguno de las 3 condiciones,, al final podrias poner un

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch ($_SESSION['perfil']){
	case '1':
		echo 'vistas/administrador.php';
		break;
	case '2':
		echo 'vistas/profesor.php';
		break;
	case '3':
		echo 'vistas/alumno.php';
		break;
				default:
		echo 'vistas/general.php';
		break;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login de usuario segun el rol

Publicado por xve (6935 intervenciones) el 21/08/2014 22:38:33
Si, claro, eso es porque la variable $_SESSION['perfil'] no existe!!!

Si no existe que quieres que haga?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Login de usuario segun el rol

Publicado por Leo (50 intervenciones) el 22/08/2014 00:27:30
Muchas gracias a todos por su ayuda y paciencia, pude hacer que ande todo :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar