Foros del Web » Programando para Internet » PHP »

Validación de passwords

Estas en el tema de Validación de passwords en el foro de PHP en Foros del Web. Hola amigos, acabo de ver este foro y me he registrado... tiene buena pinta. Por supuesto, me he registrado porque tengo un problem y me ...
  #1 (permalink)  
Antiguo 12/04/2005, 06:37
 
Fecha de Ingreso: abril-2005
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Validación de passwords

Hola amigos, acabo de ver este foro y me he registrado... tiene buena pinta.

Por supuesto, me he registrado porque tengo un problem y me gustaria exponerlo aqui, a ver si alguien sabe y quiere ayudarme.

Estoy haciendo una pagina PHP conectada a una BD en mysql. la BD Se trata de un listado de clientes y usuarios, de manera que los usuarios entrarán en la página, pondrán su password y podrán ver el listado de clientes (ademas de otras cosas). Los usuarios y sus passwords están almacenados en la BD, y la interface de entrada son dos campos de texto, uno para el nombre de usuario, y otro para la contraseña. Ya he conectado con la BD desde la página, y puedo ver y sacar los registros en una lista utilizando el siguiente código:

$result=mysql_query("select * from usuarios",$link);
while($row = mysql_fetch_array($result)) {
printf("<tr class=\"CLIE-LINEAS\"><td>&nbsp;%s</td><td>&nbsp;... Etcétera.

No obstante, no se como hacer para comparar el texto introducido en las cajas de texto con los registros de los campos de nombre de usuario y contraseña en la Base de Datos, de manera que si coinciden, la página te deje pasar a ver el listado, y si no coindiden de un mensaje de error. Lo he intentado de varias formas y siempre se muestra el mensaje de error (aunque haya introducido bien los datos). Alguien puede darme alguna pista?


PD: Me explico como un libro abierto... lo siento.
  #2 (permalink)  
Antiguo 12/04/2005, 08:33
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 15 años
Puntos: 0
Por ejemplo: creas un formulario con dos campos de texto llamados "usuario" y "password". El formulario debe enviar los datos al scripts "login.php".

En el script "login.php" pones algo así:

Código PHP:
<?php
    
if($_POST['usuario'] && $_POST[]'usuario']) {
        
// Formatear usuario y password
        
$usuario mysql_real_escape_string($_POST['usuario']);
        
$password mysql_real_escape_string($_POST['password']);                
        
        
// Buscar en BBDD
        
$sql msqyl_query("select count(*) from usuarios where usuario='$usuario' AND password='$password'");
        
        
// Si encontramos alguna coincidencia correcto
        
if(mysql_result($sql,0) == 1) {
            
// CORRECTO            
        
} else {
            
// ERROR             
        
}        
    } else {
        
// ERROR    
    
}
?>
Además seria recomendable que no guardar las contraseñas como texto legible en la base de datos. Lo mejor es que al guardarlos los guardes despues de codificarlos con la funcion md5() y luego, al comprobar la validez del mismo hagas lo mismo, es decir:

Código PHP:
<?php
    
if($_POST['usuario'] && $_POST[]'usuario']) {
        
// Formatear usuario y password
        
$usuario mysql_real_escape_string($_POST['usuario']);
        
$password md5($_POST['password']);                
        
        
// Buscar en BBDD
        
$sql msqyl_query("select count(*) from usuarios where usuario='$usuario' AND password='$password'");
        
        
// Si encontramos alguna coincidencia correcto
        
if(mysql_result($sql,0) == 1) {
            
// CORRECTO            
        
} else {
            
// ERROR             
        
}        
    } else {
        
// ERROR    
    
}
?>
Espero que te sea de ayuda.
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
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 21:56.