|
|
|
|
@@ -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]]]
|
|
|
|
|
|