/** * Exécute une requête et renvoie une erreur au besoin * @global string * @param string $requete La requête à traité * @return string l'erreur ou vide */ function traite_requete($requete = "") { global $pb_maj; $retour = ""; $res = mysqli_query($GLOBALS["mysqli"], $requete); $erreur_no = ((is_object($GLOBALS["mysqli"])) ? mysqli_errno($GLOBALS["mysqli"]) : (($___mysqli_res = mysqli_connect_errno()) ? $___mysqli_res : false)); if (!$erreur_no) { $retour = ""; } else { switch ($erreur_no) { case "1060" : // le champ existe déjà : pas de problème $retour = ""; break; case "1061" : // La clé existe déjà : pas de problème $retour = ""; break; case "1062" : // Présence d'un doublon : création de la cléf impossible $retour = msj_erreur("Erreur (<strong>non critique</strong>) sur la requête : <i>" . $requete . "</i> (" . ((is_object($GLOBALS["mysqli"])) ? mysqli_errno($GLOBALS["mysqli"]) : (($___mysqli_res = mysqli_connect_errno()) ? $___mysqli_res : false)) . " : " . mysqli_error($GLOBALS["mysqli"]) . ")"); $pb_maj = 'yes'; break; case "1068" : // Des clés existent déjà : pas de problème $retour = ""; break; case "1069" : // trop d'index existent déjà pour cette table $retour = msj_erreur("Erreur (<strong>critique</strong>) sur la requête : <i>" . $requete . "</i> (" . ((is_object($GLOBALS["mysqli"])) ? mysqli_errno($GLOBALS["mysqli"]) : (($___mysqli_res = mysqli_connect_errno()) ? $___mysqli_res : false)) . " : " . mysqli_error($GLOBALS["mysqli"]) . ")"); $pb_maj = 'yes'; break; case "1091" : // Déjà supprimé : pas de problème $retour = ""; break; default : $retour = msj_erreur("Erreur sur la requête : <i>" . $requete . "</i> (" . ((is_object($GLOBALS["mysqli"])) ? mysqli_errno($GLOBALS["mysqli"]) : (($___mysqli_res = mysqli_connect_errno()) ? $___mysqli_res : false)) . " : " . mysqli_error($GLOBALS["mysqli"]) . ")"); $pb_maj = 'yes'; break; } } return $retour; }
/** * * @param type $tablename * @param type $indexname * @param type $indexcolumns * @return string */ function add_index($tablename, $indexname, $indexcolumns) { $result = " ->Ajout de l'index '$indexname' à la table $tablename<br />"; $req_res=0; $req_test = mysqli_query($GLOBALS["mysqli"], "SHOW INDEX FROM $tablename"); if (mysqli_num_rows($req_test)!=0) { while ($enrg = mysqli_fetch_object($req_test)) { if ($enrg-> Key_name == $indexname) {$req_res++;} } } if ($req_res == 0) { $query = mysqli_query($GLOBALS["mysqli"], "ALTER TABLE `$tablename` ADD INDEX $indexname ($indexcolumns)"); if ($query) { $result .= msj_ok(); } else { $result .= msj_erreur(); } } else { $result .= msj_present("L'index existe déjà."); } return $result; }
$result .= msj_present("Le champ existe déjà"); } $result .= " -> Ajout d'un champ 'nom_prof' à la table 'archivage_disciplines'<br />"; $test_champ=mysqli_num_rows(mysqli_query($mysqli, "SHOW COLUMNS FROM archivage_disciplines LIKE 'nom_prof';")); if ($test_champ==0) { $query = mysqli_query($mysqli, "ALTER TABLE archivage_disciplines ADD nom_prof VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER prof;"); if ($query) { $result .= msj_ok("Ok !"); } else { $result .= msj_erreur(); } } else { $result .= msj_present("Le champ existe déjà"); } $result .= " -> Ajout d'un champ 'prenom_prof' à la table 'archivage_disciplines'<br />"; $test_champ=mysqli_num_rows(mysqli_query($mysqli, "SHOW COLUMNS FROM archivage_disciplines LIKE 'prenom_prof';")); if ($test_champ==0) { $query = mysqli_query($mysqli, "ALTER TABLE archivage_disciplines ADD prenom_prof VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER nom_prof;"); if ($query) { $result .= msj_ok("Ok !"); } else { $result .= msj_erreur(); } } else { $result .= msj_present("Le champ existe déjà"); } ?>
$correction=virer_accents_html_setting('ImpressionFicheEleve'); if($correction==0) { $result .= msj_present("Pas d'accents HTML dans la Fiche Bienvenue élève."); } elseif($correction==1) { $result .= msj_ok("Conversion des accents HTML dans la Fiche Bienvenue élève effectuée."); } else { $result .= msj_erreur("Erreur lors de la conversion des accents HTML dans la Fiche Bienvenue élève."); } saveSetting('conv_html_fiche_bienvenue_eleves','fait'); } $sql="SELECT 1=1 FROM setting WHERE name='conv_html_fiche_bienvenue_responsables';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $correction=virer_accents_html_setting('ImpressionFicheParent'); if($correction==0) { $result .= msj_present("Pas d'accents HTML dans la Fiche Bienvenue responsable."); } elseif($correction==1) { $result .= msj_ok("Conversion des accents HTML dans la Fiche Bienvenue responsable effectuée."); } else { $result .= msj_erreur("Erreur lors de la conversion des accents HTML dans la Fiche Bienvenue responsable."); } saveSetting('conv_html_fiche_bienvenue_responsables','fait'); } ?>
if($temoin_erreur_migration=="n") { $result .= "<strong>Suppression de l'ancienne table 'tempo_utilisateurs_resp' :</strong><br />"; $sql="DROP TABLE tempo_utilisateurs_resp;"; $result_inter = traite_requete($sql); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); } else { $result .= msj_erreur("ECHEC !"); $temoin_erreur_migration="y"; } } } } $req_test=mysqli_query($GLOBALS["mysqli"], "SELECT value FROM setting WHERE name = 'utiliserMenuBarre'"); $res_test=mysqli_num_rows($req_test); if ($res_test==0){ $result_inter = traite_requete("INSERT INTO setting VALUES ('utiliserMenuBarre', 'no');"); if ($result_inter == '') { $result.=msj_ok("Définition du paramètre utiliserMenuBarre : Ok !"); } else { $result.=msj_erreur("Définition du paramètre utiliserMenuBarre : Erreur !"); } } else { $result .= msj_present("Le paramètre utiliserMenuBarre existe déjà dans la table setting."); } ?>
if ($test == -1) { $result_inter = traite_requete("CREATE TABLE IF NOT EXISTS tempo3 ( id int(11) NOT NULL auto_increment, col1 VARCHAR(255) NOT NULL, col2 TEXT, PRIMARY KEY (id) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); } else { $result .= msj_erreur("ECHEC !" ); } } $test = sql_query1("SHOW TABLES LIKE 'tempo3_cdt';"); if ($test == -1) { $result .= "<br /><strong>Ajout d'une table temporaire 'tempo3_cdt' :</strong><br />"; $result_inter = traite_requete("CREATE TABLE IF NOT EXISTS tempo3_cdt (id_classe int(11) NOT NULL default '0', classe varchar(255) NOT NULL default '', matiere varchar(255) NOT NULL default '', enseignement varchar(255) NOT NULL default '', id_groupe int(11) NOT NULL default '0', fichier varchar(255) NOT NULL default '') ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); } else { $result .= msj_erreur("ECHEC !" ); } } ?>
if (!saveSetting("output_mode_pdf", $output_mode_pdf)) { $result .= msj_erreur(); } else { $result .= msj_ok("Ok !"); } } $result .= "<br /><strong>Correction taille du champ 'num' de la table 'tempo' pour qu'il corresponde à celle du champ 'SESSION_ID' de la table 'log' :</strong><br />"; $test1 = mysqli_query($GLOBALS["mysqli"], "SHOW COLUMNS FROM tempo LIKE 'num'"); $test2 = mysqli_query($GLOBALS["mysqli"], "SHOW COLUMNS FROM log LIKE 'SESSION_ID'"); if (mysqli_num_rows($test1) != 0 && mysqli_num_rows($test2) != 0) { $obj_test1 = $test1->fetch_object(); $obj_test2 = $test2->fetch_object(); $result .= "Passage du champ à ".$obj_test2->Type."<br />"; if ($obj_test1->Type != $obj_test2->Type) { $querynp = mysqli_query($GLOBALS["mysqli"], "ALTER TABLE `tempo` CHANGE `num` `num` ".$obj_test2->Type." CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0';"); if ($querynp) { $result .= msj_ok('Ok !'); } else { $result .= msj_erreur('!'); } } else { $result .= msj_present("Le champ a déjà la bonne taille"); } } else { $result .= msj_erreur("Un des champs n'existe pas<br />"); } ?>
$result_inter = traite_requete("INSERT INTO setting VALUES ('encodage_nom_photo', 'no');"); if ($result_inter == '') { $result.=msj_ok("Définition du paramètre encodage_nom_photo : Ok !"); } else { $result.=msj_erreur("Définition du paramètre encodage_nom_photo : Erreur !"); } $titre="Encodage des photos"; $texte="Une fonctionnalité d'encodage des photos est proposée pour éviter des téléchargements abusifs.<br />Voir <a href='./mod_trombinoscopes/trombinoscopes_admin.php#encodage'>Administration du module Trombinoscope</a>"; $destinataire="administrateur"; $mode="statut"; enregistre_infos_actions($titre,$texte,$destinataire,$mode); } else { $result .= msj_present("Le paramètre encodage_nom_photo existe déjà dans la table setting."); } $req_test=mysqli_query($GLOBALS["mysqli"], "SELECT value FROM setting WHERE name = 'alea_nom_photo'"); $res_test=mysqli_num_rows($req_test); if ($res_test==0){ $result_inter = traite_requete("INSERT INTO setting VALUES ('alea_nom_photo', MD5(UNIX_TIMESTAMP()));"); if ($result_inter == '') { $result.=msj_ok("Définition du paramètre alea_nom_photo : Ok !"); } else { $result.=msj_erreur("Définition du paramètre alea_nom_photo : Erreur !"); } } else { $result .= msj_present("Le paramètre alea_nom_photo existe déjà dans la table setting."); } ?>