Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Consulta SQL con MD5 en PostgreSQL (https://www.clubdelphi.com/foros/showthread.php?t=34240)

halizia 02-08-2006 13:44:55

Consulta SQL con MD5 en PostgreSQL
 
hola de nuevo :o

me da error una consulta en php con la base de datos postgre, lo que quiero hacer es la autenticación de usuarios, para ello cifro la clave con md5 :

Código PHP:


$encripta
=md5($pass);
$consulta="select count(*) from ml_users where username=".$user."AND password=".$encripta;
$result=pg_query($database,$consulta);
$fila=pg_fetch_row($result);
 if (
$fila[0]>1){
    echo 
"te has identificado correctamente<br>";
}else{
    echo(
"no te has identificado correctamente<br>"); 

el error que me da es este: Warning: pg_query(): Query failed: ERROR: syntax error at or near "password" at character 53


Gracias :)

dec 02-08-2006 13:58:41

Hola,

Parece un problema con cómo se recibe la consulta: creo que algunas comillas sobran y otras faltan. Prueba con algo como esto:

Código PHP:

$consulta "SELECT COUNT(*) FROM ml_users
             WHERE (username = '
$user' AND password = '$encripta');"


D-MO 02-08-2006 14:01:05

Talvez ayudaría ponerle las comillas a los datos.
Ej:
Código PHP:

$consulta="select count(*) from ml_users where username='".$user."'AND password='".$encripta."'"

Saludos.

Jejeje// Un poco tarde según me parece.

Saludos David.

dec 02-08-2006 14:09:12

Hola,

El caso es que no es necesario "partir y unir" la cadena con la sentencia SQL, puesto que desde el momento en que esta se encierra entre comillas dobles, las variables serán expandidas por PHP correctamente. Es decir, que puede hacerse esto perfectamente:

Código PHP:

$consultaSql "SELECT nombre FROM usuarios WHERE id = '$nombre';"

La variable "$nombre" se expandirá sin problemas, no tenemos que partir y volver a unir la cadena con la consulta SQL, con lo que eso significa en cuanto a legibilidad de la consulta, entre otras cosas.

Lo que sí creo que es importante es encerrar entre comillas simples la variable "$nombre", puesto que de otro modo la consulta puede terminar sintácticamente incorrecta, que es lo que le está ocurriendo al compañero.

¡Saludos! :)

Emilio 02-08-2006 20:02:17

Cita:

Empezado por halizia
Código PHP:

$encripta=md5($pass);
$consulta="select count(*) from ml_users where username=".$user."AND password=".$encripta


Con lo que haces, el valor de $consulta será algo parecido a esto...

Código SQL [-]
select count(*) from ml_users where username=fulanito ANDpassword=mipassword

Cualquier motor SQL va a quejarse con semejante cadena, te sugiero esto...

Código PHP:

$encripta=md5($pass);
$consulta="select count(*) from ml_users where username='$user' AND  password='$encripta'; 



La franja horaria es GMT +2. Ahora son las 22:37:27.

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