Foros del Web » Programando para Internet » PHP »

problemon

Estas en el tema de problemon en el foro de PHP en Foros del Web. hola denuevo tengo la siguiente funcion para hacer una consulta en la bd Código PHP: <?php  function  revisa_password_usuario ( $usuario , $password ,  $tipo ) ...
  #1 (permalink)  
Antiguo 15/06/2005, 16:18
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 19 años, 5 meses
Puntos: 0
problemon

hola denuevo

tengo la siguiente funcion para hacer una consulta en la bd

Código PHP:
<?php 
function revisa_password_usuario($usuario,$password$tipo)
{
    global 
$db
      
    
$consulta="SELECT * FROM $tipo WHERE usuario = '$usuario' AND password = '$password'";
    
    
$res mysql_query($consulta,$db);

    if (!
$res) {
        
trigger_error("Falló consulta"E_USER_ERROR);
        return(
0);
    }  

    if (
$fila mysql_fetch_array($res))
       return 
$fila;
   
    
    return(
01);
  }
?>
pero el problema es ke por alguna razon(algo debo haber echo pero nose ke) SIEMPRE retorna 0(osea ke no existe $res) aunke los valores ke resiva sean correctos, y gracias a ese error no puedo logear en mi aplicacion.
lo mas raro es ke al comienzo funcionaba perfectamente pero de un momento a otro dejo de funcionar

esop ayudenme plz T_T
graxias
  #2 (permalink)  
Antiguo 15/06/2005, 20:17
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
consulta db

Pues si que estas en un problemon, cree una base de datos con su tabla respectiva, la funcion trabaja correctamente, lo que pienso es que el error esta afuera de la funcion, seguro algun error de dedo, con eso de que antes funcionaba.

<?php

$db = @mysql_connect('localhost','root','')
or die("no hay connexion");

mysql_select_db('prueba',$db);

function revisa_password_usuario($usuario,$password, $tipo)
{
global $db;
$consulta="SELECT * FROM $tipo WHERE usuario = '$usuario' AND password = '$password'";

$res = mysql_query($consulta,$db);

if (!$res) {
trigger_error("Falló consulta", E_USER_ERROR);
return(0);
}

if ($fila = mysql_fetch_array($res))
return $fila;

return(01);
}

$resultado = revisa_password_usuario('karo','pkaro','tipo');
echo "<br>";
print_r( $resultado);
?>
mi salida a print_r($resultado)
Array ( [0] => 3 [id] => 3 [1] => karo [usuario] => karo [2] => pkaro [password] => pkaro )
o.k. no es adecuado usarlo asi, pero solo es una prueba de que sale algo.
  #3 (permalink)  
Antiguo 15/06/2005, 20:26
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 19 años, 5 meses
Puntos: 0
bueno, este es el codigo donde llamo a la funcion, por lo menos yo no veo ningun error(algo se me tiene ke estar pasando)

Código PHP:
if($_POST['tipo']=='alumno')
 {
         
$usuario_existe=revisa_password_usuario($_POST['usuario'], $_POST['password'], $_POST['tipo']);
        if(
$usuario_existe==01)                                                                         
        {
           
$mensaje="usuario no registrado";
             
header("Location:index.php?mensaje=$mensaje");
        }
        else             
             
header("Location:alumno.php");
 }
 else
 {
    
$usuario_existe=revisa_password_usuario($_POST['usuario'], $_POST['password'], $_POST['tipo']);
         if(
$usuario_existe==01)
        {
           
$mensaje="usuario no registrado";
             
header("Location:index.php?mensaje=$mensaje");
        }
        else
             
header("Location:profesor.php");
    } 
  #4 (permalink)  
Antiguo 15/06/2005, 20:37
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
y asi--

Código PHP:
<?php
function revisa_password_usuario($usuario,$password$tipo){
    global 
$db;

    
$consulta="SELECT * FROM $tipo WHERE usuario = '$usuario' AND password = '$password'";

    
$res mysql_query($consulta,$db);

    if(empty(
$res)){
        
trigger_error("Falló consulta"E_USER_ERROR);
        return(
0);
    }else{
           
$fila mysql_fetch_array($res))
    }
    return 
$fila[0][1];
  }
?>
__________________
3w.valenciadjs.com
3w.laislatv.com
  #5 (permalink)  
Antiguo 15/06/2005, 20:45
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
te falta un corchete, sera eso??
return $fila[0][1);

una curiosidad, por que usas 01 y no 1
if($usuario_existe==01)
  #6 (permalink)  
Antiguo 15/06/2005, 22:31
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
mysql_fetch_array

