[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/registre/ -> mod_maj.php (source)

   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&#233s</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&#233;der &#224; 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 &#224; 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 &#233;t&#233; upload&#233;")."<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 &#224 la ligne %d et &#224 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&#233s modifi&#233es")." , $cree ".gettext("cl&#233s ajout&#233s")." , $ignore ".gettext("cl&#233s ignor&#233es pour le groupe de cl&#233s")." $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&#233e : Cette cl&#233  n'existe pas:")." $cle <br>";
 193                        $ignore++;
 194                  }
 195              }
 196          }
 197          
 198      if ($nom) {
 199              echo " $modif ".gettext("cl&#233s modifi&#233es")." , $cree ".gettext("cl&#233s ajout&#233s")." , $ignore ".gettext("cl&#233s ignor&#233es pour le groupe de cl&#233s")." $nom";
 200          }
 201      if ($fichier_xml != "/usr/share/se3/data/grp.xml")
 202          unlink($fichier_xml);
 203  }
 204  
 205  include("pdp.inc.php");
 206  ?>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1