<?php
require_once("class/class.bbdd.php");
$bbdd = new BBDD();

//Resposta per defecte (Negativa)
$response["success"] = "0";  

//Valida i adapta els paràmetres necessris
$mail = $bbdd->checkParameter('email',false,true,true);

//Comprova que s'hagin validat els paràmetres
if ($mail !== 0 && $mail !== 2) {	
	//Comprova si existeix un usuari amb l'e-mail introduït
	$exist = $bbdd->selectUnique("count(*)","Users","userEmail = '".$mail."'");	
	if($exist) {
		//Realitza la consulta
		$newPass = randomPassword();
		$result = $bbdd->update("Users","userPass = '".$newPass."'", "userEmail = '".$mail."'");
	} else {	
		//Resposta l'e-mail no existeix
		$response["message"] = "Cap usuari té assignat l'email introduït.";	
	}
	
	//Comprova que el resultat de l'operació sigui correcte
	if (isset($result) && $result) {  		
		if (sendMail($mail,$newPass)) { 
			$response["success"] = "1";
			$response["message"] = "OK";
		} else {	
			//Resposta: E-mail no enviat
			$response["message"] = "No s'ha pogut enviar l'email de restauració de la contrasenya.";	
		}
	} 
}  elseif($mail === 2) { 
	//Resultat: E-mail no vàlid
	$response["message"] = "L'email introduït no té un format correcte.";	
} else {	
	//Resposta: Falten paràmetres 
	$response["message"] = "No s'han especificat tots els paràmetres.";	
}

//Retorna els resultats en Json 
echo json_encode($response,JSON_UNESCAPED_UNICODE);  

//Generador de contrasenyes aleatories de 8 caràcters
function randomPassword() {
    $alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
    $pass = array(); 
    $alphaLength = strlen($alphabet) - 1;
    for ($i = 0; $i < 8; $i++) {
        $n = rand(0, $alphaLength);
        $pass[] = $alphabet[$n];
    }
    return implode($pass); 
}

//Funció per enviar el mail utilitzant PHPMailer mitjançant SMTP
function sendMail($email,$pass) {
	require_once("class/phpmailer/class.phpmailer.php");
	$mail = new PHPMailer();

	$mail->IsSMTP();                                      
	$mail->Host = "smtp.1list2cook.com";  
	$mail->SMTPAuth = true;     
	$mail->Username = "info@1list2cook.com";  
	$mail->Password = "tfc6h8a89uZcx456"; 

	$mail->From = "info@1list2cook.com";
	$mail->FromName = "1 List 2 Cook";
	$mail->AddAddress($email);

	$mail->IsHTML(true);                                  

	$mail->Subject = "1 List 2 Cook - Recuperar contrasenya";
	$mail->Body    = "
	<h4>1 List 2 Cook - Restauració de la contrasenya</h4>
	<p>Ens posem en contacte amb tu per què has sol·licitat restaurar la teva contrasenya.</p>
	<p>A continuació tens la nova contrasenya generada que et permetrà accedir de nou a l'aplicació.</p>
	<p>Nova contrasenya: <strong>".$pass."</strong></p>
	<p>Podràs canviar-la accedint a la finestra de configuració mitjançant el menú principal de l'aplicació.</p>
	<p>Atentament,<br>
	<strong>1 List 2 Cook</strong><br>
	info@1list2cook.com</p>";

	return $mail->Send();
}
?>