Skip to content
Extraits de code Groupes Projets
Valider df1241ea rédigé par marcimat's avatar marcimat
Parcourir les fichiers

chore: Rector up to PHP 8.0 sur ecrire/base/connect_sql.php

parent 32d58601
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -41,7 +41,7 @@ require_once _ROOT_RESTREINT . 'base/objets.php'; ...@@ -41,7 +41,7 @@ require_once _ROOT_RESTREINT . 'base/objets.php';
**/ **/
function spip_connect($serveur = '', $version = '') { function spip_connect($serveur = '', $version = '') {
$serveur = !is_string($serveur) ? '' : strtolower($serveur); $serveur = is_string($serveur) ? strtolower($serveur) : '';
$index = $serveur ?: 0; $index = $serveur ?: 0;
if (!$version) { if (!$version) {
$version = $GLOBALS['spip_sql_version']; $version = $GLOBALS['spip_sql_version'];
...@@ -58,23 +58,23 @@ function spip_connect($serveur = '', $version = '') { ...@@ -58,23 +58,23 @@ function spip_connect($serveur = '', $version = '') {
$f = ''; $f = '';
if ($serveur) { if ($serveur) {
// serveur externe et nom de serveur bien ecrit ? // serveur externe et nom de serveur bien ecrit ?
if (defined('_DIR_CONNECT') if (
and preg_match('/^[\w\.]*$/', $serveur)) { defined('_DIR_CONNECT')
&& preg_match('/^[\w\.]*$/', $serveur)
) {
$f = _DIR_CONNECT . $serveur . '.php'; $f = _DIR_CONNECT . $serveur . '.php';
if (!is_readable($f) and !$install) { if (!is_readable($f) && !$install) {
// chercher une declaration de serveur dans le path // chercher une declaration de serveur dans le path
// qui peut servir à des plugins à declarer des connexions à une base sqlite // qui peut servir à des plugins à declarer des connexions à une base sqlite
// Ex: sert aux boucles POUR et au plugin-dist dump pour se connecter sur le sqlite du dump // Ex: sert aux boucles POUR et au plugin-dist dump pour se connecter sur le sqlite du dump
$f = find_in_path("$serveur.php", 'connect/'); $f = find_in_path("$serveur.php", 'connect/');
} }
} }
} } else {
else { if (defined('_FILE_CONNECT') && _FILE_CONNECT) {
if (defined('_FILE_CONNECT') and _FILE_CONNECT) {
// init du serveur principal // init du serveur principal
$f = _FILE_CONNECT; $f = _FILE_CONNECT;
} } elseif ($install && defined('_FILE_CONNECT_TMP')) {
elseif ($install and defined('_FILE_CONNECT_TMP')) {
// installation en cours // installation en cours
$f = _FILE_CONNECT_TMP; $f = _FILE_CONNECT_TMP;
} }
...@@ -82,7 +82,7 @@ function spip_connect($serveur = '', $version = '') { ...@@ -82,7 +82,7 @@ function spip_connect($serveur = '', $version = '') {
unset($GLOBALS['db_ok']); unset($GLOBALS['db_ok']);
unset($GLOBALS['spip_connect_version']); unset($GLOBALS['spip_connect_version']);
if ($f and is_readable($f)) { if ($f && is_readable($f)) {
include($f); include($f);
if (!isset($GLOBALS['db_ok'])) { if (!isset($GLOBALS['db_ok'])) {
spip_log("spip_connect: fichier de connexion '$f' OK mais echec connexion au serveur", _LOG_HS); spip_log("spip_connect: fichier de connexion '$f' OK mais echec connexion au serveur", _LOG_HS);
...@@ -111,13 +111,10 @@ function spip_connect($serveur = '', $version = '') { ...@@ -111,13 +111,10 @@ function spip_connect($serveur = '', $version = '') {
// si pas dans le fichier par defaut // si pas dans le fichier par defaut
$type = $GLOBALS['db_ok']['type']; $type = $GLOBALS['db_ok']['type'];
$jeu = 'spip_' . $type . '_functions_' . $version; $jeu = 'spip_' . $type . '_functions_' . $version;
if (!isset($GLOBALS[$jeu])) { if (!isset($GLOBALS[$jeu]) && !find_in_path($type . '_' . $version . '.php', 'req/', true)) {
if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) { spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS); // ne plus reessayer
return $GLOBALS['connexions'][$index][$version] = [];
// ne plus reessayer
return $GLOBALS['connexions'][$index][$version] = [];
}
} }
$GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu]; $GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu];
if ($old) { if ($old) {
...@@ -147,8 +144,8 @@ function spip_connect($serveur = '', $version = '') { ...@@ -147,8 +144,8 @@ function spip_connect($serveur = '', $version = '') {
// C'est le cas d'un dump sqlite par exemple // C'est le cas d'un dump sqlite par exemple
elseif ( elseif (
$GLOBALS['connexions'][$index]['spip_connect_version'] $GLOBALS['connexions'][$index]['spip_connect_version']
and sql_showtable('spip_meta', true, $serveur) && sql_showtable('spip_meta', true, $serveur)
and $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur) && ($r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur))
) { ) {
$charset = $r; $charset = $r;
} else { } else {
...@@ -201,8 +198,8 @@ function spip_connect_sql($version, $ins = '', $serveur = '', $continue = false) ...@@ -201,8 +198,8 @@ function spip_connect_sql($version, $ins = '', $serveur = '', $continue = false)
$desc = spip_connect($serveur, $version); $desc = spip_connect($serveur, $version);
if ( if (
$desc $desc
and $f = ($desc[$version][$ins] ?? '') && ($f = ($desc[$version][$ins] ?? ''))
and function_exists($f) && function_exists($f)
) { ) {
return $f; return $f;
} }
...@@ -261,7 +258,7 @@ function spip_connect_db( ...@@ -261,7 +258,7 @@ function spip_connect_db(
// pour ne pas declarer tout indisponible d'un coup // pour ne pas declarer tout indisponible d'un coup
// si en cours d'installation ou si db=@test@ on ne pose rien // si en cours d'installation ou si db=@test@ on ne pose rien
// car c'est un test de connexion // car c'est un test de connexion
if (!defined('_ECRIRE_INSTALL') and $db !== '@test@') { if (!defined('_ECRIRE_INSTALL') && $db !== '@test@') {
$f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out'; $f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out';
} elseif ($db == '@test@') { } elseif ($db == '@test@') {
$db = ''; $db = '';
...@@ -269,8 +266,8 @@ function spip_connect_db( ...@@ -269,8 +266,8 @@ function spip_connect_db(
if ( if (
$f $f
and @file_exists($f) && @file_exists($f)
and (time() - @filemtime($f) < _CONNECT_RETRY_DELAY) && (time() - @filemtime($f) < _CONNECT_RETRY_DELAY)
) { ) {
spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS); spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS);
...@@ -335,7 +332,7 @@ function spip_connect_db( ...@@ -335,7 +332,7 @@ function spip_connect_db(
* - nom du charset sinon * - nom du charset sinon
**/ **/
function spip_connect_main($connexion, $charset_sql_connexion = '') { function spip_connect_main($connexion, $charset_sql_connexion = '') {
if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) { if ($GLOBALS['spip_connect_version'] < 0.1 && _DIR_RESTREINT) {
include_spip('inc/headers'); include_spip('inc/headers');
redirige_url_ecrire('upgrade', 'reinstall=oui'); redirige_url_ecrire('upgrade', 'reinstall=oui');
} }
...@@ -350,8 +347,8 @@ function spip_connect_main($connexion, $charset_sql_connexion = '') { ...@@ -350,8 +347,8 @@ function spip_connect_main($connexion, $charset_sql_connexion = '') {
// sinon on regarde la table spip_meta // sinon on regarde la table spip_meta
// en cas d'erreur select retourne la requette (is_string=true donc) // en cas d'erreur select retourne la requette (is_string=true donc)
if ( if (
!$r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'") !($r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'"))
or is_string($r) || is_string($r)
) { ) {
return false; return false;
} }
...@@ -394,9 +391,9 @@ function spip_connect_ldap($serveur = '') { ...@@ -394,9 +391,9 @@ function spip_connect_ldap($serveur = '') {
**/ **/
function _q($a): string { function _q($a): string {
if (is_numeric($a)) { if (is_numeric($a)) {
return strval($a); return (string) $a;
} elseif (is_array($a)) { } elseif (is_array($a)) {
return join(',', array_map('_q', $a)); return implode(',', array_map('_q', $a));
} elseif (is_scalar($a)) { } elseif (is_scalar($a)) {
return ("'" . addslashes($a) . "'"); return ("'" . addslashes($a) . "'");
} elseif ($a === null) { } elseif ($a === null) {
...@@ -419,7 +416,7 @@ function _q($a): string { ...@@ -419,7 +416,7 @@ function _q($a): string {
*/ */
function query_echappe_textes($query, $uniqid = null) { function query_echappe_textes($query, $uniqid = null) {
static $codeEchappements = null; static $codeEchappements = null;
if (is_null($codeEchappements) or $uniqid) { if (is_null($codeEchappements) || $uniqid) {
if (is_null($uniqid)) { if (is_null($uniqid)) {
$uniqid = uniqid(); $uniqid = uniqid();
} }
...@@ -433,7 +430,7 @@ function query_echappe_textes($query, $uniqid = null) { ...@@ -433,7 +430,7 @@ function query_echappe_textes($query, $uniqid = null) {
// si la query contient deja des codes d'echappement on va s'emmeler les pinceaux et donc on ne touche a rien // si la query contient deja des codes d'echappement on va s'emmeler les pinceaux et donc on ne touche a rien
// ce n'est pas un cas legitime // ce n'est pas un cas legitime
foreach ($codeEchappements as $codeEchappement) { foreach ($codeEchappements as $codeEchappement) {
if (strpos($query, (string) $codeEchappement) !== false) { if (str_contains($query, (string) $codeEchappement)) {
return [$query, []]; return [$query, []];
} }
} }
...@@ -447,13 +444,13 @@ function query_echappe_textes($query, $uniqid = null) { ...@@ -447,13 +444,13 @@ function query_echappe_textes($query, $uniqid = null) {
$k = 0; $k = 0;
while (count($textes)) { while (count($textes)) {
$part = array_shift($textes); $part = array_shift($textes);
$nextpos = strpos($query_echappees, $part, $currentpos); $nextpos = strpos($query_echappees, (string) $part, $currentpos);
// si besoin recoller ensemble les doubles '' de sqlite (echappement des ') // si besoin recoller ensemble les doubles '' de sqlite (echappement des ')
while (count($textes) and substr($part, -1) === "'") { while (count($textes) && str_ends_with($part, "'")) {
$next = reset($textes); $next = reset($textes);
if ( if (
strpos($next, "'") === 0 str_starts_with($next, "'")
and strpos($query_echappees, $part . $next, $currentpos) === $nextpos && strpos($query_echappees, $part . $next, $currentpos) === $nextpos
) { ) {
$part .= array_shift($textes); $part .= array_shift($textes);
} }
...@@ -507,9 +504,7 @@ function query_reinjecte_textes($query, $textes) { ...@@ -507,9 +504,7 @@ function query_reinjecte_textes($query, $textes) {
$query = sprintf($query, ...$textes); $query = sprintf($query, ...$textes);
} }
$query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query); return str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
return $query;
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter