Hola a todos amigos, os cuento que estoy haciendo un sistema de recuperación de contraseñas, la cosa va bastante bien pero tengo algún pequeño error de código que no detecto
, si alguien me puede echar un vistazo lo agradecería.
Tengo dos archivos, el form.php y funcion.php
En el form incluyo este php:
Código PHP:
<?php
include('funcion.php');
// meto la contraseña aleatoria en la variable
$contrasena= SetRandomPassword();
// meto la con encrytada en variable
$encriptada=md5(SetRandomPassword());
?>
Luego despues del form, si el email es de verdad de un usuario y todo eso...
pues llamo a las funciones para enviar el email y para hacer el 'update'
a la bd con la nueva contraseña encriptada:
// si no da error
<?php else: ?>
<?php if(insertarNuevaClave($encriptada, $emailValue)):?>
<?php enviarContrasena($emailValue,$contrasena); ?>
<?php endif; ?>
Por otro lado aquí las funciones a las que llamo.
Código PHP:
SetRandomPassword() // funcion para contraseña aleatoria
(la he probado en un archivo solo y funciona bien asi que no pongo el codigo)
Funcion para hacer el update:
function insertarNuevaClave($encriptada,$emailValue) {
$conn = conectar(); // la conexion esta probada y funciona.
$sql= "update usuarios set password=$encriptada
where email='$emailValue'";
}
Y mando el Email con la contraseña sin encriptar.
function enviarContrasena($emailValue, $contrasena){
$dominio = "http://www.midominio.com/";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "miusuario";
$mail->Password = "micontraseña";
$body = '
<html>
<head>
<title>Recordatorio Contraseña</title>
</head>
<body>
<h1>Recuperacion de contraseña';
$body .= '</h1><p><b>Aqui tienes tu nueva contraseña...bla bla bla bla</b>.</p>
<p>Nueva contrasena:</p>';
$body .= $contrasena;
$body .= "</body></html>";
$mail->SetFrom("[email protected]");
$mail->AddAddress($emailValue);
$mail->Subject = "recordatorio contraseña";
$mail->MsgHTML($body);
$mail->Send();
}
Al cargar la pagina y enviar la direccion de un usuario que ya existe en mi base de datos, no me da ningun error de php ni de mysql, pero tengo puesto que si la pagina no logra realizar la operacion me muestre un mensaje de 'intentelo mas tarde...' y siempre me sale !!!!!
Alguien ve algo raro?? Si hace falta un codigo mas completo lo pongo pero no quería agobiar mucho. un saludo amigos.