lo encontre!!!! no tienes ningun problema con tu funcion, el asunto es solo lo que estas regresando, con return $file[0][1], estas suponiendo que tienes un arreglo de dos dimensiones, cuando solo tiene una dimension. Compruebalo con lo siguiente:

}else {
$fila = mysql_fetch_array($res);
}
//return $fila[0][1];
return $fila;
}

$resultado = revisa_password_usuario('karo','pkaro','tipo');
echo "....<br>";
foreach($resultado as $k=>$v){
echo $k . " : " . $v . "<br>";
}
echo "usuario: " . $resultado['usuario'] ." password: " . $resultado['password'];
..........
el foreach te dara algo asi:
0 : 2
id : 2
1 : karo
usuario : karo
2 : pkaro
password : pkaro

como veras el arreglo es unidemensional. y con $resultado['usuario'] y $resultado['password'] obtendras los datos que necesitas.
p.d. el mensaje anterior fue un lapsus brutus.
  #7 (permalink)  
Antiguo 15/06/2005, 23:01
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
Lo siento me enrede con los correos.
Ahora si, probe una vez mas el codigo de dark_night. La pregunta es que no te funciona?. Si introduzco los datos correctos me manda a la pagina del alumno.php si no introduzco correctamente algun dato me dirige a la pagina index.php con un mensaje de "usuario no registrado".
  #8 (permalink)  
Antiguo 16/06/2005, 15:38
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 19 años, 5 meses
Puntos: 0
Cita:
Iniciado por Patriciam
Lo siento me enrede con los correos.
Ahora si, probe una vez mas el codigo de dark_night. La pregunta es que no te funciona?. Si introduzco los datos correctos me manda a la pagina del alumno.php si no introduzco correctamente algun dato me dirige a la pagina index.php con un mensaje de "usuario no registrado".
exactamente, el problema es ke aunke los datos esten correctos la funcion retorna 0, ke es cuando falla la consulta, y nose porke
  #9 (permalink)  
Antiguo 17/06/2005, 08:11
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 19 años, 5 meses
Puntos: 0
alguien :(
  #10 (permalink)  
Antiguo 17/06/2005, 09:27
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
La unica manera en que pude reproducir el error, fue dando un nombre incorrecto a la base de datos o al la tabla o a las columnas de la tabla. probaste ver que no. de error de da mysql? 1046: es si no llego a la consulta, 1054; incorrecta la consulta.

if (!$res) {
echo mysql_error . " : " . mysql_errno();
trigger_error("Falló consulta", E_USER_ERROR);
return(0);
}
  #11 (permalink)  
Antiguo 17/06/2005, 09:33
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
up's, se me fue el parentesis a mysql_error():
echo mysql_error() . " : " . mysql_errno();
  #12 (permalink)  
Antiguo 17/06/2005, 12:11
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 19 años, 5 meses
Puntos: 0
gracias, corregido pero ahora tengo otro problema, aunke los datos sean correctos me dice k no existe, osea si entro como alumno me dice ke el alumno no existe aunke los datos esten en la tabla
  #13 (permalink)  
Antiguo 17/06/2005, 15:17
 
Fecha de Ingreso: junio-2005
Mensajes: 15
Antigüedad: 18 años, 10 meses
Puntos: 0
como los estas buscando, yo ahi los veo, usa un print_r

$usuario_existe=revisa_password_usuario($_POST['usuario'], $_POST['password'], $_POST['tipo']);
if($usuario_existe==01)
{
$mensaje="usuario no registrado";
header("Location:index.php?mensaje=$mensaje");
}
else
{
//header("Location:alumno.php");
print_r($usuario_existe);

a mi me regresa este resultado:
Array ( [0] => 1 [id] => 1 [1] => karo [usuario] => karo [2] => pkaro [password] => pkaro )
  #14 (permalink)  
Antiguo 17/06/2005, 15:19
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 19 años, 5 meses
Puntos: 0
problema solucionado, habia un error con los nombres de las tablas

grax
  #15 (permalink)  
Antiguo 17/06/2005, 21:23
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 3 meses
Puntos: 0
te hiba a sugerir que revisaras los nombres de la tabla pero veo que ya lo hiciste de igual modo:
Código PHP:
<?php 
function revisa_password_usuario($usuario,$password$tipo

    global 
$db
       
    
$consulta="SELECT * FROM $tipo WHERE usuario = '$usuario' AND password = '$password'"
     

    if (!
mysql_query($consulta,$db)) { 
        
trigger_error("Falló consulta"E_USER_ERROR); 
        return(
0); 
    }else{
        
$fila mysql_fetch_array($res); 
        return 
$fila;
    }

    return(
01); 
  } 
?>
menos codigo ;)
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
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 07:48.