You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							148 lines
						
					
					
						
							6.6 KiB
						
					
					
				
			
		
		
	
	
							148 lines
						
					
					
						
							6.6 KiB
						
					
					
				| <?php
 | |
| 
 | |
| /**
 | |
|  * Page de traitement permettant l'import des données dans la base de données.
 | |
|  * Elle est appelée par un bouton de la page des paramètres.
 | |
|  */
 | |
| 
 | |
| session_start();
 | |
| require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
 | |
| if (testPrivileges()!="administrateur") {
 | |
| 	header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
 | |
| 	die();
 | |
| }
 | |
| require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/import_export.php");
 | |
| 
 | |
| // Permet le contrôle du domaine des alias virtuels du CSV de l'utilisateur
 | |
| require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/domaines.php");
 | |
| $liste_domaines = listeDomainesPostfix($pdo);
 | |
| // Permet le contrôle des alias virtuels du CSV de l'utilisateur
 | |
| require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/alias_virtuels.php");
 | |
| // Permet le contrôle des listes noires du CSV de l'utilisateur
 | |
| require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php");
 | |
| // Permet le contrôle des utilisateurs du CSV de l'utilisateur
 | |
| require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");
 | |
| 
 | |
| $types_donnees_a_exporter=array();
 | |
| 
 | |
| // Si aucune case n'est coché pour l'importation, le script ne fait rien et renvoi l'utilisateur sur la page des paramètres
 | |
| if (!isset($_POST) || empty($_POST)) {
 | |
| 	header ("Location: /pages/gestion/administration.php?page=parametres&erreur=24");
 | |
| 	die();
 | |
| }
 | |
| 
 | |
