Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Inicio sesión php y firebird (https://www.clubdelphi.com/foros/showthread.php?t=70837)

Poke 12-11-2010 23:19:05

Inicio sesión php y firebird
 
Hola a todos.. tengo un código de php que encontré que me dice como acceder con un nombre de usuario y contraseña .. pero utiliza la base de datos mysql .. quería pasarla a firebird .. pero me sale unos errores, me reconoce el nombre de usuario pero no la contraseña.. he buscado en el foro y nada solo hay condigo para acceder a mysql. El código es el siguiente:

los datos los recibo desde un formulario

Código PHP:



$cnx 
conectar();
         
$stmt "select * from usuarios where usuario = '$usuario'";
         
$userQuery ibase_query($cnx$stmt);
                    
        
// revisamos usuario y password
        
if (ibase_num_fields($userQuery) > 0
        {
            
// usuario existe, seguimos
             
if (!$usuario ibase_fetch_assoc($userQuery))
                {
                
// caso sensitivo, usuario no está presente en bd
                
$message "Usuario no Existe";
                   include(
"interface.php");
                exit;
                }
                
            if (!
$userQuery['clave'])
                {
                
// no tiene clave en bd, no entra
                
$message "No se encontró contraseña para el usuario";
                include(
"interface.php");
                exit;
                }
                
            if (
stripslashes($userQuery['clave']) != $clave)
                {
                
// contraseña es incorrecta
                
echo 'clave incorrecta';
                include(
"interface.php");
                exit;
                }
        }else{
            
// usuario no existe del todo.
            
$message "Usuario no Existeee ";
               include(
"interface.php");
            exit;
        }
        
?> 



Si me pueden ayudar en donde estoy mal soy nuevo con php, desde ya gracias…

Poke 20-11-2010 22:04:15

Mmm
 
Holaa alguien que me ayude :confused:… alguien que sepa programación php + firebirtd.. mmm o voy a tener que cambiarme a mysql…:rolleyes:

Casimiro Notevi 20-11-2010 22:17:52

Especifica claramente qué problema tienes, qué error, etc. es que no somos adivinos, y si dices: "pero me sale unos errores,", con eso no podemos ayudarte mucho.
Recuerda leer nuestra guía de estilo, gracias.

Poke 20-11-2010 23:36:24

mm
 
Perdón x no ser especifico en la pregunto soy novato en esto…


El problema es el siguiente, envio los datos del formulario y este es el código de comprobación de la contraseña, cuando ingreso el nombre de usuario y la contraseña y presiono enviar, al comprobar el nombre de usuario todo bien pero al comprobar la contraseña me dice que no existe, es como que no lee los datos de la tabla..
Pero los datos si están en la base.

Utilizo firebird, tabla usuarios

Descripción tipo
--------------------------------
Id integer
Usuario char
Clave char




Este es el codigo que utilizo...


Código PHP:

 $cnx conectar();
$stmt "select usuario, clave from usuarios where usuario = '$usuario'";
         
$userQuery ibase_query($cnx$stmt);
                    
        
// revisamos usuario y password
        
if (ibase_num_fields($userQuery) > 0
        {
            
// usuario existe, seguimos
             
if (!$usuario ibase_fetch_object($userQuery))
                {
                
// caso sensitivo, usuario no está presente en bd
                
$message "Usuario no Existe";
                   include(
"interface.php");
                exit;
                }
                
            if (!
$userQuery['clave'])
                {
                
// no tiene clave en bd, no entra
                
$message "No se encontró contraseña para el usuario..";
                include(
"interface.php");
                exit;
                }
                
            if (
stripslashes($userQuery['clave']) != $clave)
                {
                
// contraseña es incorrecta
                
echo 'clave incorrecta';
                include(
"interface.php");
                exit;
                }
        }else{
            
// usuario no existe del todo.
            
$message "Usuario no Existeee ";
               include(
"interface.php");
            exit;
        }
        
?> 




el usurio todo bien pero al comprobar la clave no funciona..


Código PHP:



     
            
if (!$userQuery['clave'])
                {
                
// no tiene clave en bd, no entra
                
$message "No se encontró contraseña para el usuario..";
                include(
"interface.php");
                exit;
                } 


La verdad no sé si este código está bien … la verdad x que los datos están en la tabla lo que es el usuario y la clave.. o si me puede dar algun ejemplo sobre esto... desde ya gracias...

Casimiro Notevi 30-11-2010 14:32:37

Desconozco php, a ver si algún compañero te puede echar una mano.

roman 30-11-2010 18:18:24

La variable $userQuery no es más que el identificador del conjunto de resultados que te devuelve ibase_query. La fila correspondiente la tienes en $usuario cuando llamas a ibase_fetch_assoc, así que es esa variable la que tendrías que consultar.

// Saludos

Poke 02-12-2010 22:20:04

Hola de nuevo gracias por su atención a mi tema.. y con respecto a lo que comentas roman tienes razón no me di cuenta de ese detalle.. Lo he modificado y va perfecto esa parte.. pero ahora tengo otro inconveniente, al momento de comparar la contraseña no funciona.. la contraseña existe e imprimo de esta manera:

Código PHP:

if (stripslashes($usuario['CLAVE']) != $clave)
               {
                
// contraseña es incorrecta
                
$message $usuario['CLAVE'] ;
                include(
"interface.php");
                exit;
                } 

Imprimo en el mensaje el dato de la clave extraída de la base de datos y si lo visualizo pero no me compara: investigando encontré algo sobre la función stripslashes (nos devuelve la cadena de texto introducida sin los caracteres de la barra inclinada \)..



Si alguien me puede ayudar para terminar este problemilla que tengo desde ya gracias;)

Poke 02-12-2010 22:21:31

para mayor entendimiento esto es lo que consulte:

Código PHP:

$userQuery mysql_query("SELECT * FROM usuarios WHERE usuario = '$usuario'") or die(mysql_error());
    

if (
mysql_num_rows($userQuery) > 0) {

    
$userArray mysql_fetch_array($userQuery);
        
    if (
$usuario != $userArray['usuario']) {
        
// caso sensitivo, usuario no está presente en bd
        
$message "Usuario no Existe";
        echo 
$message;
        include(
"interface.php");
        exit;
    }
    if (!
$userArray['clave']) {
        
// no tiene clave en bd, no entra
        
$message "No se encontró contraseña para el usuario";
        include(
"interface.php");
        exit;
    }
    if (
stripslashes($userArray['clave']) != $clave) {
    
        
$message "Contraseña es incorrecta";
        include(
"interface.php");
        exit;
    }
}else{
    
// usuario no existe del todo.
    
$message "Usuario no Existe";
    include(
"interface.php");
    exit;
}

?> 


Y esto es lo que he intentado hacer

Código PHP:

 $stmt "select usuario, clave from usuarios where usuario = '$usuario'";
         
$userQuery ibase_query($cnx$stmt);
         
         
                         
        
// revisamos usuario y password
        
if (ibase_num_fields($userQuery) > 0
        {
            
// aqui lo pongo la funcion (ibase_fetch_assoc) 
            //la funcion (mysql_fetch_array) no existe para firebird
             
               
if (!$usuario ibase_fetch_assoc($userQuery))
                {
                
// caso sensitivo, usuario no está presente en bd
                
$message "Usuario no Existe";
                   include(
"interface.php");
                exit;
                }
                
            if (!
$usuario['CLAVE'])
                {
                
// no tiene clave en bd, no entra
                
$message "No se encontró contraseña para el usuario..";
                include(
"interface.php");
                exit;
                }
               
               if (
stripslashes($usuario['CLAVE']) != $clave)
               {
                
// contraseña es incorrecta
                
$message =  $clave ;
            
//    $message = $clave;
                
include("interface.php");
                exit;
                }
            }else{
                
// usuario no existe del todo.
                
$message "Usuario no Existeee ";
                   include(
"interface.php");
                exit;
            } 


A ver si me pueden ayudar… :)

Poke 05-12-2010 20:18:57

resuelto
 
Problema resuelto... un dolo r de cabeza pera ya estaa....¡¡¡ :cool:

Casimiro Notevi 05-12-2010 20:47:36

Vaya, te ha costado, pero seguro que ahora lo tienes bien aprendido para la siguiente vez :)

Poke 06-12-2010 22:49:20

Si gracias casimiero.. pero les seguire molestando por otros problemillas... que la pases bien..;)

Casimiro Notevi 07-12-2010 01:35:11

Cita:

Empezado por Poke (Mensaje 384164)
Si gracias casimiero.. pero les seguire molestando por otros problemillas... que la pases bien..;)

Muy bien, procuraremos estar por aquí para lo que podamos ayudar :)

georkis 20-12-2010 19:02:45

Bueno chicos
 
Les diré que el campo contraseña del formulario debe tener una encriptación md5 u otros tipo... y a la hora de comparar las contraseña con la base de datos guaooo hay conflicto... asi que hay que poner lo siguiente más o menos así...

[php]
md5($_POST['password'])
[php]

Poke 23-12-2010 09:25:56

Hola
 
Hola.. Gracias x tu respuesta mira si me pudieras dar un poco más de información sobre la encriptación… me seria de mucha ayuda. He estado investigando y creo que es muy necesario encriptar la contraseña pero no encuentro un ejemplo claro sobre esto…


Si me pudieras dar un pequeño ejemplo me seria de mucha ayuda.. gracias desde ya..¡:)


La franja horaria es GMT +2. Ahora son las 14:48:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi