La verdad no te comprendo lo que me quieres decir, pero si me dices que lo que te pase te funciona bien entonces no entiendo de lo que me dices que:
"lo que deseo es que con el código que te muestro abajo identifique si es maestro o alumno para redireccionar lo a donde corresponde, espero puedas ayudarme a corregir este error por favor" si lo que te puse hace lo mismo que tu quieres sacar el rol o rango del usuario para compararlo dentro del
switch y en caso de que sea
maestro te redirecciona a la pagina de maestro pero si en caso que sea
alumno lo redirecciona a la pagina de alumnos.
Y aparte de eso veo que en tu tabla usuario no noto que tengas un campo que se llame rol o rango solo noto que tienes 3 campos llamados:
Nusuario,
Contraseña y
Id. ¿ La pregunta es en donde esta el campo de
ROL ó
RANGO o es la
Id que noto en la tabla ?
Bueno por que no pruebas esto para ver si te funciona, lo que realice fue agregarte el campo
usuarios.Rol pero si el
usuarios.Id es el que utilizas para decidir cual de usuario es de tipo maestro o alumno pues quita el que puse y tambien veo que no comparas la contraseña que digita el usuario a iniciar sesion asi que también te agregue otro campo mas
$NC = $_POST['password'] y (
AND usuarios.Contraseña = '$NC'):
Código PHP:
Ver original<?php
$N = $_POST['usu'];
$NC = $_POST['password'];
$resultado = "SELECT usuarios.Nusuario , usuarios.Contraseña , usuarios.Id, usuarios.Rol FROM usuarios WHERE usuarios.Nusuario='$N' AND usuarios.Contraseña = '$NC'";
try{
if ($registro['username'] == $N && $registro['password'] == $NC){
/*echo "Factura:".$registro[0]."<br /> Cantidad:".$registro[1]."<br />Nombre:".$registro[2]."<br/> Empresa:".$registro[3]."<br /> -----------------<br />";*/
$E1= $registro[0];
$E2= $registro[1];
$E3= $registro[2];
$E4= $registro[3];
switch ($E4){
case 'MAESTRO':
header('Location: maestro.php'); break;
case 'ALUMNO':
header('Location: alumno.php'); break;
}
}
else {
echo 'El usuario o contraseña son incorrectos';
}
}
catch (Exception $error){
}
?>