<?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 = listeDomainesBdd($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 = listeTousAliasVirtuelsBdd($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 = listeDomainesBdd($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=listeEntreeListeNoireDstBdd($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=listeEntreeListeNoireExpBdd($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=listeTousUtilisateursBdd($pdo); if (!in_array($donnees_csv[1],array_column($liste_utilisateurs,'utilisateur'))) { importDonneesMessagerie($pdo,"utilisateurs",$donnees_csv); } } break; } } } } fclose($fichier_csv); // Si l'utilisateur ayant importé les données n'existe plus, une déconnexion automatique est effectuée if (!verifUtilisateursExiste($pdo,$_SESSION['pseudo_connexion_utilisateur'])) { header ("Location: /services/traitements/utilisateurs/deconnexion.php?succes=19"); die(); } 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(); ?>