Foros del Web » Programando para Internet » PHP »

cambiar password de la base de datos

Estas en el tema de cambiar password de la base de datos en el foro de PHP en Foros del Web. estoy probando un sistema de autentificación. El asunto es q me gustaría poder cambiar la contraseña con un script. Necesitaré un formulario con 3 campos ...
  #1 (permalink)  
Antiguo 20/12/2004, 14:27
 
Fecha de Ingreso: diciembre-2004
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
cambiar password de la base de datos

estoy probando un sistema de autentificación. El asunto es q me gustaría poder cambiar la contraseña con un script. Necesitaré un formulario con 3 campos de texto y un boton. El primer campo sería la actual contraseña, los otros dos la nueva...
hasta aquí me llegan los conocimientos. este es el script que estoy usando.
Agradecería mucho una ayuda
Código:
<?
//conecto con la base de datos
$conn = mysql_connect("127.0.0.1","","");
//selecciono la BBDD
mysql_select_db("login",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    session_register("autentificado");
    $autentificado = "SI";
    header ("Location: aplicacion.php");
}else {
    //si no existe le mando otra vez a la portada
    header("Location: index.php?errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>
  #2 (permalink)  
Antiguo 20/12/2004, 14:53
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Hola sariputra, seria bueno que encriptes las contraseñas (el campo clave_usuario) con la funcion md5 (revisa el manual). Tu consulta seria:

//define primero las longitudes de la contraseña en la base de datos.

Código PHP:
$ssql "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and MD5(clave_usuario)=MD5('$contrasena')"
Luego en tu archivo : aplicacion.php, tendrias que generar una nueva contraseña algo asi como esto:

Código PHP:
$nueva_contraseña substring(md5(uniqid(rand())),5); //le creamos una nueva de longitus 5. 
enviarle a si mail la nueva contraseña y luego cambiar en la base de datos:

Código PHP:
$new_password substring(md5($nueva_contraseña),10); //digamos que la longitus sea 10.
$id_inicial $_session['id'];
mysql_query("update usuario set clave_usuario='$new_password'" WHERE id='$id_inicial'"); 
Esto supone que cuando ingreso, se inicio una sesion a base de su id del usuario.


Ojala que te sirva, .

Saludos
Gildus
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 21/12/2004, 03:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
gracias

Un poco complejo lo del md5 para como digo mi nivel de principiante. pero muy buenas las referencias. Muchas gracias. Trataré de sacarle el jugo que se merece. Gracias.
  #4 (permalink)  
Antiguo 21/12/2004, 04:06
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
No te creas que es complejo, uno piensa eso (yo lo pensaba) pero cuando comiensas a hacerlo, solo tienes que agregar un par de md5() a tu codigo actual...
__________________
I Love Programming...
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 20:51.