root/_contribs_/_hebergement_/multispip1/synchro.php

Revision 1438, 11.8 kB (checked in by gilles.vincent@…, 3 years ago)

Petite passe pas tres propre sur les injections SQL

Line 
1<?php
2// Inclure les fonctions communes
3$niveauPage= "";
4
5// Verification de l'ID de l'inscrit
6include($niveauPage . "inc_verif.php");
7
8// inclure les outils
9include($niveauPage . "inc_fonctions.php");
10
11// Connection
12include($niveauPage . "inc_connection.php");
13mysql_connect($hote,$utilisateurBase,$mdpBase);
14mysql_select_db($base) or die ("la requete a echouée parce que : ". mysql_error());
15// Requetes
16// Afficher les sites Multispip
17$lister= "SELECT * FROM sites, inscrits
18WHERE sites.IdInscrit = inscrits.IdInscrit
19AND sites.multispip = 'oui'
20ORDER BY sites.IdSite DESC";
21
22// Recuperer les infos dans le POST
23if  (isset($_GET['Submit']))
24    $Submit = $_GET['Submit'];
25else
26    $Submit  = "";
27if  (isset($_GET['mdp']))
28    $mdp = $_GET['mdp'];
29else
30    $mdp  = "";
31if  (isset($_GET['nombreSites']))
32    $nombreSites = $_GET['nombreSites'];
33else
34    $nombreSites  = "";
35
36?>
37
38
39<html>
40<head>
41<title>Synchro Multispip</title
42><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
43<link href="css_edf.css" rel="stylesheet" type="text/css">
44</head>
45<body bgcolor="#FFFFFF">
46<table width="600" border="0" cellpadding="1" cellspacing="0" bgcolor="#003366">
47  <tr>
48    <td><table width="100%" border="0" cellpadding="2" cellspacing="0" bgcolor="#FFFFFF">
49        <tr>
50          <td><table width="100%" border="0" cellspacing="0" cellpadding="1">
51              <tr>
52                <td bgcolor="#003366"><table width="100%" border="0" cellpadding="3" cellspacing="0" bgcolor="#003366">
53                    <tr>
54                      <td class="edf7"><strong><font color="#FFFFFF">Synchro Multispip</font></strong></td>
55                    </tr>
56                  </table></td>
57              </tr>
58              <tr>
59                <td><img src="images/dot.gif" width="500" height="5"></td>
60              </tr>
61              <tr>
62                <td class="edf5">
63<?php
64// Saisir ici le mot de passe pour lancer la synchro
65if($mdp == $mdp_synchro)
66{
67// ****************************************************************************
68// Page affichée quand on clique sur le bouton "synchroniser" et que le mot de passe est ok
69// ****************************************************************************
70   
71    //ajout enguerrand : retenir que synchro = oui;
72    if(isset($_GET['Maj']))
73    {
74       
75        $listeSynchro = array();
76        for ($i = 0; $i <= $nombreSites; $i++)
77        {
78        $refSiteSyncro = "site" . $i;
79       
80        if (isset($_GET[$refSiteSyncro])) // pour eviter une 'notice' php
81            $listeSynchro[$i] = mysql_escape_string($_GET[$refSiteSyncro]);
82        else
83            $listeSynchro[$i] = false;
84        }
85       
86       
87        $requete= mysql_query($lister) or die("la requete a echouée parce que : ". mysql_error());
88        $liste=0;
89        while ($resultat = mysql_fetch_object($requete))
90        {
91            //print_r($resultat);
92            if(in_array("".$resultat->IdSite, $listeSynchro))
93            {
94                $maj = "UPDATE `sites` SET `synchro` = 'oui' WHERE `IdSite` = ".$resultat->IdSite;
95            }
96            else
97            {
98                $maj = "UPDATE `sites` SET `synchro` = 'non' WHERE `IdSite` = ".$resultat->IdSite;
99            }
100           
101            $reqmaj = mysql_query($maj) or die("la requete de maj $maj de la synchro a echouée parce que : ". mysql_error());
102           
103        }
104       
105        echo "maj info de synchro OK";
106   
107    }
108    else
109    {
110        //fin d'ajout enguerrand
111   
112   
113        // GENERER LE FICHIER LOG DE LA SYNCHRO
114       
115        // chemin du dossier des logs
116        $cheminLog = $GLOBALS['cheminCopie'] . "logs/";
117        //die("$cheminLog");
118       
119        // Si le dossier logs n'existe pas on le crée
120        if(!is_dir($cheminLog)) mkdir($cheminLog, 0777);
121       
122        $nomLog = "synchro_" . date("ymd_His") . ".txt";
123        $fichierLog = $cheminLog . $nomLog;
124       
125        // Création du fichier
126        $log = fopen($fichierLog, 'a');
127        global $log;
128       
129        // Recherche de l'auteur de la synchro
130        settype($idUser, 'integer');
131        $requete= mysql_query("SELECT * FROM inscrits WHERE IdInscrit ='$idUser'") or die("la requete a echouée parce que : ". mysql_error());
132        $resultat= mysql_fetch_object($requete);
133       
134        $contenuLog = "Rapport de la synchronisation du " . date("d-m-Y") . " à " . date("H.i.s") . " par $resultat->PrenomInscrit $resultat->NomInscrit";
135        fwrite($GLOBALS['log'], $contenuLog);
136   
137        // Synchroniser tous les sites qui ont été sélectionnés
138        $listeSynchro = array();
139        for ($i = 0; $i <= $nombreSites; $i++)
140        {
141        $refSiteSyncro = "site" . $i;
142        if (isset($_GET[$refSiteSyncro])) // pour eviter une 'notice' php
143            $listeSynchro[$i] = mysql_escape_string($_GET[$refSiteSyncro]);
144        else
145            $listeSynchro[$i] = false;
146        }
147       
148        foreach($listeSynchro as $numero => $siteSynchro)
149        {
150       
151       
152        $requete= mysql_query("SELECT * FROM sites WHERE idSite ='$siteSynchro'") or die("la requete a echouée parce que : ". mysql_error());
153        $resultat= mysql_fetch_object($requete);
154       
155        if($resultat->NomSite)
156            {       
157            // COPIER LES FICHIERS DU MODELE DANS LE DOSSIER DU SITE
158           
159            // Definir les chemins de la source et de la cible
160            $dossierModele= "modeles/" . "$resultat->modele/";
161            echo $dossierModele;
162            global $dossierModele;
163       
164            $dossierSite= $resultat->dossier . "/";
165            global $dossierSite;
166           
167            // Infos  sur le site en cour de synchro
168            $contenuLog= "Synchronisation pour le site : $resultat->NomSite";
169            $contenuLog2= "dans le repertoire $dossierSite (dossier du modele = $dossierModele)";
170           
171            // Afficher les infos sur le site en cour de synchro
172            echo "<p><b>$contenuLog</b><br>$contenuLog2</p>";
173           
174            $contenuLog=
175              "\r\r\r*******************************************************************\r"
176            . $contenuLog . "\r" . $contenuLog2
177            . "\r*******************************************************************\r\r";
178           
179            // ecrire dans le log les infos sur le site en cour de synchro
180            fwrite($GLOBALS['log'], $contenuLog);
181           
182            // Appel de la fonction de copie dans "inc_fonctions.php"
183            if (synchro())
184                {
185                echo " -> Synchronisation terminée";
186                }
187            }   
188        }
189        fclose($GLOBALS['log']);
190        if(fopen($fichierLog, 'a'))
191        {
192        echo "<p><b><a href='$fichierLog' target='_blank'>Voir le rapport de synchronisation</a></b><br><br></p>";
193        }
194        else
195        {
196        echo "<p><b>Le fichier log n'a pas pu être crée... </b><br><br></p>";       
197        }
198    //ajout enguerrand
199    }
200    //fin d'ajout enguerrand
201}
202else
203{
204// ****************************************************************************
205// Liste des sites multispip (affichée au depart)
206// ****************************************************************************
207?>
208                  S&eacute;lectionnez les sites que vous souhaitez mettre &agrave;
209                  jour :
210                  <form action="synchro.php" method="GET" name="formulaire" id="formulaire">
211                    <table width="100%" border="0" cellpadding="1" cellspacing="2">
212                      <tr>
213                        <td colspan="6" class="edf4"><table width="100%" border="0" cellspacing="0" cellpadding="0">
214                            <tr>
215                              <td background="images/pointill_bleu.gif"><img src="images/dot.gif" width="2" height="1"></td>
216                            </tr>
217                          </table></td>
218                      </tr>
219                      <tr>
220                        <td bgcolor="#F2F2F2" class="edf4">Site </td>
221                        <td bgcolor="#F2F2F2" class="edf4">Description</td>
222                        <td bgcolor="#F2F2F2" class="edf4">Cr&eacute;e par </td>
223                        <td align="center" bgcolor="#F2F2F2" class="edf4">Date</td>
224                        <td align="center" bgcolor="#F2F2F2" class="edf4">Mod&egrave;le</td>
225                        <td align="center" bgcolor="#F2F2F2" class="edf4">Synchroniser</td>
226                      </tr>
227                      <tr>
228                        <td colspan="6"><table width="100%" border="0" cellspacing="0" cellpadding="0">
229                            <tr>
230                              <td background="images/pointill_bleu.gif"><img src="images/dot.gif" width="2" height="1"></td>
231                            </tr>
232                          </table></td>
233                      </tr>
234                      <?php
235    $requete= mysql_query($lister) or die("la requete a echouée parce que : ". mysql_error());
236    $liste=0;
237    while ($resultat= mysql_fetch_object($requete))
238    {
239    $date= "$resultat->dateEnregistrement";
240    ?>
241                      <tr>
242                        <td><a href="<?php echo "$resultat->UrlSite" ?>" target="_blank" class="edf5"><b><?php echo "$resultat->NomSite" ?></b></a></td>
243                        <td class="edf5"><?php echo "$resultat->DescriptionSite" ?></td>
244                        <td><a href="javascript:;"  class="edf5" onClick="javascript:window.open('http://quifaitquoi.der.edf.fr/quifaitquoi/associate/popasso.php?n=<?php echo "$resultat->idAgent"; ?>','inscrit','width=600,height=400,scrollbars=yes')"><?php echo "$resultat->PrenomInscrit $resultat->NomInscrit" ?></a></td>
245                        <td align="center" class="edf5">
246                          <?php formateDate($date); ?>
247                        </td>
248                        <td align="center" class="edf5" ><?php echo "$resultat->modele" ?></td>
249                        <td align="center" class="edf5" ><input type="checkbox" name="site<?php echo $liste ?>" value="<?php echo "$resultat->IdSite" ?>" <?php if($resultat->synchro == 'oui') echo 'checked';?>></td>
250                      </tr>
251                      <tr>
252                        <td colspan="6"><table width="100%" border="0" cellspacing="0" cellpadding="0">
253                            <tr>
254                              <td background="images/pointill_bleu.gif"><img src="images/dot.gif" width="2" height="1"></td>
255                            </tr>
256                          </table>
257                          </td>
258                    </tr>
259    <?php
260    $liste++;
261    }
262    ?>
263                     
264                      <tr align="right">
265                        <td colspan="6" class="edf8"> Mot de passe synchro :
266                          <!-- Nombre de sites total -->
267                          <input name="nombreSites" type="hidden" value="<?php echo $liste ?>">
268                      <input name="mdp" type="password" id="mdp" size="10">
269                      <input type="Submit" name="Submit" value="Valider">
270                      <!-- ajout enguerrand -->
271                      <input type="Submit" name="Maj" value="Mettre a jour">
272                      <!-- fin ajout enguerrand -->
273                        </td>
274                      </tr>
275                    </table>
276                    </form>
277    <?php
278    if($Submit) echo "<p align=\"right\"><font color=\"FF0000\"><b>Votre mot de passe n'est pas valide.</b></font></p>";
279    } // End if
280    ?>
281                </td>
282              </tr>
283              <tr>
284                <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
285                    <tr>
286                      <td bgcolor="#003366"><img src="images/dot.gif" width="2" height="1"></td>
287                    </tr>
288                  </table></td>
289              </tr>
290              <tr>
291                <td><table width="100%" border="0" cellspacing="0" cellpadding="3">
292                    <tr>
293                      <td><table width="100%" border="0" cellspacing="0" cellpadding="1">
294                          <tr>
295                            <td bgcolor="#999999"> <table width="100%" border="0" cellpadding="2" cellspacing="2" bgcolor="#FFFFFF">
296                                <tr>
297                                  <td align="center" bgcolor="#999999"><a href="accueil_inscrits.php" class="edf8"><font color="#FFFFFF">Retour</font></a></td>
298                                </tr>
299                              </table></td>
300                          </tr>
301                        </table></td>
302                    </tr>
303                  </table></td>
304              </tr>
305            </table></td>
306        </tr>
307      </table></td>
308  </tr>
309</table>
310</body>
311</html>
Note: See TracBrowser for help on using the browser.