Ver Mensaje Individual
  #7 (permalink)  
Antiguo 19/04/2004, 11:42
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ludwingg

Si tu guardas tus contraseñas en formato MD5() de encriptación de un sólo sentido ( no se pueden desencriptar) .. al "autentificar" a tu usuario debes aplicar la función MD5() (de PHP o de Mysql) al campo que ingresa tu usuario de "contraseña" a la hora de hacer tu consulta SQL.

Usando MD5() desde SQL sería:

Código PHP:
$ssql "SELECT * FROM tabla_usuario WHERE nombre_usuario='".$name."' AND contrasena=MD5('".$contrasena."')"
Y desde PHP:

Código PHP:
$ssql "SELECT * FROM tabla_usuario WHERE nombre_usuario='".$name."' AND contrasena='".md5($contrasena)."'"
Y ojo .. El ejemplo que puso codegirl usa MD5() en SQL .. así que tendrías que haber quitado tu aplicación de md5() desde PHP y cuidado con las comillas (yo concatenaría como arriba indico):

Código PHP:
$conn mysql_connect("localhost","",""); 
//$contrasena = md5($contrasena);
$ssql "SELECT * FROM tabla_usuario WHERE nombre_usuario='$name' AND contrasena=md5('$contrasena')"
A todo esto . suponemos que en tu BD guardastes las contraseñas en MD5() .. por qué si no es así la comparación fallará .. El otro poblema que puedas tener sería por ejemplo si la cadane codificada fuese por ejemplo 'mipassword' en lugar de mipassword .. esos ' de más ya no serían lo mismo (el mismo MD5()) si comparas luego sin esos ' (comillas) que puedan haberse colado en el INSERT o en el SELECT .. Recomandable usar concatenación:

Código PHP:
mysql_db_query("mibase","Insert into tabla_usuario (nombre_usuario, contrasena) values ('".$name."',md5('".$contrasena."'))"); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 19/04/2004 a las 11:56