Example #1
0
 /**
 * Lecture d'un fichier contenant les requetes SQL et exécution
 *
 * @param sql_file Fichier contenant les requetes
 */
 function Sql_execSqlFile($sql_file)
 {
     global $MSG, $lang;
     /**
      * On construit un tableau avec les longueurs de chaque requete SQL
      * Chaque element du tableau nous aide a récupérer requête par requête
      * pour éviter des problemes de chargement avec de gros fichiers
      */
     $sizes_array = Sql_getSqlLenghts($sql_file);
     $handle = fopen($sql_file, "r");
     foreach ($sizes_array as $size_unit) {
         $sql_query = fread($handle, $size_unit);
         if ($sql_query != '') {
             if (get_magic_quotes_runtime() == 1) {
                 $sql_query = stripslashes($sql_query);
             }
             $sql_query = trim($sql_query);
             $sql_query = Sql_getSqlTxt($sql_query);
             //==================================================================================
             // On effectue quelques controles sur les requetes
             // On ne laisse passer que les requetes dont les tables sont referencees
             // dans le conf.php et de type INSERT, SELECT et DELETE
             //==================================================================================
             $bad_request = TRUE;
             preg_match("`(select|insert|delete) (into|from) ([a-zA-Z0-9_]+)`i", $sql_query, $tab);
             foreach ($GLOBALS['AUTH_TABLES'] as $table) {
                 Lib_sqlLog("Verification pour " . $tab[3]);
                 if (preg_match("`" . $table . "`i", $tab[3])) {
                     /*=============*/
                     Lib_sqlLog("{$tab[3]} autorisee");
                     $bad_request = FALSE;
                 } else {
                     /*=============*/
                     Lib_sqlLog("{$tab[3]} non autorisee");
                 }
             }
             if ($bad_request && $GLOBALS['stop_bad_sql']) {
                 $error_message = "<b> " . $MSG[$lang]['%%RequeteInterdite%%'] . " </b>";
                 $error_message .= "<br>{$sql_query}<br>";
                 fclose($handle);
                 return $error_message;
             }
             if ($bad_request) {
                 continue;
             }
             $result = mysql_query($sql_query);
             //=================================================================
             // On verifie la bonne execution de la requete
             //=================================================================
             if ($result == FALSE) {
                 $error_message = "<b> " . $MSG[$lang]['%%ProblemeSql%%'] . " </b>";
                 $error_message .= "<b> " . mysql_error() . " </b>";
                 $error_message .= "<br> <b> Requ&egrave;te: </b> {$sql_query} <br>";
                 Lib_sqlLog(mysql_error());
                 fclose($handle);
                 return $error_message;
             } else {
                 Lib_sqlLog("Requete executee avec succes: " . mysql_error());
             }
         }
     }
     fclose($handle);
     return "";
 }
