From 1dbfa2a2434aaf02a6c5b5eadd15356e3c3f8fc0 Mon Sep 17 00:00:00 2001 From: franzz Date: Mon, 26 Jun 2017 13:59:30 +1200 Subject: [PATCH] replace mysql with mysqli --- current_version/.gitignore | 1 + current_version/config.php | 71 ++++++++++++++++++++++++------------- current_version/index.php | 3 +- current_version/install.php | 2 +- current_version/style.css | 4 +-- 5 files changed, 52 insertions(+), 29 deletions(-) create mode 100644 current_version/.gitignore diff --git a/current_version/.gitignore b/current_version/.gitignore new file mode 100644 index 0000000..9f37e35 --- /dev/null +++ b/current_version/.gitignore @@ -0,0 +1 @@ +/settings.php diff --git a/current_version/config.php b/current_version/config.php index f5d66bb..fe00cd2 100755 --- a/current_version/config.php +++ b/current_version/config.php @@ -152,22 +152,23 @@ function connection() $_GET['page'] = 'install'; return false; } - $oConnection = mysql_connect(DB_SERVER, DB_LOGIN, DB_PASS); + $oConnection = mysqli_connect(DB_SERVER, DB_LOGIN, DB_PASS); if(!$oConnection) { - addMessage(getError(array('La connexion à la base de donnée a échouée', 'Vérifiez les paramètres dans '.SETTINGS_FILE, 'Détails : '.mysql_error()), true)); + addMessage(getError(array('La connexion à la base de donnée a échouée', 'Vérifiez les paramètres dans '.SETTINGS_FILE, 'Détails : '.mysqli_connect_error()), true)); } - elseif(!mysql_select_db(DB_NAME, $oConnection)) + elseif(!mysqli_select_db($oConnection, DB_NAME)) { addMessage(getError(array('Impossible de sélectionner la base de données "'.DB_NAME.'"', 'Changez les constantes dans le fichier "'.SETTINGS_FILE.'" ou réinstaller la base de données'), true)); $_GET['page'] = 'install'; } - setContext($oConnection); return $oConnection; } -function setContext(&$oConnection) +function setContext() { + global $oConnection; + //php settings date_default_timezone_set(TIMEZONE); ini_set('default_charset', TEXT_ENC); @@ -179,7 +180,7 @@ function setContext(&$oConnection) mb_regex_encoding(TEXT_ENC); //Characters encoding - mysql_set_charset(DB_ENC, $oConnection); + mysqli_set_charset($oConnection, DB_ENC); //Time zone $oNow = new DateTime(); @@ -322,11 +323,11 @@ function install(&$oConnection, $sDbName, $asAdminsInfo, $bDropDb=true) { addMessage(getError(array( 'Base de données déjà présente', 'Choisissez un autre nom de base de donnés ou supprimez la', - 'Détails : '.mysql_error()), true)); + 'Détails : '.mysqli_error($oConnection)), true)); } - elseif(!mysql_select_db($sDbName, $oConnection)) //select database + elseif(!mysqli_select_db($oConnection, $sDbName)) //select database { - addMessage(getError(array('Sélection de la database "'.$sDbName.'" impossible', 'Détails : '.mysql_error()), true)); + addMessage(getError(array('Sélection de la database "'.$sDbName.'" impossible', 'Détails : '.mysqli_error($oConnection)), true)); } else { @@ -453,15 +454,19 @@ function createBackUp($bDropDb) { $sQuery .= "\n\n".getUniqueValue("SHOW CREATE TABLE ".$sTable, 'Create Table').";".END_OF_QUERY; $oTable = getQuery("SELECT * FROM `{$sTable}`"); - if(mysql_num_rows($oTable) > 0) + if(mysqli_num_rows($oTable) > 0) { - $iColumnNb = mysql_num_fields($oTable); + $iColumnNb = mysqli_num_fields($oTable); $sQuery .= "\n\n"."INSERT INTO `{$sTable}` \n("; - $sQuery .= encapsulate(array_map('mysql_field_name', array_fill(0, $iColumnNb, $oTable), range(0, $iColumnNb-1)), "`", false, ", "); + + $asFields = array(); + for($iFieldNb=0; $iFieldNb<$iColumnNb; $iFieldNb++) $asFields[] = mysqli_fetch_field_direct($oTable, $iFieldNb)->name; + $sQuery .= encapsulate($asFields, "`", false, ", "); + $sQuery .= ") \nVALUES\n"; $asValues = array(); - while ($asTableRow = mysql_fetch_array($oTable, MYSQL_ASSOC)) + while ($asTableRow = mysqli_fetch_array($oTable, MYSQLI_ASSOC)) { cleanSql($asTableRow); $asValues[] = "(".encapsulate($asTableRow, "'", false, ", ").")"; @@ -489,15 +494,15 @@ function restoreBackUp($sBackFilePath, &$oConnection) if(checkBackup($sBackFilePath)) { $sFileContents = file_get_contents($sBackFilePath); - mysql_close($oConnection); - $oConnection = mysql_connect(DB_SERVER, DB_LOGIN, DB_PASS); + mysqli_close($oConnection); + $oConnection = mysqli_connect(DB_SERVER, DB_LOGIN, DB_PASS); setContext($oConnection); $asQueries = array_filter(explode(END_OF_QUERY, str_replace(array("\r\n", "\n"), '', $sFileContents))); foreach($asQueries as $sQuery) { setQuery($sQuery); } - mysql_select_db(DB_NAME,$oConnection); + mysqli_select_db($oConnection, DB_NAME); addFeed('RESTORE', DB_NAME, 'database', $sBackFilePath); addMessage(getSuccess(array('Base restorée', 'Fichier chargé : '.$sBackFilePath, getHtml('Pour des raisons de sécurité, vous allez être déconnecté', 'strong')))); logMeOut(); @@ -685,16 +690,32 @@ function uploadFile($asFileInfo, $sDestFolder, $asAuthorizedFileExt) //Database access & write functions function cleanSql(&$oData) { - cleanData($oData, 'mysql_real_escape_string'); + global $oConnection; + + if(!is_array($oData)) + { + $oData = mysqli_real_escape_string($oConnection, $oData); + } + elseif(count($oData)>0) + { + $asKeys = array(); + $asValues = array(); + foreach($oData as $sKey=>$sValue) + { + $asKeys[] = mysqli_real_escape_string($oConnection, $sKey); + $asValues[] = mysqli_real_escape_string($oConnection, $sValue); + } + $oData = array_combine($asKeys, $asValues); + } } function getQuery($sQuery, $bDieOnError=true, $sTypeQuery=__FUNCTION__) { global $oConnection; - $oResult = mysql_query($sQuery); + $oResult = mysqli_query($oConnection, $sQuery); if(!$oResult) { - $sError = getError(array("Requête {$sTypeQuery}", 'mysql : '.mysql_error(), 'query : '.$sQuery), true); + $sError = getError(array("Requête {$sTypeQuery}", 'mysql : '.mysqli_error($oConnection), 'query : '.$sQuery), true); feedback($sError); if($bDieOnError) { @@ -711,7 +732,7 @@ function getArrayQuery($sQuery, $bStringOnly=false, $sTypeQuery=__FUNCTION__) { $asResult = array(); $oResult = getQuery($sQuery, true, $sTypeQuery); - while($asCurrentRow = mysql_fetch_array($oResult)) + while($asCurrentRow = mysqli_fetch_array($oResult)) { if($bStringOnly) { @@ -725,7 +746,7 @@ function getUniqueQuery($sQuery, $asColumnName=array(), $bStringOnly=false, $sTy { $oResult = getQuery($sQuery, true, $sTypeQuery); $asResult = array(); - while($asCurrentRow = mysql_fetch_array($oResult)) + while($asCurrentRow = mysqli_fetch_array($oResult)) { if($bStringOnly) { @@ -1058,7 +1079,7 @@ function getQcm($oQcmIds=false) FROM ".QCM_TABLE. $sQcmConstraint." ORDER BY ".getId(QCM_TABLE)); - while($asQcms = mysql_fetch_array($oQcm)) + while($asQcms = mysqli_fetch_array($oQcm)) { $asResults[$asQcms['id_'.QCM_TABLE]][QCM_TABLE] = $asQcms[QCM_TABLE]; $asResults[$asQcms['id_'.QCM_TABLE]]['id_'.USER_TABLE] = $asQcms['id_'.USER_TABLE]; @@ -1066,7 +1087,7 @@ function getQcm($oQcmIds=false) FROM ".QUESTION_TABLE. $sQcmConstraint." ORDER BY ".getId(QUESTION_TABLE)); - while($asQuestion = mysql_fetch_array($oQuestion)) + while($asQuestion = mysqli_fetch_array($oQuestion)) { $asResults[$asQcms['id_'.QCM_TABLE]][QUESTION_TABLE][$asQuestion['id_'.QUESTION_TABLE]][QUESTION_TABLE] = $asQuestion[QUESTION_TABLE]; $asResults[$asQcms['id_'.QCM_TABLE]][QUESTION_TABLE][$asQuestion['id_'.QUESTION_TABLE]]['image'] = $asQuestion['image']; @@ -1075,7 +1096,7 @@ function getQcm($oQcmIds=false) $sQcmConstraint." ".(($sQcmConstraint!='')?"AND":"WHERE")." id_".QUESTION_TABLE." = ".$asQuestion['id_'.QUESTION_TABLE]." ORDER BY ".getId(ANSWER_TABLE)); - while($asAnswer = mysql_fetch_array($oAnswer)) + while($asAnswer = mysqli_fetch_array($oAnswer)) { $asResults [$asQcms['id_'.QCM_TABLE]] [QUESTION_TABLE] @@ -1215,7 +1236,7 @@ function getResults($aiInfoSelect) ".getSQLResultsConstraints($aiInfoSelect)." ORDER BY ".QCM_TABLE.", grade, class, ".USER_TABLE."_last_name"); - while($asCurrentResult = mysql_fetch_array($oResults)) + while($asCurrentResult = mysqli_fetch_array($oResults)) { $asResults [$asCurrentResult[$asOutputOrder[0]]] [$asCurrentResult[$asOutputOrder[1]]] diff --git a/current_version/index.php b/current_version/index.php index 78a134e..4dd6b2b 100755 --- a/current_version/index.php +++ b/current_version/index.php @@ -24,6 +24,7 @@ session_start(); $sScriptStartTime = microtime(); require_once('config.php'); $oConnection = connection(); +setContext(); //clean data cleanPost($_POST); @@ -110,7 +111,7 @@ $asGeneralDisplay['version'] = $sLogLink; //close SQL connection if($oConnection) { - mysql_close($oConnection); + mysqli_close($oConnection); } //combine main part diff --git a/current_version/install.php b/current_version/install.php index d8726f2..0249f61 100644 --- a/current_version/install.php +++ b/current_version/install.php @@ -20,7 +20,7 @@ if(isset($_POST['READY_TO_USE'])) { unlink(SETTINGS_FILE); } - $oConnection = @mysql_connect($sDbServer, $sDbLogin, $_POST['DB_PASS']); + $oConnection = @mysqli_connect($sDbServer, $sDbLogin, $_POST['DB_PASS']); if(!$oConnection) { addMessage(getError(array('Connexion impossible', 'Vérifier les identifiants'))); diff --git a/current_version/style.css b/current_version/style.css index 98151b8..c975752 100644 --- a/current_version/style.css +++ b/current_version/style.css @@ -334,7 +334,7 @@ a.deleteQuestion, a.deleteImage { position:absolute; margin-top:10px; margin-left:-22px; - border-radius:0 5px; -moz-border-radius:0 5px; -webkit-border-radius:0 5px; + border-radius:0 5px 0 5px; -moz-border-radius:0 5px 0 5px; -webkit-border-radius:0 5px 0 5px; } a.deleteAnswer { position:absolute; @@ -342,7 +342,7 @@ a.deleteAnswer { border-radius:0 5px 5px 0; -moz-border-radius:0 5px 5px 0; -webkit-border-radius:0 5px 5px 0; } a.deleteImage { - margin-top:139px; + margin-top:118px; margin-right:0; } a.XButton {