[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 5 * Gestion des cles pour clients Windows (mise a jour des modeles) 6 * @Version $Id: mod_maj.php 3033 2008-06-14 14:32:27Z plouf $ 7 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Sandrine Dangreville 12 13 * @Licence Distribue selon les termes de la licence GPL 14 15 * @note 16 17 */ 18 19 /** 20 21 * @Repertoire: registre 22 * file: mod_maj.php 23 24 */ 25 26 27 28 include "entete.inc.php"; 29 include "ldap.inc.php"; 30 include "ihm.inc.php"; 31 require "include.inc.php"; 32 33 require_once ("lang.inc.php"); 34 bindtextdomain('se3-registre',"/var/www/se3/locale"); 35 textdomain ('se3-registre'); 36 37 echo "<h1>Importation des groupes de clés</h1>"; 38 // connexion(); 39 40 if (ldap_get_right("computers_is_admin",$login)!="Y") 41 die (gettext("Vous n'avez pas les droits suffisants pour accéder à cette fonction")."</BODY></HTML>"); 42 43 //Aide 44 $_SESSION["pageaide"]="Gestion_des_clients_windows#Description_du_processus_de_configuration_du_registre_Windows"; 45 46 $act=$_GET['action']; 47 if (!$act) { $act=$_POST['action'];} 48 49 switch($act) { 50 51 default: 52 echo "<a href=\"mod_maj.php?action=maj\">".gettext("Effectuer la mise à jour des restrictions ?")."</a>"; 53 break; 54 55 case "file": 56 if( isset($_POST['upload']) ) { // si formulaire soumis 57 if (file_exists("/tmp/mod.gz")) unlink("/tmp/mod.gz"); 58 59 $content_dir = '/tmp/'; // dossier ou sera deplace le fichier 60 $tmp_file = $_FILES['fichier']['tmp_name']; 61 if( !is_uploaded_file($tmp_file) ) { 62 exit(gettext("Le fichier est introuvable")); 63 } 64 // on verifie maintenant l'extension 65 $type_file = $_FILES['fichier']['type']; 66 if( !strstr($type_file, 'xml')) { 67 exit(gettext("Le fichier n'est pas un fichier xml")); 68 } 69 // on copie le fichier dans le dossier de destination 70 $name_file = $_FILES['fichier']['name']; 71 72 if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { 73 exit(gettext("Impossible de copier le fichier dans")." $content_dir"); 74 } 75 echo gettext("Le fichier a bien été uploadé")."<br>"; 76 $fichier_xml = $content_dir . $name_file; 77 } 78 79 break; 80 81 case "maj": 82 $fichier_xml = "/usr/share/se3/data/grp.xml"; 83 84 break; 85 } 86 87 if (($fichier_xml)&&(!$retval_mod)) { 88 89 90 /** 91 92 * Fonctions Analyse le debut d'un fichier XML 93 94 * @Parametres 95 * @Return 96 97 */ 98 function gestionnaire_debut($analyseur, $nom, $attribut) { 99 global $nb; 100 global $ligne; 101 $nb++; 102 if(sizeof($attribut)) { 103 foreach($attribut as $cle => $valeur) { $ligne=$ligne.$valeur."-:-"; } 104 } 105 } 106 107 /** 108 109 * Fonctions Analyse la fin d'un fichier XML 110 111 * @Parametres 112 * @Return 113 114 */ 115 function gestionnaire_fin($analyseur, $nom) { 116 global $nb; 117 global $ligne; 118 $nb--; 119 if ($nb<4) { $ligne=$ligne.";&;"; } else {$ligne=$ligne."--";} 120 } 121 122 /** 123 124 * Fonctions Analyse le texte d'un fichier XML 125 126 * @Parametres 127 * @Return 128 129 */ 130 function gestionnaire_texte($analyseur, $texte) { 131 global $nb; 132 global $ligne; 133 if ($nb>2) { $ligne= $ligne.$texte ; } 134 } 135 136 $nb = 0; 137 $analyseur_xml = xml_parser_create(); 138 xml_set_element_handler($analyseur_xml,"gestionnaire_debut", "gestionnaire_fin"); 139 xml_set_character_data_handler($analyseur_xml,"gestionnaire_texte"); 140 if (!($id_fichier = fopen($fichier_xml, "r"))) { 141 die(gettext("Impossible d'ouvrir le fichier XML !")); 142 } 143 144 while ($donnee = fread($id_fichier, filesize($fichier_xml))) { 145 if (!xml_parse($analyseur_xml, $donnee, feof($id_fichier))) { 146 die(sprintf(gettext("Une erreur XML %s s'est produite à la ligne %d et à la colonne %d."),xml_error_string(xml_get_error_code($analyseur_xml)),xml_get_current_line_number($analyseur_xml),xml_get_current_column_number($analyseur_xml))); 147 } 148 } 149 xml_parser_free($analyseur_xml); 150 connexion(); 151 $ligne=preg_replace("/(\r\n)|(\n)|(\r)/","",$ligne); 152 153 if (mb_detect_encoding($ligne,"UTF-8")) { 154 $ligne=mb_convert_encoding($ligne,'ISO-8859-1','UTF-8'); 155 } 156 157 $categorie=explode(";&;",$ligne); 158 for ($j;$j<count($categorie)+5;$j++) { 159 if ((preg_match("/-:-/",$categorie[$j]))) { 160 if ($nom) { 161 echo " $modif ".gettext("clés modifiées")." , $cree ".gettext("clés ajoutés")." , $ignore ".gettext("clés ignorées pour le groupe de clés")." $nom"; 162 } 163 $nom=""; 164 $cree=0; 165 $modif=0; 166 $ignore=0; 167 list($nom,$reste)=preg_split("/-:-/",$categorie[$j]); 168 list($cle,$valeur)=preg_split("/--/",$reste); 169 echo "<h2>$nom</h2>"; 170 } else { 171 list($cle,$valeur)=preg_split("/--/",$categorie[$j]); 172 } 173 174 if ($cle) { 175 $cle=ajoutedoublebarre(trim($cle)); 176 $query="SELECT `CleID` FROM `corresp` WHERE `chemin`='$cle'"; 177 $resultat=mysql_query($query); 178 if (mysql_num_rows($resultat)) { 179 $row=mysql_fetch_row($resultat); 180 $query2="SELECT `cle` FROM `modele` WHERE `mod`= '$nom' and `cle` = '$row[0]' ;"; 181 $resultat2 = mysql_query($query2); 182 if (mysql_num_rows($resultat2) and ($nom)) { 183 $query1 = "UPDATE `modele` SET `etat` = '$valeur' WHERE `cle` = '$row[0]' AND `mod` = '$nom';"; 184 $resultat1=mysql_query($query1); 185 $modif++; 186 } else { 187 $query="INSERT INTO modele( `etat`, `cle`, `mod` ) VALUES ('$valeur','$row[0]','$nom');"; 188 $insert = mysql_query($query); 189 $cree++; 190 } 191 } else { 192 echo gettext("Ignorée : Cette clé n'existe pas:")." $cle <br>"; 193 $ignore++; 194 } 195 } 196 } 197 198 if ($nom) { 199 echo " $modif ".gettext("clés modifiées")." , $cree ".gettext("clés ajoutés")." , $ignore ".gettext("clés ignorées pour le groupe de clés")." $nom"; 200 } 201 if ($fichier_xml != "/usr/share/se3/data/grp.xml") 202 unlink($fichier_xml); 203 } 204 205 include("pdp.inc.php"); 206 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |