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; ?>
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();
}
Alguien ve algo raro?? Si hace falta un codigo mas completo lo pongo pero no quería agobiar mucho. un saludo amigos.