Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2011, 11:09
follow
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 8 meses
Puntos: 17
Pequeño error codigo - Contraseña aleatoria enviada por email

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
$contrasenaSetRandomPassword();

// 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.