<?php //controller recovery



	require_once('../../motormobil/motormobil.php');

    require_once('../../odbconexion/config.php');



	include('../../cookies.php');

	include('../../centinela.php');

	$objeto = new galletas();

	require_once('../../bussines/fix_characters.php');

	$Obj_fix_characters=new fix_characters();

	use PHPMailer\PHPMailer\PHPMailer;

	use PHPMailer\PHPMailer\Exception;



	require 'PHPMailer/Exception.php';

	require 'PHPMailer/PHPMailer.php';

	require 'PHPMailer/SMTP.php';

	$mail = new PHPMailer(true);

	$usuario=!empty($_REQUEST['ee11cbb19052e40b07aac0ca060c23ee'])?$_REQUEST['ee11cbb19052e40b07aac0ca060c23ee']:'';

		try{

            	$Odbj_conexion = new odbconexion;

	            $conexion=$Odbj_conexion->openconection();

	            $consulta="SELECT * FROM login_appquadrata WHERE Login_Correo = '$usuario' OR Login_Telefono = '$usuario'";

	            $Array_adapter=$conexion->query($consulta);

	            $conexion->close();

	            //validamos si existe un registro, con los datos proporcionados

	            if($Array_adapter->num_rows > 0){

					/*if(esNumeroTelefono($usuario)){

						//echo "es numero de telefono";

						header('Location: ../recovery.php?login='.$usuario.'&error=2 °');

					}else if(esDireccionEmail($usuario)){

						//echo "es direcion email";

						header('Location: ../recovery.php?login='.$usuario.'&error=2 °');

					}else{

						

						header('Location: ../recovery.php?login='.$usuario.'&error=3 °');

					}*/



					while($campos=$Array_adapter->fetch_assoc())

					{

						// Obtén el correo electrónico del usuario que desea recuperar la contraseña

						$correoUsuario=$campos['Login_Correo'];

						$userIdLogin=$campos['Id_Loginr'];

						$userName=$campos['Login_Nombre'];

						$userPassword=$campos['Login_Password'];

						$userTelefono=$campos['Login_Telefono'];



						// Genera un token o código de verificación único

						//$token = uniqid();



						/*// Construye el enlace de recuperación de contraseña

						$enlace = "https://localhost/recovery-password.php?token=" . $token;



						// Envía el correo electrónico

						$asunto = "Recuperación de contraseña";

						$mensaje = "Hola,\n\nPara recuperar tu contraseña, haz clic en el siguiente enlace:\n\n" . $enlace;

						$cabeceras = "From: noresponder@dontstop.com";



						if (mail($correoUsuario, $asunto, $mensaje, $cabeceras)) {

						    header('Location: ../recovery.php?login='.$usuario.'&error=2 °');

						} else {

						    header('Location: ../recovery.php?login='.$usuario.'&error=3 °');

						}*/

						//Create an instance; passing `true` enables exceptions

						$mail = new PHPMailer(true);



						try {

							$token = uniqid();

							$Odbj_conexion = new odbconexion;

				            $conexion=$Odbj_conexion->openconection();



							$token = uniqid();

				            $consulta="INSERT INTO recuperar_cuenta_appquadrata (Usu_Nombre,Usu_Fecha_Hora_Solicitud,Id_Fk_Login,RC_Correo,RC_Telefono,RC_Password_Old,Rc_Estatus,RC_Token) values('$userName',now(),'$userIdLogin','$correoUsuario','$userTelefono','$userPassword','Pendiente','$token')";

				            $conexion->query($consulta);

            				$whatsmyid=$conexion->insert_id;

            				if($whatsmyid<=0){

	            				$token = uniqid();

					            $consulta="INSERT INTO recuperar_cuenta_appquadrata (Usu_Nombre,Usu_Fecha_Hora_Solicitud,Id_Fk_Login,RC_Correo,RC_Telefono,RC_Password_Old,Rc_Estatus,RC_Token) values('$userName',now(),'$userIdLogin','$correoUsuario','$userTelefono','$userPassword','Pendiente','$token')";

					            $conexion->query($consulta);

	            				$whatsmyid=$conexion->insert_id;

            				}

				            $conexion->close();



						    //Server settings

						    $mail->SMTPDebug = 0;                      //Enable verbose debug output

						    $mail->isSMTP();                                            //Send using SMTP

						    $mail->Host       = 'smtp.gmail.com';                     //Set the SMTP server to send through

						    $mail->SMTPAuth   = true;                                   //Enable SMTP authentication

						    $mail->Username   = 'cloud.devops.noreponder@gmail.com';//usuario de la cuenta de gmail que se va a a usar                     //SMTP username

						    $mail->Password   = 'ixadtdrfixgvnpuk';//la contraseña de la cuenta de gmail que se va a usar                               //SMTP password

						    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption

						    $mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`



						    //Recipients

						    $mail->setFrom('cloud.devops.noreponder@gmail.com', 'cloud devops');//desde donde se va a enviar el correo y el nombre del usuario

						    $mail->addAddress($correoUsuario);//correo a quien se envia y el nombre del usuario    //Add a recipient

						    /*$mail->addAddress('ellen@example.com');               //Name is optional

						    $mail->addReplyTo('info@example.com', 'Information');

						    $mail->addCC('cc@example.com');

						    $mail->addBCC('bcc@example.com');*/



						    //Attachments

						    /*$mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments

						    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');*/   //Optional name



						    //Content

						    $mail->isHTML(true);                                  //Set email format to HTML

						    $mail->Subject = utf8_decode('RECUPERACIÓN DE CUENTA');

						    $mail->Body    = "Hola {$userName},\n\nPara recuperar tu contraseña, haz clic en el siguiente enlace:\n\n <a href='https://localhost/login/recovery-password.php?token={$token}' style=' appearance: none;-webkit-appearance: none;font-family: sans-serif;cursor: pointer;padding: 12px;min-width: 100px;border: 0px;

    -webkit-transition: background-color 100ms linear;

    -ms-transition: background-color 100ms linear;

     transition: background-color 100ms linear;border-radius: 8px;' target='_blank'>recuperar cuenta</a>";

						    //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';



						    $mail->send();

						    header('Location: ../recovery.php?login='.$usuario.'&error=2 °');

						} catch (Exception $e) {

						    header('Location: ../recovery.php?login='.$usuario.'&error=3 °');

						    //echo "Hubo un error al enviar el mensaje. Mailer Error: {$mail->ErrorInfo}";

						}



					}

				}else{ //si no existe, algun registro con los datos ingresados por el usuario, retornamos un mensaje

					header('Location: ../recovery.php?login='.$usuario.'&error=1 °');



				}

		}catch (Exception $e) {

			echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

		}



function esNumeroTelefono($cadena) {

    $patron = "/^\d{10}$/"; // Asumiendo que los números de teléfono tienen 10 dígitos

    

    if (preg_match($patron, $cadena)) {

        return true;

    } else {

        return false;

    }

}



function esDireccionEmail($cadena) {

    $patron = "/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/";

    

    if (preg_match($patron, $cadena)) {

        return true;

    } else {

        return false;

    }

}



?>