Foro de elhacker.net

Programación => 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
  1.  
  2. <?php
  3.  
  4.    //conectar BD
  5.    include("conectar_bd.php");  
  6.    conectar_bd();
  7.  
  8.    $usr = $_POST['usuario'];
  9.    $pw = $_POST['password'];
  10.  
  11.  
  12.    $sql = "SELECT id_usuario FROM tbl_users
  13.            INNER JOIN ctg_tiposusuario
  14.            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
  15.            WHERE tx_username = '".$usr."'
  16.  
  17.    $result     =mysql_query($sql,$conexio);
  18.  
  19. $tipousuario=ctg_tiposusuario.id_TipoUsuario;
  20.  
  21.    $uid = "";
  22.  
  23.    //Si existe al menos una fila
  24.    if( $fila=mysql_fetch_array($result) && $tipousuario="2")
  25.    {      
  26.        //Obtener el Id del usuario en la BD        
  27.        $uid = $fila['id_usuario'];
  28.        //Iniciar una sesion de PHP
  29.        session_start();
  30.        //Crear una variable para indicar que se ha autenticado
  31.        $_SESSION['autenticado']    = 'SI';
  32.        //Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
  33.        $_SESSION['uid']            = $uid;
  34.        //CODIGO DE SESION
  35.  
  36.        //Crear un formulario para redireccionar al usuario y enviar oculto su Id
  37. ?>
  38.        <form name="formulario" method="post" action="administrador.php">
  39.            <input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
  40.        </form>
  41. <?php
  42.    }
  43.    else {
  44.  
  45. if( $fila=mysql_fetch_array($result))
  46.    {      
  47.        //Obtener el Id del usuario en la BD        
  48.        $uid = $fila['id_usuario'];
  49.        //Iniciar una sesion de PHP
  50.        session_start();
  51.        //Crear una variable para indicar que se ha autenticado
  52.        $_SESSION['autenticado']    = 'SI';
  53.        //Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
  54.        $_SESSION['uid']            = $uid;
  55.        //CODIGO DE SESION
  56.  
  57.        //Crear un formulario para redireccionar al usuario y enviar oculto su Id
  58. ?>
  59.        <form name="formulario" method="post" action="principalcero.php">
  60.            <input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
  61.        </form>
  62. <?php
  63.    }
  64.  
  65. ?>
  66.        <form name="formulario" method="post" action="index.php">
  67.            <input type="hidden" name="msg_error" value="1">
  68.        </form>
  69. <?php
  70.    }
  71. ?>
  72.  
  73. <script type="text/javascript">
  74.    //Redireccionar con el formulario creado
  75.    document.formulario.submit();
  76. </script>
  77.  
  78.  
  79.  
  80.  


¿Esto se haría así? En la primera condición del if intento poner dos condiciones
Código
  1. $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
  1. $a = "WHERE tx_username = '$usr'; "

esto es valido y $usr se evaluará


Código
  1. $fila=mysql_fetch_array($result) && $tipousuario="2"

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