Location: PHPKode > projects > PHD Help Desk > include/opr_self_clave.inc
<?PHP
/*
    Nombre: opr_self_clave.inc
    Autor: Julio Tuozzo
    Función: Auto genera una nueva contraseña para el operador
    Function: self create a new operator 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['operador'])==0)        ## Verifico que haya ingresado el operador.
	   {$mensaje=$Err_input_operator;        // Verify that the operator has entered.
    	 include('login.inc');
    	 exit();
    	}

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

## Busco el operador 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}operador WHERE operador_id='$operador'";
$result=mysql_query($query) or die(mysql_error());
$q_filas=mysql_num_rows($result);

if($q_filas!=1)
	   {$mensaje=$Oper_not_autorized;
	    include('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('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('login.inc');
    	 exit();
        }


$contrasenia=generapwd();
$md5=md5($contrasenia);

## hago la actualización de la contraseña
// Update the password.

$query="UPDATE {$MyPHD}operador
        SET
        contrasenia='$md5',
        expira_clave=DATE_SUB(NOW(),INTERVAL 1 DAY),
        update_oper='$operador',
		update_datetime=NOW()
		WHERE
		operador_id='$operador'";

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

## Busco el remitente del correo en la tabla de parámetros
$query="SELECT * FROM {$MyPHD}parametros";
$result=mysql_query($query) or die(mysql_error());
$q_filas=mysql_num_rows($result);

if($q_filas!=1)
        	{$mensaje=str_replace("%1%", $q_filas,$Err_parameters_file);
        	 include('login.inc');
        	 exit();
            }

$row=mysql_fetch_array($result);

$_SESSION['PHD_FROM_USER_PSW']=$row['from_user_psw'];

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

$link=substr($_SERVER['HTTP_REFERER'],0,strrpos($_SERVER['HTTP_REFERER'],"/"))."/index.php";
$e_mensaje_html="$Body_new_pswd_1 <br /> <br />";
$e_mensaje_html.="$Body_new_pswd_2 <strong>$operador</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 $operador $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 = $Subject_new_pswd;
$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 ($operador) $ape_y_nom. <br />";
         $mensaje.="$Was_sended_to: $e_mail";
       }
else
       {$mensaje="$No_mail_sent ($operador) $ape_y_nom. <br />";
        $mensaje.="$Mail_srv_err: <em>\"$mail->ErrorInfo\"</em><br />";
        $mensaje.="$Try_e_mail: $e_mail";
       }

?>
Return current item: PHD Help Desk