wenas, tengo un scripts para recuperar contraseñas en mi sistema de usuarios , por seguridad ahora guardo las claves encriptadas con md5 entoncs ya no me sirve solo enviarlas al usuario,sino que tendre que generarle una nueva.
deberia comprobar 1º el usuario y email si existen, generar una contraseña aleatoria, hacer un update de el campo "contrasena" y enviar la nueva clave en el mensaje..
pero nose como hacerlo??
si alguien me puede ayudar!!
gracias
este es el form para recuperar la clave:
recuperar.html
Código PHP:
<h3>recuperar contraseña</h3>
<form id="loginForm" name="loginForm" method="post" action="recuperar.php">
<table width="300" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<th>nombre usuario</th>
<td><input name="loginname" type="text" class="textfield" id="loginname" value=""/></td>
</tr>
<th>email</th>
<td><input name="email" type="text" class="textfield" id="email" value="" /></td>
</tr><tr>
<td> </td>
<td><input type="submit" name="Submit" value="solicitar"/></td>
</tr>
</table>
</form>
y el que lo procesa:
recuperar.php
Código PHP:
<?php
// Este fichero recibe y procesa los datos del formulario de recuperacion de contraseña
// en el que se escriben usuario y email
// recogemos las variables enviadas por el formulario
$nombreusuario=$_POST['loginname'];
$emailusuario=$_POST['email'];
// Conectamos a la base de datos
// Las variables de conexion se suelen poner en un fichero de configuracion que se incluye
include "conexion.php";
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
die("Unable to select database");
}
// Consultamos si existe $nombreusuario + $emailusuario
$res=mysql_query("SELECT COUNT(*) FROM usuarios WHERE username='$loginname' AND email='$email'");
if (mysql_num_rows($res)==0) {
// Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion
header("Location:recuperar.html");
}
else {
// Si existe, buscamos en la bd
$res=mysql_query("SELECT * FROM usuarios WHERE username='$loginname' AND email='$email'");
$row=mysql_fetch_assoc($res);
$claveusuario=$row['contrasena'];
// enviamos el email de recuperacion
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
mail($emailusuario, "Recuperación", "Sus datos en nuestra web son $loginname, $claveusuario", $headers);
}
?>
muchas gracias..