PHP - nivel de usuarios en php

 
Vista:
sin imagen de perfil

nivel de usuarios en php

Publicado por cristian (3 intervenciones) el 04/12/2015 05:49:23
Buenas Noches,

Es que necesito hacer un login con niveles de usuarios (Estudiante, Profesor, Visitante), asi que en phpmyadmin cree un campo con ENUM, En el cual declare el typo de usuario: $typeuser (Profesor=1, Estudiante=2, Visitante=3), y no logro que funcione (El programa debe únicamente permitir el ingreso de la cédula y buscar en la base de datos y de acuerdo al numero de cédula debe de dirigirlo a la sala que le pertenece, ya sea profesor, estudiante o visitante), mejor dicho el código que tengo es el siguiente:

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
<?php
session_start();
include ("conexion1.php");
if(isset($_POST['cedula']) && !empty($_POST['cedula']) &&
	isset($_POST['typeuser']) && !empty($_POST['typeuser']))
{
	$con=mysql_connect($host, $user, $pw) or die("problemas al conectar con el Servidor");
	mysql_select_db($db, $con) or die ("Problemas al conectar con la Base de Datos");
	$sel=mysql_query("SELECT typeuser, cedula FROM registro WHERE typeuser='$_POST[typeuser]'",$con);
	$sesion=mysql_fetch_array($sel);
	if ($_POST['cedula'] == $sesion['cedula'] && $sesion['typeuser'] == 1)
	 {
 
	 				$_SESSION['typeuser'] = $sesion['typeuser'];
						echo "Seccion Exitosa, Usted esta en la Sala de Profesores";
						echo "<br><a href=restringida.php>Bienvenido a su sesion</a>";
 
			}
 
	}
 
	elseif ($sesion['typeuser'] == 2) {
 
					$_SESSION['typeuser'] = $sesion['typeuser'];
						echo "Seccion Exitosa, Usted esta en la Sala de Estudiantes";
						echo "<br><a href=restringida.php>Bienvenido a su sesion</a>";
	}
 
	elseif ($sesion['typeuser'] == 3) {
 
		$_SESSION['typeuser'] = $sesion['typeuser'];
						echo "Seccion Exitosa, Usted esta en la Sala de visitantes";
						echo "<br><a href=restringida.php>Bienvenido a su sesion</a>";
	}
 
	{
		echo "No se encuentra registrado";
	}
 
else
	{			echo "Debes de introducir su cedula";
}
?>
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

nivel de usuarios en php

Publicado por xve (6935 intervenciones) el 04/12/2015 16:40:39
Hola Cristian, exactamente que devuelve $sesion??
Puedes hacer un print_r($sesion) y mostrarnos-lo?
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

nivel de usuarios en php

Publicado por cristian (3 intervenciones) el 04/12/2015 16:53:53
Hola xve,

Ok, bueno, $sesion es unicamente la variable donde se almacena lo que viene del fetch_array:

1
$sesion=mysql_fetch_array($sel);

Es decir, el fetch_array toma los valores seleccionados de la base de datos (Cedula y typeuser):

1
$sel=mysql_query("SELECT typeuser, cedula FROM registro WHERE typeuser='$_POST[typeuser]'",$con);

de todas formas, ahora observando un poco el codigo, la variable typeuser no debe ser igual $POST, ya que no viene de un campo, recuerda que el programa solo con el numero de cedula debe permitir direccionar al usuario dependiendo del grupo que corresponda (Profesores, Estudiantes, Visitantes).

Envio el codigo nuevamente con los ajustes que le hize:

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
<?php
session_start();
include ("conexion1.php");
if(isset($_POST['cedula']) && !empty($_POST['cedula']))
{
	$con=mysql_connect($host, $user, $pw) or die("problemas al conectar con el Servidor");
	mysql_select_db($db, $con) or die ("Problemas al conectar con la Base de Datos");
	$sel=mysql_query("SELECT typeuser, cedula FROM registro WHERE cedula='$_POST[cedula]'",$con);
	$sesion=mysql_fetch_array($sel);
	if ($_POST['cedula'] == $sesion['cedula'] && $sesion['typeuser'] == 1)
	 {
 
	 				$_SESSION['typeuser'] = $sesion['typeuser'];
						echo "Seccion Exitosa, Usted esta en la Sala de Profesores";
						echo "<br><a href=restringida.php>Bienvenido a su sesion</a>";
 
			}
 
	}
 
	elseif ($sesion['typeuser'] == 2) {
 
					$_SESSION['typeuser'] = $sesion['typeuser'];
						echo "Seccion Exitosa, Usted esta en la Sala de Estudiantes";
						echo "<br><a href=restringida.php>Bienvenido a su sesion</a>";
	}
 
	elseif ($sesion['typeuser'] == 3) {
 
		$_SESSION['typeuser'] = $sesion['typeuser'];
						echo "Seccion Exitosa, Usted esta en la Sala de visitantes";
						echo "<br><a href=restringida.php>Bienvenido a su sesion</a>";
	}
 
	{
		echo "No se encuentra registrado";
	}
 
else
	{			echo "Debes de introducir su cedula";
}
?>
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

nivel de usuarios en php

Publicado por xve (6935 intervenciones) el 04/12/2015 17:19:20
Hola Cristian, si, si, lo he visto, pero me gustaría ver el contenido que devuelve la consulta a la base de datos, para ver porque razón no te entra en los if()
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

nivel de usuarios en php

Publicado por cristian (3 intervenciones) el 04/12/2015 17:57:22
Hola xve,

Queda en blanco la pantalla cuando le doy ingresar. Te envió todos los archivos:

1) El formulario en html con bootstrap

2) Y el resto de archivos en PHP con la base de datos.

NOTA: EN EL ARCHIVO CONEXION1.PHP obviamente tu le colocas la contraseña cuando lo subas a tu servidor.

Gracias xve,
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