Foros del Web » Programando para Internet » PHP »

estado de usuario

Estas en el tema de estado de usuario en el foro de PHP en Foros del Web. hola tengo un problemita con la logica del php, en mi tabla de usarios tengo un campo de estado (habilitado o deshabilitado) de tipo integer ...
  #1 (permalink)  
Antiguo 03/12/2008, 16:17
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
estado de usuario

hola tengo un problemita con la logica del php, en mi tabla de usarios tengo un campo de estado (habilitado o deshabilitado) de tipo integer que puede ser 1 o 0y bueno queria validar para que cuando desee logear verificar el estado y dependiendo de eso que entre o no , pero por mas que pregunto, no consigo el resultado o se pasa de largoe sa pregunta. aqui mi codigo:

Código PHP:
session_start();
//Conexion a la Base de datos
include ('clase_mantenimiento.php');
$clase=new clasePrincipal();
$c=$clase->conectar("localhost","db_xxxx","root",".");

//Datos de Login
$usuario $_POST['usuario'];
$password $_POST['password'];

//Verificar    
$cad "select * from usuario where usuario_nombre='$usuario'";    
$datos mysql_query($cad);
$total=mysql_num_rows($datos);

//estado del usuario
$cad2 "select usuario_estado from usuario where usuario_nombre='$usuario'";
$estado  mysql_query($cad2);

if(
$estado==1){ //---> AQUI DESEO PREGUNTAR SOBRE EL ESTADO
    
if($total 0){
        
$cad "select * from usuario where   usuario_nombre='$usuario' and usuario_password='$password'";
        
$datos  mysql_query($cad);
        
$total mysql_num_rows($datos);
    
        if(
$total>0){
        
$nombre =mysql_result($datos,0,1);
        
$codigo =mysql_result($datos,0,0); 
        
$_SESSION["nombre"]=$nombre
        
header("location:emily_difusion_panel_usuario/index.php?u=$nombre&c=$codigo");
        }
        else{
            print 
"Clave Incorrecta";
        }
    }
    else{
        print 
"Usuario Incorrecto";
    }
}
else{
    print 
"Usuario Inhabilitado";
}
?> 
  #2 (permalink)  
Antiguo 03/12/2008, 16:28
 
Fecha de Ingreso: enero-2008
Ubicación: La Plata
Mensajes: 136
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: estado de usuario

Mira el problema puede ser que PHP toma como true al valor entero 1 y como false al 0.

Por lo tanto esta línea:
Código PHP:
if($estado==1){ 
Sería interpretada como verdadera siempre, ya que $estado siempre tiene un valor.

Lo que podrías hacer es usar === en vez de == o cambiar el tipo de valor del campo de la base de datos y consultar así:
Código PHP:
if($estado == 'activo'
Esas serían dos soluciones posibles.

Espero que te sirva , suerte!
  #3 (permalink)  
Antiguo 03/12/2008, 16:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: estado de usuario

Hola cesarpunk,

En primera haces muchas consultas, con 1 que hagas basta, por otro lado te falta descargar los resultados llamando a mysql_result, o a mysql_fetch_array, recuerda que mysql_query te devuelve un identificador de la consulta.

Saludos.
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 05:08.