Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/08/2014, 16:09
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 1 mes
Puntos: 10
Envio email con enlace

Como siempre, un saludo a todos.

Estoy intentado hacer un se me olvido la contraseña y tengo algunas dudas.

Tengo una página con un formulario en el cual hay solo un campo que es el email del usuario que quiere cambiar su contraseña. Este formulario en el action lo dirige a otra página en la cual se valida si existe el email en la base de datos y si es así, envia un correos con el enlace a otra pagina de mi web en la que existe un formulario de update de su contraseña.

Mis dudas es en el envío del email con la variable $mensaje

Código PHP:
// Enviamos por email el enlace para el cambio de contraseña 
$remite_nombre "La Palma News TV"// Tu nombre o el de tu página 
$remite_email "[email protected]"// tu correo 
$asunto "Cambio de contraseña"// Asunto 
$mensaje "Pincha en el siguiente enlace para cambiar tu contraseña: /n";
$mensaje.=""
$cabeceras "From: ".$remite_nombre." <".$remite_email.">\r\n"
$cabeceras $cabeceras."Mime-Version: 1.0\n"
$cabeceras $cabeceras."Content-Type: text/html"
$enviar_email mail($varEmail_ConsultaUsuarios,$asunto,$mensaje,$cabeceras); 
Creo debo meterlo en la variable $mensaje.=

El enlace es: http://www.midominio.com/nuevo_password.php

Ademas en ese enlace debo pasarle el id del usuario: <?php echo $row_ConsultaUsuarios['id_usuario']; ?>

Es decir, en html el enlace debe quedar de esta forma:

<a href="http://www.midominio.com/nuevo_password.php?recordID=<?php echo $row_ConsultaUsuarios['id_usuario']; ?>">ENLACE</a>

No se si me he explicado bien pero es meter el enlace anterior en el mensaje.

El codigo completo de mail_password.php es el siguiente:

Código PHP:
<?php
$varEmail_ConsultaUsuarios 
"0";
   
//$_POST["email"] viene del formulario, uso para validar email y no nombre usuario o nick
   
if (isset($_POST["email"])) {
   
$varEmail_ConsultaUsuarios $_POST["email"];
   }
mysql_select_db($database_conex_db_teldetv$conex_db_teldetv);
$query_ConsultaUsuarios sprintf("SELECT * FROM tbl_usuarios WHERE tbl_usuarios.email = %s"GetSQLValueString($varEmail_ConsultaUsuarios"int"));
$ConsultaUsuarios mysql_query($query_ConsultaUsuarios$conex_db_teldetv) or die(mysql_error());
$row_ConsultaUsuarios mysql_fetch_assoc($ConsultaUsuarios);
$totalRows_ConsultaUsuarios mysql_num_rows($ConsultaUsuarios);
        
        if (
$row_ConsultaUsuarios["email"] == $varEmail_ConsultaUsuarios) {  
                
// Enviamos por email el enlace para el cambio de contraseña 
                
$remite_nombre "Telde TV"// Tu nombre o el de tu página 
                
$remite_email "[email protected]"// tu correo 
                
$asunto "Cambio de contraseña"// Asunto 
                
$mensaje "Pincha en el siguiente enlace para cambiar tu contraseña: /n";
                
$mensaje.=''
                
$cabeceras "From: ".$remite_nombre." <".$remite_email.">\r\n"
                
$cabeceras $cabeceras."Mime-Version: 1.0\n"
                
$cabeceras $cabeceras."Content-Type: text/html"
                
$enviar_email mail($varEmail_ConsultaUsuarios,$asunto,$mensaje,$cabeceras);     
?>    
        <div class="login_form_frontend">
          <div align="center"><br>
          <img src="images/barrado_verde.png" width="26" height="23"> <span class="verde_mediano"><strong>Se ha enviado a tu email  un enlaces para poder cambiar tu contraseña.</strong></span></br>
          </br>
          </div>
        </div>
<?php }else{ ?>   
        <div class="login_form_frontend">
          <div align="center"><br>
          <span class="rojo"><strong>El email que has usado no existe en nuestra base de datos.</strong></br>
          <strong>Inténtalo de nuevo en este enlace:</strong></span><strong> <a href="solicitar_cambiar_password.php">REINTENTAR</a></strong><br>
          </br>
          </div>
        </div>
<?php ?>
Lo pongo por si veis algún fallo.
Muchísimas gracias de antemano: Manyblue

Última edición por manyblue; 30/08/2014 a las 16:17