elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Bucle if no se tiene en cuenta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Bucle if no se tiene en cuenta  (Leído 1,983 veces)
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Bucle if no se tiene en cuenta
« en: 17 Diciembre 2017, 23:34 pm »

Hola,

A ver si me podéis ayudar. He hecho una pregunta hace poco pero no es la misma y por eso la abro en este nuevo post.

Sé que utilizo mysql y debería utilizar mysqli (estoy en ello).

La duda es la siguiente:

En el siguiente código quiero que me dirija a una página si if( $rs[0]="2") es 2 o me lleve a otra si es 1.

No hay manera que me lo haga, parece como que lo omite (no sé por qué)

Si me registro con un usuario que tenga id_TipoUsuario=1 el código tal como está no debería seguien en el if( $rs[0]="2") y sin embargo lo omite y sí lo logea.

Mi idea era poner al final del código lo mismo con if( $rs[0]="1")  y copiar pero redireccionando a administrador.php pero nada, no hay manera.

A ver si me podéis orientar en dónde está el error

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


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.458



Ver Perfil
Re: Bucle if no se tiene en cuenta
« Respuesta #1 en: 17 Diciembre 2017, 23:50 pm »

Código
  1. if ($rs[0]="2")

tatuate -> "=" es asignacion, "==" es comparación!



En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: Bucle if no se tiene en cuenta
« Respuesta #2 en: 18 Diciembre 2017, 00:00 am »

Mil gracias. ME ha encantado lo de tatuate. Graciassss
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: Bucle if no se tiene en cuenta
« Respuesta #3 en: 18 Diciembre 2017, 14:42 pm »

Hola,

He conseguido que me incorpore la validación por tipo de usuario, pero me falta añadir un else (en caso de que el usuario se equivoque en el user o en pass) que me redireccione a index.php

Lo incluyo en diferentes partes (entendría que debería aparecer dos veces por cada if $rs[0]=="2" o "1" pero no hay manera que me redirija al index.php

A ver si me podéis dar una orientación

Mi código es:

Código
  1.  
  2.  
  3. <?php
  4.    include("conectar_bd.php");  
  5.    conectar_bd();
  6.  
  7. $usr = $_POST['usuario'];
  8.    $pw = $_POST['password'];
  9.    //Obtengo la version cifrada del password
  10.    $pw_enc = md5($pw);
  11.  
  12.    $sql1 = "SELECT id_TipoUsuario FROM tbl_users
  13.  WHERE tx_username = '".$usr."'
  14.   AND tx_password = '".$pw_enc."' ";  
  15.  
  16.  
  17.  
  18.    $result1=mysql_query($sql1,$conexio);
  19.  
  20.    $uid = "";
  21. $rs=mysql_fetch_array($result1);
  22.  
  23. if( $rs[0]=="2"){
  24.  
  25.    $sql = "SELECT id_usuario FROM tbl_users
  26.            INNER JOIN ctg_tiposusuario
  27.            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
  28.            WHERE tx_username = '".$usr."'
  29.            AND tx_password = '".$pw_enc."'
  30.  
  31. ";  
  32.    $result     =mysql_query($sql,$conexio);
  33.  
  34.    $uid = "";
  35.  
  36.    //Si existe al menos una fila
  37.    if( $fila=mysql_fetch_array($result) ) {      
  38.        //Obtener el Id del usuario en la BD        
  39.        $uid = $fila['id_usuario'];
  40.        //Iniciar una sesion de PHP
  41.        session_start();
  42.        //Crear una variable para indicar que se ha autenticado
  43.        $_SESSION['autenticado']    = 'SI';
  44.        //Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
  45.        $_SESSION['uid']            = $uid;
  46.        //CODIGO DE SESION
  47.  
  48.        //Crear un formulario para redireccionar al usuario y enviar oculto su Id
  49. ?>
  50.        <form name="formulario" method="post" action="principalcero.php">
  51.            <input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
  52.        </form>
  53.  
  54. <?php
  55.    }
  56.  
  57.  
  58.  
  59.  
  60. }
  61.  
  62.  
  63.  
  64. elseif( $rs[0]=="1"){
  65.  
  66.    $sql = "SELECT id_usuario FROM tbl_users
  67.            INNER JOIN ctg_tiposusuario
  68.            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
  69.            WHERE tx_username = '".$usr."'
  70.            AND tx_password = '".$pw_enc."'
  71.  
  72.  
  73.  
  74. ";  
  75.    $result     =mysql_query($sql,$conexio);
  76.  
  77.    $uid = "";
  78.  
  79.    //Si existe al menos una fila
  80.    if( $fila=mysql_fetch_array($result) )
  81.    {      
  82.        //Obtener el Id del usuario en la BD        
  83.        $uid = $fila['id_usuario'];
  84.        //Iniciar una sesion de PHP
  85.        session_start();
  86.        //Crear una variable para indicar que se ha autenticado
  87.        $_SESSION['autenticado']    = 'SI';
  88.        //Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
  89.        $_SESSION['uid']            = $uid;
  90.        //CODIGO DE SESION
  91.  
  92.        //Crear un formulario para redireccionar al usuario y enviar oculto su Id
  93. ?>
  94.        <form name="formulario" method="post" action="administrador.php">
  95.            <input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
  96.        </form>
  97.  
  98.  
  99. <?php
  100.    }
  101.  
  102.  
  103.   else {
  104.        //En caso de que no exista una fila...
  105.        //..Crear un formulario para redireccionar al usuario a la pagina de login
  106.        //enviandole un codigo de error
  107. ?>
  108.        <form name="formulario" method="post" action="index.php">
  109.            <input type="hidden" name="msg_error" value="1">
  110.        </form>
  111. <?php
  112.    }
  113.  
  114.  
  115. }?>
  116.  
  117.  
  118. <script type="text/javascript">
  119.    //Redireccionar con el formulario creado
  120.    document.formulario.submit();
  121. </script>
  122.  
  123.  
  124.  


 
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: Bucle if no se tiene en cuenta
« Respuesta #4 en: 18 Diciembre 2017, 17:55 pm »

He visto que a veces se utiliza este código en el else

Código
  1.  
  2. <?php
  3. else{
  4.  
  5.  
  6. echo "<script>alert('Se ha equivocado en el pass o en el usuario');</script>"; //saco una alerta de no autorizacion
  7. echo "<script>window.location='index.php' ;</script>;" /// lo redirecciono a la pagina de login
  8.  
  9. }
  10.  
  11. ?>
  12.  
  13.  

¿Esto dónde lo podría colocar para que me redireccionara si el pass o el user no coinciden?

Muchas Gracias a ver si me podéis ayudar

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 14,957 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
No ze tiene en cuenta la hortojrafía para ebaluar un zitio güe
Noticias
wolfbcn 0 909 Último mensaje 27 Octubre 2011, 12:58 pm
por wolfbcn
Mi sistema operativo solo tiene cuenta de invitado...
Windows
Jose_Maria_EF 2 1,815 Último mensaje 8 Abril 2012, 21:07 pm
por Jose_Maria_EF
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines