Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: bgnumis en 17 Diciembre 2017, 17:18 PM

Título: Redireccionar a página administrador
Publicado por: bgnumis en 17 Diciembre 2017, 17:18 PM
Hola,

Estoy intentando que cuando valide un usuario si el tipo usuario (id_TipoUsuario)  es 1 o 2, me redireccione a una web u otra. Los usuarios tipo 1 serían administradores.

Código (php) [Seleccionar]


<?php
   
    
//conectar BD
    
include("conectar_bd.php");  
    
conectar_bd();
     
    
$usr $_POST['usuario'];
    
$pw $_POST['password'];
   
     
    
$sql "SELECT id_usuario FROM tbl_users
            INNER JOIN ctg_tiposusuario
            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
            WHERE tx_username = '"
.$usr."'
            
    
$result     =mysql_query($sql,$conexio); 

$tipousuario=ctg_tiposusuario.id_TipoUsuario;
 
    
$uid = "";
     
    //Si existe al menos una fila
    if( 
$fila=mysql_fetch_array($result) && $tipousuario="2")
    {       
        //Obtener el Id del usuario en la BD        
        
$uid = $fila['id_usuario'];
        //Iniciar una sesion de PHP
        session_start();
        //Crear una variable para indicar que se ha autenticado
        
$_SESSION['autenticado']    = 'SI';
        //Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
        
$_SESSION['uid']            = $uid;
        //CODIGO DE SESION
         
        //Crear un formulario para redireccionar al usuario y enviar oculto su Id 
?>

        <form name="formulario" method="post" action="administrador.php">
            <input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
        </form>
<?php
    
}
    else {
       
 if( 
$fila=mysql_fetch_array($result))
    {       
        
//Obtener el Id del usuario en la BD        
        
$uid $fila['id_usuario'];
        
//Iniciar una sesion de PHP
        
session_start();
        
//Crear una variable para indicar que se ha autenticado
        
$_SESSION['autenticado']    = 'SI';
        
//Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
        
$_SESSION['uid']            = $uid;
        
//CODIGO DE SESION
         
        //Crear un formulario para redireccionar al usuario y enviar oculto su Id 
?>

        <form name="formulario" method="post" action="principalcero.php">
            <input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
        </form>
<?php
    
}

?>

        <form name="formulario" method="post" action="index.php">
            <input type="hidden" name="msg_error" value="1">
        </form>
<?php
    
}
?>

                     
<script type="text/javascript">
    //Redireccionar con el formulario creado
    document.formulario.submit();
</script>






¿Esto se haría así? En la primera condición del if intento poner dos condiciones
Código (php) [Seleccionar]
$fila=mysql_fetch_array($result) && $tipousuario="2"
pero siempre me devuelve a index.

Título: Re: Redireccionar a página administrador
Publicado por: engel lex en 17 Diciembre 2017, 17:39 PM
Primero que nada, no uses la extensión mysql_ ya esta quedó obsoleta, usa mysqli_ o mysql::PDO

segundo... el string que empieza en la linea 12 despues de concatenar en la 15 no lo cierras dentro de comillas dobles si se evaluan las variables es decir

Código (php) [Seleccionar]
$a = "WHERE tx_username = '$usr'; "

esto es valido y $usr se evaluará


Código (php) [Seleccionar]
$fila=mysql_fetch_array($result) && $tipousuario="2"

y si puede ser, pero es preferiable evaluar directamente el contenido de fila