Location: PHPKode > projects > PHD Help Desk > include/usr_self_clave.inc
<?PHP
/*
    Nombre: usr_self_clave.inc
    Autor: Julio Tuozzo
    Función: Auto genera una nueva contraseña para el usuario
    Function: self create a new user password
    Ver: 2.05
*/

require('funcionesPHP.inc');
require('class.phpmailer.php');

$js_muestro_captcha="<script language='JavaScript'>
                     document.getElementById('forgot').style.visibility='visible';
                     document.getElementById('forgot_text').style.visibility='hidden';
                     </script>";


if (strlen($_POST['usuario'])==0)        ## Verifico que haya ingresado el usuario.
	   {$mensaje=$No_user;               // Verify that the user has entered.
    	 include('user_login.inc');
    	 exit();
    	}

$usuario=trim(strip_tags($_POST['usuario']));

## Busco el usuario en la tabla, verifico que tenga un e-mail
// Search the user in the tables, verify that has an e-mail.

$query="SELECT * FROM {$MyPHD}usuario WHERE usuario_id='$usuario'";
$result=mysql_query($query) or die(mysql_error());
$q_filas=mysql_num_rows($result);

if($q_filas!=1)
	   {$mensaje=$User_not_exists;
	    include('user_login.inc');
	    exit();
	   }

$row=mysql_fetch_array($result);
$e_mail=$row['e_mail'];
$ape_y_nom=$row['ape_y_nom'];

if (strlen($e_mail)<5)                    ## Verifico que tenga un e-mail para enviar la contraseña
	   {$mensaje=$No_e_mail_usr;          // Verify that the user has e-mail to send te password
    	 include('user_login.inc');
    	 exit();
    	}

$securimage = new Securimage();
if ($securimage->check($_POST['captcha']) == false  and  isset($_SESSION['securimage_code_value']))   ## Verifico el captcha
        {$mensaje=$Error_captcha;                     // Captcha verifying
         include('user_login.inc');
    	 exit();
        }


$contrasenia=generapwd();
$md5=md5($contrasenia);
## hago la actualización de la contraseña
// Update the password.

$query="UPDATE {$MyPHD}usuario
        SET
        contrasenia='$md5',
        cambia_clave='S',
        update_user='$usuario',
        update_oper=null,
		update_datetime=NOW()
		WHERE
		usuario_id='$usuario'";

$update=mysql_query($query) or die (mysql_error());
$js_muestro_captcha="";

## Envio correo con la contraseña al usuario. 
// Send mail with the users password.


$link=substr($_SERVER['HTTP_REFERER'],0,strrpos($_SERVER['HTTP_REFERER'],"/"))."/user_request.php";
$asunto=$Subject_new_pswd;
$e_mensaje_html="$Body_new_pswd_1 <br /> <br />";
$e_mensaje_html.="$Body_new_pswd_2 <strong>$usuario</strong> $Body_new_pswd_3 <strong>$contrasenia</strong> <br /> <br />";

$e_mensaje_html.="$Body_new_pswd_4 <br /><br />";
$e_mensaje_html.="$Access_at: <a href='$link'>$link</a>";


$e_mensaje_text="$Body_new_pswd_1 \n \n";
$e_mensaje_text.="$Body_new_pswd_2 $usuario $Body_new_pswd_3 $contrasenia \n \n";
$e_mensaje_text.="$Body_new_pswd_4 \n\n";
$e_mensaje_text.="$Access_at: $link";

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Port= $Mail_port;
$mail->Host = $Mail_host;
$mail->SMTPAuth = true;
$mail->Username = $Mail_usuario;
$mail->Password = $Mail_clave;

$mail->From = $_SESSION['PHD_FROM_USER_PSW'];
$mail->FromName = $New_pswd;
$mail->AddAddress($e_mail,$ape_y_nom);

$mail->WordWrap = 80;
$mail->IsHTML(true);

$mail->Subject = $asunto;
$mail->Body    = "<div style='text-align:center'><img style='text-align:center' src='cid:PHD' alt='phd help desk' border=0 /></div><br /><br /> $e_mensaje_html ";

$mail->AltBody = $e_mensaje_text ;

$mail->AddEmbeddedImage("./images/phd_150_20.gif", "PHD", "phd_150_20.gif",
                                          "base64", "image/gif");
if(@$mail->Send())
       { $mensaje="$Mail_sent ($usuario) $ape_y_nom. <br />";
         $mensaje.="$Was_sended_to: $e_mail";
       }
else
       {$mensaje="$No_mail_sent $usuario. <br />";
        $mensaje.="$Mail_srv_err: <em>\"$mail->ErrorInfo\"</em><br />";
        $mensaje.="$Try_e_mail: $e_mail";
       }

?>
Return current item: PHD Help Desk