Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/12/2008, 17:57
binagol
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: ayuda con: recuperar contraseña usuarios olvidadizos....

continuacion

Código PHP:
<?php
//ENVIO DE MAIL'S Y AVISO

if($_SESSION['estado']=="registrado")
{
  
  
//validacion y envio de mail's

        
@import_request_variables("gpc");
            
$youremail "mail"//YOUR MAIL HERE 
            
$subject "asunto"// TITLE OF DE SUBJECT IN MAIL
            
$redirect "?sec=inicio";//URL TO BE REDIRECTED IN 5 SECONDS
            
$secs "5";// TIME TO BE REDIRECTED
            
$username $_session['username'];
            
$email $_SESSION['email'];
            
$date $_SESSION['date'];
          $
$direccionaleatoria $_SESSION['direccionaleatoria'];
            
                        
         
//a partir de aquí hay una serie de variables que impiden que los spammers usen nuestro formulario como lanzadera de su spam 
          
$_SESSION['username'] = stripslashes($_SESSION['username']);
          
$headers .= "From: " $_SESSION['email']. "\r\n\r\n"
                  
//This is where the email is sent using your values from above. Be sure to update this if you change any fields in contact.php
                    
                   // Strip \r and \n from the email address
                // $_POST['email'] = preg_replace("\r", "", $_POST['email']);                // $_POST['email'] = preg_replace("\n", "", $_POST['email']);
                
                //*****COMMENT: if you have problems with the lines 40/41, replace these for:
                
$username str_replace("\r"""$username);
                
$email str_replace("\n"""$email);
        
        
// Remove injected headers
        
$find = array("/bcc\:/i","/Content\-Type\:/i","/cc\:/i","/to\:/i");
                
            
$username preg_replace($find""$username);
            
$email preg_replace($find""$email);
                    
            
//     
                
            
$username str_replace("\r","\n",$username); 
            
$email str_replace("\r","\n",$email);

             if (
eregi('^(bcc$|content-type|mime-version|--)',$key)){
                
print_error("Field nombres indicate exploit.");}//BLOCKING SPAM
        // Envio de mails
            
mail("$youremail""$subject","
                
                $date
                
                $username pidio el el cambio de contraseña, ante extravio.                
                se  le envio el siguiente link de regeneracion:
                
                <a href='http://www.sitio.com/forgot.php?id=$direccionaleatoria'>http://www.sitio.com/forgot.php?id=$direccionaleatoria</a>
                ---
                
                
                Este es un mail generado automaticamente, a modo de registro.
                
                Atte.
                sitio - Panel Administracion.
                
                
                "
,$headers);
                    
                    
                        
                
mail(" $email""$suject","
                $date
                
                Estimado/a $username, Recibimos su pedido de recambio de contraseña, ante extravio.
                
                ingrese a la siguiente pagina para proceder a la seleccion de una nueva contraseña:
                
                <a href='http://www.sitio.com/forgot.php?id=$direccionaleatoria'>http://www.sitio.com/forgot.php?id=$direccionaleatoria</a>
                ---
                
                
                "
,$headers);     
        
// Elimino session
        
session_unset(); 
        
session_destroy();
        
        echo
' se le envio un mail con la verificacion de identida para generar una nueva clave';

        
// Elimino session
        
session_unset(); 
        
session_destroy();
}
if(
$_SESSION["estado"]=="regenerando"){

$_SESSION["password"]=$_POST['pasword'];
$_SESSION["password2"]=$_POST['pasword2'];

 
$query "UPDATE usuarios 
        SET clave = '$passwordfinal' WHERE   usuario = '$username' and email ='$email' " 
;
        
mysql_query($query) or die(mysql_error());   

echo
' clave cambiada satisfactoriamente';

        
// Elimino session
        
session_unset(); 
        
session_destroy();
}

if(
$_SESSION['estado']=="regenerar"){
$_SESSION["estado"]="regenerando";

  echo
'<form name="form_regeneracion" method="post" action="'.$PHP_SELF.'">
 <input type="hidden" name="date" value="'
.$datee.'" />
  <table border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#AA0000" >
      <TR><TD width="272">
      <table width="307" border="0" align="center" cellpadding="0" cellspacing="0" >
    <tr>

      <td height="29" colspan="2" align="left" bgcolor="#AA0000" <? /*background="../images/bg-titleblue.gif"*/?> >&nbsp;<font color="#FFFFFF" face="Arial, Helvetica" size="3"><b>&nbsp;&nbsp;Inicio de sesi&oacute;n</b></font> </td>
      </tr>
    <tr>
        <td colspan="2" align="center">'
.$_SESSION["error"];$_SESSION["error"]="".'</td>
      </tr>
    <TR>
        <TD width="137" height="37" align="left">&nbsp;&nbsp;Nueva Contrase&ntilde;a:</TD>
        <td align="center" valign="middle"><input name="password" type="password" value="" size="15" maxlength="25" id="password" /></td>
      </TR>
    <tr>
        <td height="37" align="left">&nbsp;&nbsp;confirme nueva Contrase&ntilde;a:</td>
      <td align="center" valign="middle"><input name="password2" type="password" value="" size="15" maxlength="25" id="password2" /></td>
      </tr>
    <TR>
      <TD height="37" colspan="2" align="center"><input name="Login" type="submit" value="Login" id="Login" /></TD>
    </TR>
    </table>
      </TD></TR>
      </table>
    <p>&nbsp;</p>
  </form>'  
;
}
?>


aclaro: donde pongo para redirigir ?sec=forgot, es por que es un include en otra pagina.

Última edición por binagol; 14/12/2008 a las 19:16