| if (isset($_FILES['import_donnees_csv']) && !empty($_FILES['import_donnees_csv']['name']) && $_FILES['import_donnees_csv']['type']=="text/csv" && $_FILES['import_donnees_csv']['error']===0) {
 | |
| 	if ($_FILES['import_donnees_csv']['size']<2000000) {
 | |
| 		if (file_exists($_FILES['import_donnees_csv']['tmp_name'])) {
 | |
| 			
 | |
| 			$ligne_fichier_csv=1;
 | |
| 			$type_donnees_csv="";
 | |
| 			if (($fichier_csv = fopen($_FILES['import_donnees_csv']['tmp_name'], "r")) !== FALSE) {
 | |
| 				while (($donnees_csv = fgetcsv($fichier_csv, 1000, ":")) !== FALSE) {
 | |
| 					
 | |
| 					$entete_type_donnees=FALSE;
 | |
| 					if (strpos($donnees_csv[0], '#~// ') !== FALSE) {
 | |
| 						$type_donnees_csv=explode('#~// ', $donnees_csv[0]);
 | |
| 						$entete_type_donnees=TRUE;
 | |
| 					}
 | |
| 					if (!$entete_type_donnees) {
 | |
| 						switch ($type_donnees_csv[1]) {
 | |
| 							case "Alias_vituels":
 | |
| 								if (isset($_POST['import_alias_virtuels'])) {
 | |
| 									if (!isset($purge_table_alias_virtuels)) {
 | |
| 										purgeTable($pdo,'postfix_alias_virtuels');
 | |
| 										$purge_table_alias_virtuels="";
 | |
| 									}
 | |
| 									// Vérification de la cohérence des données de l'alias virtuel soumis
 | |
| 									if (!empty($donnees_csv[1]) && !empty($donnees_csv[2]) && ($donnees_csv[3]==="0" || $donnees_csv[3]==="1")) {
 | |
| 										// Omission des doublons
 | |
| 										$liste_alias_virtuels = listeTousAliasVirtuelsPostfix($pdo);
 | |
| 										if (!in_array($donnees_csv[1],array_column($liste_alias_virtuels,'courriel'))) {
 | |
| 											importDonneesMessagerie($pdo,"alias_virtuels",$donnees_csv);
 | |
| 										}
 | |
| 									}
 | |
| 								}
 | |
| 								break;
 | |
| 							case "Domaines":
 | |
| 								if (isset($_POST['import_domaines'])) {
 | |
| 									if (!isset($purge_table_domaines)) {
 | |
| 										purgeTable($pdo,'postfix_domaines');
 | |
| 										$purge_table_domaines="";
 | |
| 									}
 | |
| 									// Vérification de la cohérence des données du domaine soumis
 | |
| 									if (!empty($donnees_csv[1]) && ($donnees_csv[2]==="0" || $donnees_csv[2]==="1") && ($donnees_csv[3]==="0" || $donnees_csv[3]==="1")) {
 | |
| 										// Omission des doublons
 | |
| 										$liste_domaines = listeDomainesPostfix($pdo);
 | |
| 										if (!in_array($donnees_csv[1],array_column($liste_domaines,'domaine'))) {
 | |
| 											importDonneesMessagerie($pdo,"domaines",$donnees_csv);
 | |
| 										}
 | |
| 									}
 | |
| 									break;
 | |
| 								}
 | |
| 							case "Liste_noire_destinataires":
 | |
| 								if (isset($_POST['import_liste_noire_destinataires'])) {
 | |
| 									if (!isset($purge_table_postfix_liste_noire_destinataires)) {
 | |
| 										purgeTable($pdo,'postfix_liste_noire_destinataires');
 | |
| 										$purge_table_postfix_liste_noire_destinataires="";
 | |
| 									}
 | |
| 									// Vérification de la cohérence des données de la liste noire destinataire soumise
 | |
| 									if (!empty($donnees_csv[1]) && ($donnees_csv[2]==="REJECT" || $donnees_csv[2]==="DEFER") && ($donnees_csv[3]==="0" || $donnees_csv[3]==="1")) {
 | |
| 										// Omission des doublons
 | |
| 										$liste_entrees_liste_noires_dst=listeEntreeListeNoireDstPostfix($pdo);
 | |
| 										if (!in_array($donnees_csv[1],array_column($liste_entrees_liste_noires_dst,'courriel'))) {
 | |
| 											importDonneesMessagerie($pdo,"liste_noire_destinataires",$donnees_csv);
 | |
| 										}
 | |
| 									}
 | |
| 									break;
 | |
| 								}
 | |
| 							case "Liste_noire_expéditeur":
 | |
| 								if (isset($_POST['import_liste_noire_expediteurs'])) {
 | |
| 									if (!isset($purge_table_postfix_liste_noire_expediteurs)) {
 | |
| 										purgeTable($pdo,'postfix_liste_noire_expediteurs');
 | |
| 										$purge_table_postfix_liste_noire_expediteurs="";
 | |
| 									}
 | |
| 									// Vérification de la cohérence des données de la liste noire expediteur soumise
 | |
| 									if (!empty($donnees_csv[1]) && ($donnees_csv[2]==="554") && !empty($donnees_csv[3]) && ($donnees_csv[4]==="0" || $donnees_csv[4]==="1")) {
 | |
| 										// Omission des doublons
 | |
| 										$liste_entrees_liste_noires_exp=listeEntreeListeNoireExpPostfix($pdo);
 | |
| 										if (!in_array($donnees_csv[1],array_column($liste_entrees_liste_noires_exp,'courriel'))) {
 | |
| 											importDonneesMessagerie($pdo,"liste_noire_expediteurs",$donnees_csv);
 | |
| 										}
 | |
| 									}
 | |
| 									break;
 | |
| 								}
 | |
| 							case "Utilisateurs":
 | |
| 								if (isset($_POST['import_utilisateurs'])) {
 | |
| 									if (!isset($purge_table_postfix_utilisateurs)) {
 | |
| 										purgeTable($pdo,'postfix_utilisateurs');
 | |
| 										$purge_table_postfix_utilisateurs="";
 | |
| 									}
 | |
| 									// Vérification de la cohérence des données de l'utilisateur soumis
 | |
| 									if (!empty($donnees_csv[1]) && !empty($donnees_csv[2]) && !empty($donnees_csv[4]) && !empty($donnees_csv[5]) && !empty($donnees_csv[6]) && !empty($donnees_csv[7]) && ($donnees_csv[9]==="0" || $donnees_csv[9]==="1")) {
 | |
| 										// Omission des doublons
 | |
| 										$liste_utilisateurs=listeUtilisateursPostfix($pdo);
 | |
| 										if (!in_array($donnees_csv[1],array_column($liste_utilisateurs,'utilisateur'))) {
 | |
| 											importDonneesMessagerie($pdo,"utilisateurs",$donnees_csv);
 | |
| 										}
 | |
| 									}
 | |
| 									break;
 | |
| 								}
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 				fclose($fichier_csv);
 | |
| 				header ("Location: /pages/gestion/administration.php?page=parametres&succes=18");
 | |
| 				die();
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else {
 | |
| 		header ("Location: /pages/gestion/administration.php?page=parametres&erreur=23");
 | |
| 		die();
 | |
| 	}
 | |
| }
 | |
| 
 | |
| header ("Location: /pages/gestion/administration.php?page=parametres&erreur=22");
 | |
| die();
 | |
| 
 | |
| ?>
 |