Bucle if no se tiene en cuenta

Iniciado por bgnumis, 17 Diciembre 2017, 23:34 PM

0 Miembros y 1 Visitante están viendo este tema.

bgnumis

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 (php) [Seleccionar]


<?php
    
include("conectar_bd.php");  
    
conectar_bd();

$usr $_POST['usuario'];
    
$pw $_POST['password'];
    
//Obtengo la version cifrada del password
    
$pw_enc md5($pw);
     
    
$sql1 "SELECT id_TipoUsuario FROM tbl_users
  WHERE tx_username = '"
.$usr."'";
            
    
$result1=mysql_query($sql1,$conexio); 
 
    
$uid "";
$rs=mysql_fetch_array($result1);

if( 
$rs[0]="2"){ 
     
    
$sql "SELECT id_usuario FROM tbl_users
            INNER JOIN ctg_tiposusuario
            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
            WHERE tx_username = '"
.$usr."'
            AND tx_password = '"
.$pw_enc."' ";  
    
$result     =mysql_query($sql,$conexio); 
 
    
$uid "";
     
    
//Si existe al menos una fila
    
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
    
}
    
 
    else {
      
?>

        <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>
     <?php
}

?>


engel lex

Código (php) [Seleccionar]
if ($rs[0]="2")

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

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

Mil gracias. ME ha encantado lo de tatuate. Graciassss

bgnumis

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 (php) [Seleccionar]



<?php
    
include("conectar_bd.php");  
    
conectar_bd();

$usr $_POST['usuario'];
    
$pw $_POST['password'];
    
//Obtengo la version cifrada del password
    
$pw_enc md5($pw);
     
    
$sql1 "SELECT id_TipoUsuario FROM tbl_users
  WHERE tx_username = '"
.$usr."'
   AND tx_password = '"
.$pw_enc."' ";  
  
 
            
    
$result1=mysql_query($sql1,$conexio); 
 
    
$uid "";
$rs=mysql_fetch_array($result1);

if( 
$rs[0]=="2"){ 
     
    
$sql "SELECT id_usuario FROM tbl_users
            INNER JOIN ctg_tiposusuario
            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
            WHERE tx_username = '"
.$usr."'
            AND tx_password = '"
.$pw_enc."'

"
;  
    
$result     =mysql_query($sql,$conexio); 
 
    
$uid "";
     
    
//Si existe al menos una fila
    
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
    



    

}

    

elseif( 
$rs[0]=="1"){ 
     
    
$sql "SELECT id_usuario FROM tbl_users
            INNER JOIN ctg_tiposusuario
            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
            WHERE tx_username = '"
.$usr."'
            AND tx_password = '"
.$pw_enc."'



"
;  
    
$result     =mysql_query($sql,$conexio); 
 
    
$uid "";
     
    
//Si existe al menos una fila
    
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="administrador.php">
            <input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
        </form>


<?php
    



   else {
        
//En caso de que no exista una fila...
        //..Crear un formulario para redireccionar al usuario a la pagina de login 
        //enviandole un codigo de error
?>

        <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>






bgnumis

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

Código (php) [Seleccionar]


<?php
else{


echo 
"<script>alert('Se ha equivocado en el pass o en el usuario');</script>"//saco una alerta de no autorizacion
echo "<script>window.location='index.php' ;</script>;" /// lo redirecciono a la pagina de login

}

?>




¿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