Foros del Web » Programando para Internet » PHP »

Que diferencia hay en este codigo!!

Estas en el tema de Que diferencia hay en este codigo!! en el foro de PHP en Foros del Web. Hola a toda la comunidad. Hoy me encontre con un problemon, hasta que coloque otro "if" dentro del "else" pude hacer lo que queria. redirigir ...
  #1 (permalink)  
Antiguo 27/10/2008, 14:41
 
Fecha de Ingreso: diciembre-2005
Mensajes: 201
Antigüedad: 18 años, 4 meses
Puntos: 2
Pregunta Que diferencia hay en este codigo!!

Hola a toda la comunidad.
Hoy me encontre con un problemon, hasta que coloque otro "if" dentro del "else" pude hacer lo que queria. redirigir a la pagina de aplicacion.php

Código PHP:
while($rs=mssql_fetch_assoc($result)){

if(
$rs["nick"]==$username and $rs["password"]==$userpass){
    
header("Location: aplicacion.php");
    }else{
         if (
$rs["nick"]!=$username and $rs["password"]!=$userpass){
            
header("Location: login.php?error=si");
        }
    }
    
}
//fin while 
Mi pregunta es ¿ Que diferencia hay entre la delcaracion arriba con esta que expongo, puesto que segun yo son iguales pero con esta no me sale la redireccion. siempre me manda al login apesar de que los datos esten bien. y con la declaracion expuesta arriba si sale todo bien. alguien me puede explicar la diferencia??

Código PHP:
while($rs=mssql_fetch_assoc($result)){

if(
$rs["nick"]==$username and $rs["password"]==$userpass){
    
header("Location: intranet.php");
    }else{
       
header("Location: login.php?error=si");
        }
    
    
}
//fin while 
  #2 (permalink)  
Antiguo 27/10/2008, 14:44
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Que diferencia hay en este codigo!!

es que en la primera estas diciendo que si son correctos va a header("Location: intranet.php");
y si son incorrecto y si son incorrectos, comprueba dos veces lo mismo es una redundancia, else da por sentado que los datos son incorrectos ya que no se cumple ni $rs["nick"] ni $rs["password"]
  #3 (permalink)  
Antiguo 27/10/2008, 14:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Que diferencia hay en este codigo!!

¿Estas haciendo un sistema de login y asi es como compruebas el usuario y contraseña? O_O

Estas haciendo todo mal, comprueba el usuario y contraseña directo en la consulta MySQL.

$consulta = "SELECT * FROM tabla WHERE user='$username' AND pass='$password'";

Luego con mysql_num_rows revisas si devolvio o no resultados.
Sino devolvio resultados, es porque o la informacion es incorrecta, o dicho usuario no existe.

Si la informacion es correcta, guarda algun tipo de FLAG en una SESSION.
  #4 (permalink)  
Antiguo 27/10/2008, 14:55
 
Fecha de Ingreso: diciembre-2005
Mensajes: 201
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: Que diferencia hay en este codigo!!

jajaja muchas gracias por los regaños, pero solo asi puedo aprender. yo sabia que estaba mal. lo siento soy novato, y quiero aprender.

si esa es la mejor forma de hacer un login esta bien lo hare asi..
muchas gracias a los 2 por sus respuestas me an sacado de un apuro y a entender algo mas de programacion.

gracias.

PD. entonces no es bueno el fetch_assoc para un sistema???
algun tuto para login en php??
  #5 (permalink)  
Antiguo 27/10/2008, 15:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Que diferencia hay en este codigo!!

fetch_assoc, y fetch_row si es recomendable usarlos pero como te comenta Ronruby, es más "barato" para comprobar algo así usar mysql_num_rows.

Saludos.
  #6 (permalink)  
Antiguo 27/10/2008, 15:08
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Que diferencia hay en este codigo!!

Cita:
PD. entonces no es bueno el fetch_assoc para un sistema???
Si es bueno, pero cuando quieres rescatar valores de la base de datos.

Si haces el login de esa forma, imaginate que tengas 10,000 registros ... Y que el usuario que se loguio este de ultimo :P El bucle tendria que pasar por todas las posiciones antes de llegar a la correcta y autenticarlo.

Cita:
algun tuto para login en php??
http://www.forosdelweb.com/f18/aport...aporte-561417/
  #7 (permalink)  
Antiguo 27/10/2008, 15:19
 
Fecha de Ingreso: diciembre-2005
Mensajes: 201
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: Que diferencia hay en este codigo!!

ok muchas gracias a todos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:48.