<?php
function trck_click($email, $code, $url, $renvoi=true){
/*REMARQUE : Le paramètre $renvoi permet de notifier s'il faut ou non renvoyer 
  les paramètres dans l'url de retour. Le comportement par défaut est le renvoi des paramètres
  dans l'url de retour donc =true*/
	//On vérifie la validité de l'email
	if(strlen($email)<=0 || $email == "__EMAIL__"){
		$email = "NON DEFINI";
	}else{
		$email = strtolower($email);
	}

	//On incrémente le tracking si le code n'est pas nul
	if(strlen($code) > 0){
		$TABID = explode("_",$code);
		$Id = $TABID[1];
		
		//on ajoute 1 au total pour cet id
		main_db_query("UPDATE Tracking SET Nb = Nb + 1 WHERE Id = '".$Id."'");
		
		$row = db_fetch_assoc(main_db_query("SELECT * FROM Tracking_Email WHERE TrackId = '".$Id."' AND Email = '".$email."' "));
		
		//si on a deja des clics pour ce mail et cet id on incremente
		if($row["Id"] > 0){
			main_db_query("UPDATE Tracking_Email SET Nb = Nb + 1 WHERE Id = '".$row["Id"]."'");
		}else{ //sinon on ajoute un entrée à 1
			main_db_query("INSERT INTO Tracking_Email (Email,TrackId,Nb) VALUES ('".$email."','".$Id."',1)");
		}
	}
	
	//On redirige le joueur si l'url n'est pas vide
	if (strlen($url) > 0){
		//Si le paramètre de renvoi est à true, on renvoie les paramètres dans l'url
		if ($renvoi == true){
			if (strpos($url,'?') === false){//On vérifie s'il y a deja des parametres dans l'url
				$url = $url."?code=".$code."&email=".$email;
			}else{
				$url = $url."&code=".$code."&email=".$email;
			}
		}
		header("Location:".$url);
	}
}

/* Remarque : Le === permet de vérifier la valeur exacte renvoyée par la fonction strpos car celle-ci peut renvoyer false 
   ou une valeur équivalente (par exemple 0, ce qui signifie que si le caractère cherché est en position 0, la fonction 
   renverra 0 <=> false)*/

//Fonction permettant de tracker une URL afin de récupérer l'adresse mail, le code,...
function trackingURL($urlATracker){
	$segmentsURL = explode ('&', $urlATracker);
	//Tableau qui contient les parametres qui ne doivent pas apparaitre dans l'url renvoyee
	$interdit = array(
		'code'=>'1', 
		'email'=>'1',
		'url'=>'1',
		'param'=>'1');
	

	reset($segmentsURL);//On se place sur le premier élément du tableau segmentsURL
	$i = 0;
	while ($i < count($segmentsURL)){
		$compte=0;
		$unParametre = explode ('=', current($segmentsURL));
		reset($interdit);
		$j = 0;
		while ($j < count($interdit)){
			if ($unParametre[0] == key($interdit)){
				if($unParametre[0] == 'url'){
					$urlReconstituee = $unParametre[1]."?";
				}else{
					$TabRetourne[key($interdit)] = $unParametre[1];
				}
			}else{
				$compte = $compte + 1;
			}
			$j++;
			next($interdit);
		}
	
		//Si compte=3, cela signifie que le parametre n'appartient pas aux parametres a ne pas retranscrire
		if ($compte == count($interdit)){
			$Param = $Param.$unParametre[0]."=".$unParametre[1]."&";
		}
		$i ++;
		next($segmentsURL);
	}

	$urlReconstituee = $urlReconstituee.$Param;
	$urlReconstituee = substr($urlReconstituee, 0, -1);
	$TabRetourne['url']= $urlReconstituee;

	return ($TabRetourne);
	
}
?>