Example #2
0
/**
* - Cas Install_Installer :
* . 
*		Le cas Install_Installer patati patata....
*/
function Install_Installer($data_in = array())
{
    global $lang, $MSG, $data_in, $data_out, $data_srv, $catalogue, $ip;
    $continue = true;
    //-------------------------------------------------
    // Tout d'abord, on verifie si le user existe deja
    //-------------------------------------------------
    Lib_myLog("Tentative de connexion avec l'utilisateur " . $data_in['login']);
    $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConnexionUser%%'] . " " . $data_in['login'];
    $db_link = @mysql_connect($data_in['serveur'], $data_in['login'], $data_in['mdp']);
    if ($db_link) {
        Lib_myLog("Connexion reussie");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConnexionUserOK%%'];
    } else {
        Lib_myLog("Erreur de connexion");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConnexionUserKO%%'];
    }
    //-------------------------------------------------
    // On essaye d'ouvrir la base
    //-------------------------------------------------
    if ($continue) {
        Lib_myLog("Tentative d'ouverture de la base de donnees");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConnexionBase%%'];
        $res = @mysql_select_db($data_in['bdd']);
        if ($res) {
            Lib_myLog("Ouverture reussie");
            $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConnexionBaseOK%%'];
        } else {
            Lib_myLog("Erreur d'ouverture");
            $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConnexionBaseKO%%'] . ": " . mysql_error();
            $continue = false;
        }
    }
    //-------------------------------------------------
    // Maintenant que la base est ouverte, on essaye de creer les tables systeme
    //-------------------------------------------------
    if ($continue) {
        Lib_myLog("Tentative de creation des tables systeme");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeCreationTablesSysteme%%'];
        $sql_file = "dilasys_MDD.sql";
        $sizes_array = Sql_getSqlLenghts($sql_file);
        $handle = @fopen($sql_file, "r");
        foreach ($sizes_array as $size_unit) {
            $sql_query = @fread($handle, $size_unit);
            if ($sql_query != '') {
                if (get_magic_quotes_runtime() == 1) {
                    $sql_query = stripslashes($sql_query);
                }
                $sql_query = trim($sql_query);
                $sql_query = Sql_getSqlTxt($sql_query);
                $sql_query = preg_replace("`%%prefix%%`", $data_in['prefix'], $sql_query);
                $result = Sql_exec($sql_query);
                if (!$result) {
                    $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeCreationTablesSystemeKO%%'] . ": " . mysql_error();
                    $continue = false;
                    break;
                }
            }
        }
    }
    if ($continue) {
        Lib_myLog("Creation tables systeme reussie");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeCreationTablesSystemeOK%%'];
        Lib_myLog("Tentative de creation des autres tables");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeCreationTablesAutres%%'];
        $sql_file = "./config/MDD.sql";
        $sizes_array = Sql_getSqlLenghts($sql_file);
        $handle = @fopen($sql_file, "r");
        foreach ($sizes_array as $size_unit) {
            $sql_query = fread($handle, $size_unit);
            if ($sql_query != '') {
                if (get_magic_quotes_runtime() == 1) {
                    $sql_query = stripslashes($sql_query);
                }
                $sql_query = trim($sql_query);
                $sql_query = Sql_getSqlTxt($sql_query);
                $sql_query = preg_replace("`%%prefix%%`", $data_in['prefix'], $sql_query);
                $result = Sql_exec($sql_query);
                if (!$result) {
                    $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeCreationTablesAutresKO%%'] . ": " . mysql_error();
                    $continue = false;
                    break;
                }
            }
        }
    }
    if ($continue) {
        Lib_myLog("Creation autres tables reussie");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeCreationTablesAutresOK%%'];
        Lib_myLog("Ajout des modules autorises");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeAjoutModulesAutorises%%'];
        $sql_file = "./config/modules.sql";
        $sizes_array = Sql_getSqlLenghts($sql_file);
        $handle = fopen($sql_file, "r");
        foreach ($sizes_array as $size_unit) {
            $sql_query = fread($handle, $size_unit);
            if ($sql_query != '') {
                if (get_magic_quotes_runtime() == 1) {
                    $sql_query = stripslashes($sql_query);
                }
                $sql_query = trim($sql_query);
                $sql_query = Sql_getSqlTxt($sql_query);
                $sql_query = preg_replace("`%%prefix%%`", $data_in['prefix'], $sql_query);
                $result = Sql_exec($sql_query);
                if (!$result) {
                    $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeAjoutModulesAutorisesKO%%'] . ": " . mysql_error();
                    $continue = false;
                    break;
                }
            }
        }
    }
    if ($continue) {
        Lib_myLog("Ajout des modules autorises reussi");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeAjoutModulesAutorisesOK%%'];
    }
    //-------------------------------------------------
    // On cree le fichier de conf
    //-------------------------------------------------
    if ($continue) {
        Lib_myLog("Configuration du fichier de conf");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConfigurationConf%%'];
        $conf = file('dilasys_conf.txt');
        $conf = implode($conf, "");
        $Out = preg_replace("`%%bdd%%`", $data_in['bdd'], $conf);
        $Out = preg_replace("`%%login%%`", $data_in['login'], $Out);
        $Out = preg_replace("`%%mdp%%`", $data_in['mdp'], $Out);
        $Out = preg_replace("`%%serveur%%`", $data_in['serveur'], $Out);
        $Out = preg_replace("`%%prefix%%`", $data_in['prefix'], $Out);
        $Out = preg_replace("`%%instance%%`", $data_in['instance'], $Out);
        $Out = preg_replace("`%%sgbd%%`", $data_in['sgbd'], $Out);
        $Out = preg_replace("`%%phrase%%`", $data_in['phrase'], $Out);
        $Out = preg_replace("`\r\n`", "\n", $Out);
        Lib_myLog("Creation du fichier conf pour la partie privee (administration)");
        $handle = fopen('../conf.php', 'w+');
        fwrite($handle, $Out);
        fclose($handle);
        Lib_myLog("Configuration terminee");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConfigurationConfOK%%'];
    }
    //-------------------------------------------------
    // On cree le fichier de params
    //-------------------------------------------------
    if ($continue) {
        Lib_myLog("Configuration du fichier params");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConfigurationParams%%'];
        $conf = file('dilasys_params.txt');
        $conf = implode($conf, "");
        $Out = preg_replace("`%%bdd%%`", $data_in['bdd'], $conf);
        $Out = preg_replace("`\r\n`", "\n", $Out);
        $var = "";
        foreach ($GLOBALS['auth_modules'] as $module) {
            $var .= "\"{$module}\",\n";
        }
        $Out = preg_replace("`%%modules%%`", $var, $Out);
        $var = "";
        if (isset($GLOBALS['auth_tables'])) {
            foreach ($GLOBALS['auth_tables'] as $table) {
                $var .= "\"" . $table . "\",\n";
            }
        }
        $Out = preg_replace("`%%tables%%`", $var, $Out);
        Lib_myLog("Creation du fichier params");
        $handle = fopen('../params.php', 'w+');
        fwrite($handle, $Out);
        fclose($handle);
        Lib_myLog("Configuration terminee");
        $data_out['etapes'][] = $MSG[$lang]['%%Action_EtapeConfigurationParamsOK%%'];
    }
    if ($continue) {
        // Sinon, message d'erreur indiquant qu'il n'est pas possible d'installer le systeme avec ce user
        $data_out['message'] = "Installation réussie !";
        $data_out['page'] = "Install_Resultat.php";
    } else {
        $data_out['message'] = "MEEEEEEEEEEEEERDE!!!";
        $data_out['page'] = "Install_Resultat.php";
    }
}