Autor Tema: If anidados  (Leído 385 veces)

Desconectado Ruffus

  • PHPerit@
  • *
  • Mensajes: 1
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
If anidados
« en: 07 de Septiembre de 2015, 03:27:43 am »
Buenas tardes, me dirigo a ustedes con la siguiente duda, tengo un index.html con un form (user, pass y botón) registra el user y pass y lo compara mediante un login.php conectandose a su vez a la db en mysql, el usuario lo compara con el pass si es correcto pasa a un segundo if donde verifica el tipo de usuario a = admin, sp = supervisor, s = secretaria y un tercer if donde verifica si esta activo o no 'y' o 'n',  el siguiente es el código utilizado:

Código: [Seleccionar]
<?php
session_start();
include_once('con.php'); 

if(!empty($_POST['usuario']) and !empty($_POST['contra'])){
$usuario=limpiar($_POST['usuario']);
$contra=limpiar($_POST['contra']);
$can=mysql_query("SELECT * FROM usuarios WHERE (user='".$usuario."' or cedula='".$usuario."') and password='".$contra."'");
if($dato=mysql_fetch_array($can)){
$_SESSION['username']=$dato['user'];
$_SESSION['tipo_usu']=$dato['tipo'];
 

///////////////////////////////
if($_SESSION['tipo_usu']=='a'){
if($dato['estado']=='y'){
header('location:Administrador.php');
}
}
}
}
?>

mi problema es cuando escribo otro if para hacer la comparación si es sp o s y que rediriga a las paginas correspondientes, supervisor.php y secretaria.php.

Si alguno de ustedes podría hecharme una mano, estaría muy agradecido.

Saludos.




Comunidad PHPeros

If anidados
« en: 07 de Septiembre de 2015, 03:27:43 am »

Desconectado DarkArrow

  • PHPerit@
  • *
  • Mensajes: 3
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:If anidados
« Respuesta #1 en: 29 de Septiembre de 2015, 16:39:01 pm »
Muy facil:

Código: [Seleccionar]
<?php 
$tipo 
$dato["tipo"];
$estado $dato["estado"];

$destinosTipo = array("a"=>"administrador""sp" =>"supervisor""s" =>"secretario");
$destinosEstado = array("y"=>"Activo""n" =>"Inactivo") ;
if(
array_key_exists($destinosTipo[$tipo]) && array_key_exists($destinosEstado[$estado])) {// #1
    
$destinoArchivo $destinosTipo[$tipo] . $destinosEstado[$estado] . ".php";
    
header("Location: $destinoArchivo");
}
else{}
//#1
?>

Esto redirige al archivo administradorInactivo.php, o secretarioActivo.php etc...

#1 El if comprueba que el tipo y estado devueltos por la consulta sql existen como key en el array que usamos, si POR CASUALIDAD no existieran quiere decir que vienen mal de la base de datos, pero podriamos hacer un redirect a ".php" molestando al usuario así que si no se puede redirigir correctamente en el else te encargas de esto
« Última modificación: 29 de Septiembre de 2015, 16:49:46 pm por DarkArrow »