Completed
Push — master ( c3f20e...6d7580 )
by cam
01:15
created
ecrire/auth/spip.php 2 patches
Indentation   +335 added lines, -335 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -32,116 +32,116 @@  discard block
 block discarded – undo
32 32
  */
33 33
 function auth_spip_dist($login, $pass, $serveur = '', $phpauth = false) {
34 34
 
35
-	// retrouver le login
36
-	$login = auth_spip_retrouver_login($login);
37
-	// login inconnu, n'allons pas plus loin
38
-	if (!$login) {
39
-		return [];
40
-	}
41
-
42
-	$md5pass = '';
43
-	$shapass = $shanext = '';
44
-
45
-	if (preg_match(',^\{([0-9a-f]{64});([0-9a-f]{64})\}$,i', $pass, $regs)) {
46
-		$shapass = $regs[1];
47
-		$shanext = $regs[2];
48
-	} // compat avec une base mixte md5/sha256 : le js a envoye les 2 hash
49
-	elseif (preg_match(',^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$,i', $pass, $regs)) {
50
-		$shapass = $regs[1];
51
-		$shanext = $regs[2];
52
-		$md5pass = $regs[3];
53
-		//$md5next = $regs[4];
54
-	} // si envoi non crypte, crypter maintenant
55
-	elseif ($pass) {
56
-		$row = sql_fetsel(
57
-			'alea_actuel, alea_futur',
58
-			'spip_auteurs',
59
-			'login=' . sql_quote($login, $serveur, 'text'),
60
-			'',
61
-			'',
62
-			'',
63
-			'',
64
-			$serveur
65
-		);
66
-
67
-		if ($row) {
68
-			include_spip('auth/sha256.inc');
69
-			$shapass = spip_sha256($row['alea_actuel'] . $pass);
70
-			$shanext = spip_sha256($row['alea_futur'] . $pass);
71
-			$md5pass = md5($row['alea_actuel'] . $pass);
72
-		}
73
-	}
74
-
75
-	// login inexistant ou mot de passe vide
76
-	if (!$shapass and !$md5pass) {
77
-		return [];
78
-	}
79
-
80
-	$row = sql_fetsel(
81
-		'*',
82
-		'spip_auteurs',
83
-		'login=' . sql_quote($login, $serveur, 'text') . ' AND pass=' . sql_quote(
84
-			$shapass,
85
-			$serveur,
86
-			'text'
87
-		) . " AND statut<>'5poubelle'",
88
-		'',
89
-		'',
90
-		'',
91
-		'',
92
-		$serveur
93
-	);
94
-
95
-	// compat avec les anciennes bases en md5
96
-	if (!$row and $md5pass) {
97
-		$row = sql_fetsel(
98
-			'*',
99
-			'spip_auteurs',
100
-			'login=' . sql_quote($login, $serveur, 'text') . ' AND pass=' . sql_quote(
101
-				$md5pass,
102
-				$serveur,
103
-				'text'
104
-			) . " AND statut<>'5poubelle'",
105
-			'',
106
-			'',
107
-			'',
108
-			'',
109
-			$serveur
110
-		);
111
-	}
112
-
113
-	// login/mot de passe incorrect
114
-	if (!$row) {
115
-		return [];
116
-	}
117
-
118
-	// fait tourner le codage du pass dans la base
119
-	// sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
120
-	if ($shanext and !$phpauth) {
121
-		include_spip('inc/acces'); // pour creer_uniqid
122
-		@sql_update(
123
-			'spip_auteurs', 
124
-			[
125
-				'alea_actuel' => 'alea_futur',
126
-				'pass' => sql_quote($shanext, $serveur, 'text'),
127
-				'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
128
-			], 
129
-			'id_auteur=' . $row['id_auteur'] . ' AND pass IN (' . sql_quote(
130
-				$shapass,
131
-				$serveur,
132
-				'text'
133
-			) . ', ' . sql_quote($md5pass, $serveur, 'text') . ')',
134
-			[],
135
-			$serveur
136
-		);
137
-		// En profiter pour verifier la securite de tmp/
138
-		// Si elle ne fonctionne pas a l'installation, prevenir
139
-		if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) {
140
-			return false;
141
-		}
142
-	}
143
-
144
-	return $row;
35
+    // retrouver le login
36
+    $login = auth_spip_retrouver_login($login);
37
+    // login inconnu, n'allons pas plus loin
38
+    if (!$login) {
39
+        return [];
40
+    }
41
+
42
+    $md5pass = '';
43
+    $shapass = $shanext = '';
44
+
45
+    if (preg_match(',^\{([0-9a-f]{64});([0-9a-f]{64})\}$,i', $pass, $regs)) {
46
+        $shapass = $regs[1];
47
+        $shanext = $regs[2];
48
+    } // compat avec une base mixte md5/sha256 : le js a envoye les 2 hash
49
+    elseif (preg_match(',^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$,i', $pass, $regs)) {
50
+        $shapass = $regs[1];
51
+        $shanext = $regs[2];
52
+        $md5pass = $regs[3];
53
+        //$md5next = $regs[4];
54
+    } // si envoi non crypte, crypter maintenant
55
+    elseif ($pass) {
56
+        $row = sql_fetsel(
57
+            'alea_actuel, alea_futur',
58
+            'spip_auteurs',
59
+            'login=' . sql_quote($login, $serveur, 'text'),
60
+            '',
61
+            '',
62
+            '',
63
+            '',
64
+            $serveur
65
+        );
66
+
67
+        if ($row) {
68
+            include_spip('auth/sha256.inc');
69
+            $shapass = spip_sha256($row['alea_actuel'] . $pass);
70
+            $shanext = spip_sha256($row['alea_futur'] . $pass);
71
+            $md5pass = md5($row['alea_actuel'] . $pass);
72
+        }
73
+    }
74
+
75
+    // login inexistant ou mot de passe vide
76
+    if (!$shapass and !$md5pass) {
77
+        return [];
78
+    }
79
+
80
+    $row = sql_fetsel(
81
+        '*',
82
+        'spip_auteurs',
83
+        'login=' . sql_quote($login, $serveur, 'text') . ' AND pass=' . sql_quote(
84
+            $shapass,
85
+            $serveur,
86
+            'text'
87
+        ) . " AND statut<>'5poubelle'",
88
+        '',
89
+        '',
90
+        '',
91
+        '',
92
+        $serveur
93
+    );
94
+
95
+    // compat avec les anciennes bases en md5
96
+    if (!$row and $md5pass) {
97
+        $row = sql_fetsel(
98
+            '*',
99
+            'spip_auteurs',
100
+            'login=' . sql_quote($login, $serveur, 'text') . ' AND pass=' . sql_quote(
101
+                $md5pass,
102
+                $serveur,
103
+                'text'
104
+            ) . " AND statut<>'5poubelle'",
105
+            '',
106
+            '',
107
+            '',
108
+            '',
109
+            $serveur
110
+        );
111
+    }
112
+
113
+    // login/mot de passe incorrect
114
+    if (!$row) {
115
+        return [];
116
+    }
117
+
118
+    // fait tourner le codage du pass dans la base
119
+    // sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
120
+    if ($shanext and !$phpauth) {
121
+        include_spip('inc/acces'); // pour creer_uniqid
122
+        @sql_update(
123
+            'spip_auteurs', 
124
+            [
125
+                'alea_actuel' => 'alea_futur',
126
+                'pass' => sql_quote($shanext, $serveur, 'text'),
127
+                'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
128
+            ], 
129
+            'id_auteur=' . $row['id_auteur'] . ' AND pass IN (' . sql_quote(
130
+                $shapass,
131
+                $serveur,
132
+                'text'
133
+            ) . ', ' . sql_quote($md5pass, $serveur, 'text') . ')',
134
+            [],
135
+            $serveur
136
+        );
137
+        // En profiter pour verifier la securite de tmp/
138
+        // Si elle ne fonctionne pas a l'installation, prevenir
139
+        if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) {
140
+            return false;
141
+        }
142
+    }
143
+
144
+    return $row;
145 145
 }
146 146
 
147 147
 /**
@@ -151,41 +151,41 @@  discard block
 block discarded – undo
151 151
  * @return array
152 152
  */
153 153
 function auth_spip_formulaire_login($flux) {
154
-	// faut il encore envoyer md5 ?
155
-	// on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
156
-	// les hash md5 ont une longueur 32, les sha 64
157
-	// en evitant une requete sql a chaque affichage du formulaire login sans session
158
-	// (perf issue pour les sites qui mettent le formulaire de login sur la home)
159
-	$compat_md5 = false;
160
-	if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) {
161
-		$compat_md5 = sql_countsel('spip_auteurs', "length(pass)=32 AND statut<>'poubelle'");
162
-		if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) {
163
-			effacer_meta('sha_256_only');
164
-		}
165
-		if (!$compat_md5) {
166
-			ecrire_meta('sha_256_only', 'oui');
167
-		}
168
-	}
169
-
170
-	// javascript qui gere la securite du login en evitant de faire circuler le pass en clair
171
-	$flux['data'] .=
172
-		($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
173
-		. '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
174
-		. '<script type="text/javascript">/*<![CDATA[*/'
175
-		. "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
176
-		. "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
177
-		. "'login':'" . $flux['args']['contexte']['var_login'] . "',"
178
-		. "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
179
-		. "'informe_auteur_en_cours':false,"
180
-		. "'attente_informe':0,"
181
-		. "'compat_md5':" . ($compat_md5 ? 'true' : 'false') . '};'
182
-		. "jQuery(function(){
154
+    // faut il encore envoyer md5 ?
155
+    // on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
156
+    // les hash md5 ont une longueur 32, les sha 64
157
+    // en evitant une requete sql a chaque affichage du formulaire login sans session
158
+    // (perf issue pour les sites qui mettent le formulaire de login sur la home)
159
+    $compat_md5 = false;
160
+    if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) {
161
+        $compat_md5 = sql_countsel('spip_auteurs', "length(pass)=32 AND statut<>'poubelle'");
162
+        if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) {
163
+            effacer_meta('sha_256_only');
164
+        }
165
+        if (!$compat_md5) {
166
+            ecrire_meta('sha_256_only', 'oui');
167
+        }
168
+    }
169
+
170
+    // javascript qui gere la securite du login en evitant de faire circuler le pass en clair
171
+    $flux['data'] .=
172
+        ($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
173
+        . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
174
+        . '<script type="text/javascript">/*<![CDATA[*/'
175
+        . "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
176
+        . "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
177
+        . "'login':'" . $flux['args']['contexte']['var_login'] . "',"
178
+        . "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
179
+        . "'informe_auteur_en_cours':false,"
180
+        . "'attente_informe':0,"
181
+        . "'compat_md5':" . ($compat_md5 ? 'true' : 'false') . '};'
182
+        . "jQuery(function(){
183 183
 	jQuery('#var_login').change(actualise_auteur);
184 184
 	jQuery('form#formulaire_login').submit(login_submit);
185 185
 });"
186
-		. '/*]]>*/</script>';
186
+        . '/*]]>*/</script>';
187 187
 
188
-	return $flux;
188
+    return $flux;
189 189
 }
190 190
 
191 191
 
@@ -197,11 +197,11 @@  discard block
 block discarded – undo
197 197
  *   toujours true pour un auteur cree dans SPIP
198 198
  */
199 199
 function auth_spip_autoriser_modifier_login(string $serveur = ''): bool {
200
-	// les fonctions d'ecriture sur base distante sont encore incompletes
201
-	if (strlen($serveur)) {
202
-		return false;
203
-	} 
204
-	return true;
200
+    // les fonctions d'ecriture sur base distante sont encore incompletes
201
+    if (strlen($serveur)) {
202
+        return false;
203
+    } 
204
+    return true;
205 205
 }
206 206
 
207 207
 /**
@@ -215,25 +215,25 @@  discard block
 block discarded – undo
215 215
  *  message d'erreur si login non valide, chaine vide sinon
216 216
  */
217 217
 function auth_spip_verifier_login($new_login, $id_auteur = 0, $serveur = '') {
218
-	// login et mot de passe
219
-	if (strlen($new_login)) {
220
-		if (strlen($new_login) < _LOGIN_TROP_COURT) {
221
-			return _T('info_login_trop_court_car_pluriel', ['nb' => _LOGIN_TROP_COURT]);
222
-		} else {
223
-			$n = sql_countsel(
224
-				'spip_auteurs',
225
-				'login=' . sql_quote($new_login) . ' AND id_auteur!=' . intval($id_auteur) . " AND statut!='5poubelle'",
226
-				'',
227
-				'',
228
-				$serveur
229
-			);
230
-			if ($n) {
231
-				return _T('info_login_existant');
232
-			}
233
-		}
234
-	}
235
-
236
-	return '';
218
+    // login et mot de passe
219
+    if (strlen($new_login)) {
220
+        if (strlen($new_login) < _LOGIN_TROP_COURT) {
221
+            return _T('info_login_trop_court_car_pluriel', ['nb' => _LOGIN_TROP_COURT]);
222
+        } else {
223
+            $n = sql_countsel(
224
+                'spip_auteurs',
225
+                'login=' . sql_quote($new_login) . ' AND id_auteur!=' . intval($id_auteur) . " AND statut!='5poubelle'",
226
+                '',
227
+                '',
228
+                $serveur
229
+            );
230
+            if ($n) {
231
+                return _T('info_login_existant');
232
+            }
233
+        }
234
+    }
235
+
236
+    return '';
237 237
 }
238 238
 
239 239
 /**
@@ -245,41 +245,41 @@  discard block
 block discarded – undo
245 245
  * @return bool
246 246
  */
247 247
 function auth_spip_modifier_login($new_login, $id_auteur, $serveur = '') {
248
-	if (is_null($new_login) or auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
249
-		return false;
250
-	}
251
-	if (
252
-		!$id_auteur = intval($id_auteur)
253
-		or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
254
-	) {
255
-		return false;
256
-	}
257
-	if ($new_login == $auteur['login']) {
258
-		return true;
259
-	} // on a rien fait mais c'est bon !
260
-
261
-	include_spip('action/editer_auteur');
262
-
263
-	// vider le login des auteurs a la poubelle qui avaient ce meme login
264
-	if (strlen($new_login)) {
265
-		$anciens = sql_allfetsel(
266
-			'id_auteur',
267
-			'spip_auteurs',
268
-			'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'",
269
-			'',
270
-			'',
271
-			'',
272
-			'',
273
-			$serveur
274
-		);
275
-		while ($row = array_pop($anciens)) {
276
-			auteur_modifier($row['id_auteur'], ['login' => ''], true); // manque la gestion de $serveur
277
-		}
278
-	}
279
-
280
-	auteur_modifier($id_auteur, ['login' => $new_login], true); // manque la gestion de $serveur
281
-
282
-	return true;
248
+    if (is_null($new_login) or auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
249
+        return false;
250
+    }
251
+    if (
252
+        !$id_auteur = intval($id_auteur)
253
+        or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
254
+    ) {
255
+        return false;
256
+    }
257
+    if ($new_login == $auteur['login']) {
258
+        return true;
259
+    } // on a rien fait mais c'est bon !
260
+
261
+    include_spip('action/editer_auteur');
262
+
263
+    // vider le login des auteurs a la poubelle qui avaient ce meme login
264
+    if (strlen($new_login)) {
265
+        $anciens = sql_allfetsel(
266
+            'id_auteur',
267
+            'spip_auteurs',
268
+            'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'",
269
+            '',
270
+            '',
271
+            '',
272
+            '',
273
+            $serveur
274
+        );
275
+        while ($row = array_pop($anciens)) {
276
+            auteur_modifier($row['id_auteur'], ['login' => ''], true); // manque la gestion de $serveur
277
+        }
278
+    }
279
+
280
+    auteur_modifier($id_auteur, ['login' => $new_login], true); // manque la gestion de $serveur
281
+
282
+    return true;
283 283
 }
284 284
 
285 285
 /**
@@ -291,44 +291,44 @@  discard block
 block discarded – undo
291 291
  * @return string
292 292
  */
293 293
 function auth_spip_retrouver_login($login, $serveur = '') {
294
-	if (!strlen($login)) {
295
-		return null;
296
-	} // pas la peine de requeter
297
-	$l = sql_quote($login, $serveur, 'text');
298
-	if (
299
-		$r = sql_getfetsel(
300
-			'login',
301
-			'spip_auteurs',
302
-			"statut<>'5poubelle'" .
303
-			' AND (length(pass)>0)' .
304
-			" AND (login=$l)",
305
-			'',
306
-			'',
307
-			'',
308
-			'',
309
-			$serveur
310
-		)
311
-	) {
312
-		return $r;
313
-	}
314
-	// Si pas d'auteur avec ce login
315
-	// regarder s'il a saisi son nom ou son mail.
316
-	// Ne pas fusionner avec la requete precedente
317
-	// car un nom peut etre homonyme d'un autre login
318
-	else {
319
-		return sql_getfetsel(
320
-			'login',
321
-			'spip_auteurs',
322
-			"statut<>'5poubelle'" .
323
-			' AND (length(pass)>0)' .
324
-			" AND (login<>'' AND (nom=$l OR email=$l))",
325
-			'',
326
-			'',
327
-			'',
328
-			'',
329
-			$serveur
330
-		);
331
-	}
294
+    if (!strlen($login)) {
295
+        return null;
296
+    } // pas la peine de requeter
297
+    $l = sql_quote($login, $serveur, 'text');
298
+    if (
299
+        $r = sql_getfetsel(
300
+            'login',
301
+            'spip_auteurs',
302
+            "statut<>'5poubelle'" .
303
+            ' AND (length(pass)>0)' .
304
+            " AND (login=$l)",
305
+            '',
306
+            '',
307
+            '',
308
+            '',
309
+            $serveur
310
+        )
311
+    ) {
312
+        return $r;
313
+    }
314
+    // Si pas d'auteur avec ce login
315
+    // regarder s'il a saisi son nom ou son mail.
316
+    // Ne pas fusionner avec la requete precedente
317
+    // car un nom peut etre homonyme d'un autre login
318
+    else {
319
+        return sql_getfetsel(
320
+            'login',
321
+            'spip_auteurs',
322
+            "statut<>'5poubelle'" .
323
+            ' AND (length(pass)>0)' .
324
+            " AND (login<>'' AND (nom=$l OR email=$l))",
325
+            '',
326
+            '',
327
+            '',
328
+            '',
329
+            $serveur
330
+        );
331
+    }
332 332
 }
333 333
 
334 334
 
@@ -346,11 +346,11 @@  discard block
 block discarded – undo
346 346
  */
347 347
 function auth_spip_informer_login($infos, $row, $serveur = '') {
348 348
 
349
-	// pour la methode SPIP on a besoin des alea en plus pour encoder le pass avec
350
-	$infos['alea_actuel'] = $row['alea_actuel'];
351
-	$infos['alea_futur'] = $row['alea_futur'];
349
+    // pour la methode SPIP on a besoin des alea en plus pour encoder le pass avec
350
+    $infos['alea_actuel'] = $row['alea_actuel'];
351
+    $infos['alea_futur'] = $row['alea_futur'];
352 352
 
353
-	return $infos;
353
+    return $infos;
354 354
 }
355 355
 
356 356
 /**
@@ -361,11 +361,11 @@  discard block
 block discarded – undo
361 361
  *  toujours true pour un auteur cree dans SPIP
362 362
  */
363 363
 function auth_spip_autoriser_modifier_pass(string $serveur = ''): bool {
364
-	// les fonctions d'ecriture sur base distante sont encore incompletes
365
-	if (strlen($serveur)) {
366
-		return false;
367
-	} 
368
-	return true;
364
+    // les fonctions d'ecriture sur base distante sont encore incompletes
365
+    if (strlen($serveur)) {
366
+        return false;
367
+    } 
368
+    return true;
369 369
 }
370 370
 
371 371
 
@@ -386,12 +386,12 @@  discard block
 block discarded – undo
386 386
  *  message d'erreur si login non valide, chaine vide sinon
387 387
  */
388 388
 function auth_spip_verifier_pass($login, $new_pass, $id_auteur = 0, $serveur = '') {
389
-	// login et mot de passe
390
-	if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
391
-		return _T('info_passe_trop_court_car_pluriel', ['nb' => _PASS_LONGUEUR_MINI]);
392
-	}
389
+    // login et mot de passe
390
+    if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
391
+        return _T('info_passe_trop_court_car_pluriel', ['nb' => _PASS_LONGUEUR_MINI]);
392
+    }
393 393
 
394
-	return '';
394
+    return '';
395 395
 }
396 396
 
397 397
 /**
@@ -405,34 +405,34 @@  discard block
 block discarded – undo
405 405
  * @return bool
406 406
  */
407 407
 function auth_spip_modifier_pass($login, $new_pass, $id_auteur, $serveur = '') {
408
-	if (is_null($new_pass) or auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
409
-		return false;
410
-	}
411
-
412
-	if (
413
-		!$id_auteur = intval($id_auteur)
414
-		or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
415
-	) {
416
-		return false;
417
-	}
418
-
419
-	$c = [];
420
-	include_spip('inc/acces');
421
-	include_spip('auth/sha256.inc');
422
-	$htpass = generer_htpass($new_pass);
423
-	$alea_actuel = creer_uniqid();
424
-	$alea_futur = creer_uniqid();
425
-	$pass = spip_sha256($alea_actuel . $new_pass);
426
-	$c['pass'] = $pass;
427
-	$c['htpass'] = $htpass;
428
-	$c['alea_actuel'] = $alea_actuel;
429
-	$c['alea_futur'] = $alea_futur;
430
-	$c['low_sec'] = '';
431
-
432
-	include_spip('action/editer_auteur');
433
-	auteur_modifier($id_auteur, $c, true); // manque la gestion de $serveur
434
-
435
-	return true; // on a bien modifie le pass
408
+    if (is_null($new_pass) or auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
409
+        return false;
410
+    }
411
+
412
+    if (
413
+        !$id_auteur = intval($id_auteur)
414
+        or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
415
+    ) {
416
+        return false;
417
+    }
418
+
419
+    $c = [];
420
+    include_spip('inc/acces');
421
+    include_spip('auth/sha256.inc');
422
+    $htpass = generer_htpass($new_pass);
423
+    $alea_actuel = creer_uniqid();
424
+    $alea_futur = creer_uniqid();
425
+    $pass = spip_sha256($alea_actuel . $new_pass);
426
+    $c['pass'] = $pass;
427
+    $c['htpass'] = $htpass;
428
+    $c['alea_actuel'] = $alea_actuel;
429
+    $c['alea_futur'] = $alea_futur;
430
+    $c['low_sec'] = '';
431
+
432
+    include_spip('action/editer_auteur');
433
+    auteur_modifier($id_auteur, $c, true); // manque la gestion de $serveur
434
+
435
+    return true; // on a bien modifie le pass
436 436
 }
437 437
 
438 438
 /**
@@ -446,58 +446,58 @@  discard block
 block discarded – undo
446 446
  * @return void
447 447
  */
448 448
 function auth_spip_synchroniser_distant($id_auteur, $champs, $options = [], string $serveur = '') : void {
449
-	// ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
450
-	if (strlen($serveur)) {
451
-		return;
452
-	}
453
-	// si un login, pass ou statut a ete modifie
454
-	// regenerer les fichier htpass
455
-	if (
456
-		isset($champs['login'])
457
-		or isset($champs['pass'])
458
-		or isset($champs['statut'])
459
-		or (isset($options['all']) and $options['all'])
460
-	) {
461
-		$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
462
-		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
463
-
464
-		// Cette variable de configuration peut etre posee par un plugin
465
-		// par exemple acces_restreint ;
466
-		// si .htaccess existe, outrepasser spip_meta
467
-		if (
468
-			(!isset($GLOBALS['meta']['creer_htpasswd']) or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
469
-			and !@file_exists($htaccess)
470
-		) {
471
-			spip_unlink($htpasswd);
472
-			spip_unlink($htpasswd . '-admin');
473
-
474
-			return;
475
-		}
476
-
477
-		# remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
478
-		# de devenir redacteur le cas echeant (auth http)... a nettoyer
479
-		// attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
480
-
481
-		$p1 = ''; // login:htpass pour tous
482
-		$p2 = ''; // login:htpass pour les admins
483
-		$s = sql_select(
484
-			'login, htpass, statut',
485
-			'spip_auteurs',
486
-			sql_in('statut', ['1comite', '0minirezo', 'nouveau'])
487
-		);
488
-		while ($t = sql_fetch($s)) {
489
-			if (strlen($t['login']) and strlen($t['htpass'])) {
490
-				$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
491
-				if ($t['statut'] == '0minirezo') {
492
-					$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
493
-				}
494
-			}
495
-		}
496
-		sql_free($s);
497
-		if ($p1) {
498
-			ecrire_fichier($htpasswd, $p1);
499
-			ecrire_fichier($htpasswd . '-admin', $p2);
500
-			spip_log("Ecriture de $htpasswd et $htpasswd-admin");
501
-		}
502
-	}
449
+    // ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
450
+    if (strlen($serveur)) {
451
+        return;
452
+    }
453
+    // si un login, pass ou statut a ete modifie
454
+    // regenerer les fichier htpass
455
+    if (
456
+        isset($champs['login'])
457
+        or isset($champs['pass'])
458
+        or isset($champs['statut'])
459
+        or (isset($options['all']) and $options['all'])
460
+    ) {
461
+        $htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
462
+        $htpasswd = _DIR_TMP . _AUTH_USER_FILE;
463
+
464
+        // Cette variable de configuration peut etre posee par un plugin
465
+        // par exemple acces_restreint ;
466
+        // si .htaccess existe, outrepasser spip_meta
467
+        if (
468
+            (!isset($GLOBALS['meta']['creer_htpasswd']) or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
469
+            and !@file_exists($htaccess)
470
+        ) {
471
+            spip_unlink($htpasswd);
472
+            spip_unlink($htpasswd . '-admin');
473
+
474
+            return;
475
+        }
476
+
477
+        # remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
478
+        # de devenir redacteur le cas echeant (auth http)... a nettoyer
479
+        // attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
480
+
481
+        $p1 = ''; // login:htpass pour tous
482
+        $p2 = ''; // login:htpass pour les admins
483
+        $s = sql_select(
484
+            'login, htpass, statut',
485
+            'spip_auteurs',
486
+            sql_in('statut', ['1comite', '0minirezo', 'nouveau'])
487
+        );
488
+        while ($t = sql_fetch($s)) {
489
+            if (strlen($t['login']) and strlen($t['htpass'])) {
490
+                $p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
491
+                if ($t['statut'] == '0minirezo') {
492
+                    $p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
493
+                }
494
+            }
495
+        }
496
+        sql_free($s);
497
+        if ($p1) {
498
+            ecrire_fichier($htpasswd, $p1);
499
+            ecrire_fichier($htpasswd . '-admin', $p2);
500
+            spip_log("Ecriture de $htpasswd et $htpasswd-admin");
501
+        }
502
+    }
503 503
 }
Please login to merge, or discard this patch.
Spacing   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -56,7 +56,7 @@  discard block
 block discarded – undo
56 56
 		$row = sql_fetsel(
57 57
 			'alea_actuel, alea_futur',
58 58
 			'spip_auteurs',
59
-			'login=' . sql_quote($login, $serveur, 'text'),
59
+			'login='.sql_quote($login, $serveur, 'text'),
60 60
 			'',
61 61
 			'',
62 62
 			'',
@@ -66,9 +66,9 @@  discard block
 block discarded – undo
66 66
 
67 67
 		if ($row) {
68 68
 			include_spip('auth/sha256.inc');
69
-			$shapass = spip_sha256($row['alea_actuel'] . $pass);
70
-			$shanext = spip_sha256($row['alea_futur'] . $pass);
71
-			$md5pass = md5($row['alea_actuel'] . $pass);
69
+			$shapass = spip_sha256($row['alea_actuel'].$pass);
70
+			$shanext = spip_sha256($row['alea_futur'].$pass);
71
+			$md5pass = md5($row['alea_actuel'].$pass);
72 72
 		}
73 73
 	}
74 74
 
@@ -80,11 +80,11 @@  discard block
 block discarded – undo
80 80
 	$row = sql_fetsel(
81 81
 		'*',
82 82
 		'spip_auteurs',
83
-		'login=' . sql_quote($login, $serveur, 'text') . ' AND pass=' . sql_quote(
83
+		'login='.sql_quote($login, $serveur, 'text').' AND pass='.sql_quote(
84 84
 			$shapass,
85 85
 			$serveur,
86 86
 			'text'
87
-		) . " AND statut<>'5poubelle'",
87
+		)." AND statut<>'5poubelle'",
88 88
 		'',
89 89
 		'',
90 90
 		'',
@@ -97,11 +97,11 @@  discard block
 block discarded – undo
97 97
 		$row = sql_fetsel(
98 98
 			'*',
99 99
 			'spip_auteurs',
100
-			'login=' . sql_quote($login, $serveur, 'text') . ' AND pass=' . sql_quote(
100
+			'login='.sql_quote($login, $serveur, 'text').' AND pass='.sql_quote(
101 101
 				$md5pass,
102 102
 				$serveur,
103 103
 				'text'
104
-			) . " AND statut<>'5poubelle'",
104
+			)." AND statut<>'5poubelle'",
105 105
 			'',
106 106
 			'',
107 107
 			'',
@@ -126,11 +126,11 @@  discard block
 block discarded – undo
126 126
 				'pass' => sql_quote($shanext, $serveur, 'text'),
127 127
 				'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
128 128
 			], 
129
-			'id_auteur=' . $row['id_auteur'] . ' AND pass IN (' . sql_quote(
129
+			'id_auteur='.$row['id_auteur'].' AND pass IN ('.sql_quote(
130 130
 				$shapass,
131 131
 				$serveur,
132 132
 				'text'
133
-			) . ', ' . sql_quote($md5pass, $serveur, 'text') . ')',
133
+			).', '.sql_quote($md5pass, $serveur, 'text').')',
134 134
 			[],
135 135
 			$serveur
136 136
 		);
@@ -169,16 +169,16 @@  discard block
 block discarded – undo
169 169
 
170 170
 	// javascript qui gere la securite du login en evitant de faire circuler le pass en clair
171 171
 	$flux['data'] .=
172
-		($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
173
-		. '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
172
+		($compat_md5 ? '<script type="text/javascript" src="'._DIR_JAVASCRIPT.'md5.js"></script>' : '')
173
+		. '<script type="text/javascript" src="'._DIR_JAVASCRIPT.'login-sha-min.js"></script>'
174 174
 		. '<script type="text/javascript">/*<![CDATA[*/'
175
-		. "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
176
-		. "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
177
-		. "'login':'" . $flux['args']['contexte']['var_login'] . "',"
178
-		. "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
175
+		. "var login_info={'alea_actuel':'".$flux['args']['contexte']['_alea_actuel']."',"
176
+		. "'alea_futur':'".$flux['args']['contexte']['_alea_futur']."',"
177
+		. "'login':'".$flux['args']['contexte']['var_login']."',"
178
+		. "'page_auteur': '".generer_url_public('informer_auteur')."',"
179 179
 		. "'informe_auteur_en_cours':false,"
180 180
 		. "'attente_informe':0,"
181
-		. "'compat_md5':" . ($compat_md5 ? 'true' : 'false') . '};'
181
+		. "'compat_md5':".($compat_md5 ? 'true' : 'false').'};'
182 182
 		. "jQuery(function(){
183 183
 	jQuery('#var_login').change(actualise_auteur);
184 184
 	jQuery('form#formulaire_login').submit(login_submit);
@@ -222,7 +222,7 @@  discard block
 block discarded – undo
222 222
 		} else {
223 223
 			$n = sql_countsel(
224 224
 				'spip_auteurs',
225
-				'login=' . sql_quote($new_login) . ' AND id_auteur!=' . intval($id_auteur) . " AND statut!='5poubelle'",
225
+				'login='.sql_quote($new_login).' AND id_auteur!='.intval($id_auteur)." AND statut!='5poubelle'",
226 226
 				'',
227 227
 				'',
228 228
 				$serveur
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
 	}
251 251
 	if (
252 252
 		!$id_auteur = intval($id_auteur)
253
-		or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
253
+		or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur='.intval($id_auteur), '', '', '', '', $serveur)
254 254
 	) {
255 255
 		return false;
256 256
 	}
@@ -265,7 +265,7 @@  discard block
 block discarded – undo
265 265
 		$anciens = sql_allfetsel(
266 266
 			'id_auteur',
267 267
 			'spip_auteurs',
268
-			'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'",
268
+			'login='.sql_quote($new_login, $serveur, 'text')." AND statut='5poubelle'",
269 269
 			'',
270 270
 			'',
271 271
 			'',
@@ -299,8 +299,8 @@  discard block
 block discarded – undo
299 299
 		$r = sql_getfetsel(
300 300
 			'login',
301 301
 			'spip_auteurs',
302
-			"statut<>'5poubelle'" .
303
-			' AND (length(pass)>0)' .
302
+			"statut<>'5poubelle'".
303
+			' AND (length(pass)>0)'.
304 304
 			" AND (login=$l)",
305 305
 			'',
306 306
 			'',
@@ -319,8 +319,8 @@  discard block
 block discarded – undo
319 319
 		return sql_getfetsel(
320 320
 			'login',
321 321
 			'spip_auteurs',
322
-			"statut<>'5poubelle'" .
323
-			' AND (length(pass)>0)' .
322
+			"statut<>'5poubelle'".
323
+			' AND (length(pass)>0)'.
324 324
 			" AND (login<>'' AND (nom=$l OR email=$l))",
325 325
 			'',
326 326
 			'',
@@ -411,7 +411,7 @@  discard block
 block discarded – undo
411 411
 
412 412
 	if (
413 413
 		!$id_auteur = intval($id_auteur)
414
-		or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
414
+		or !sql_fetsel('login', 'spip_auteurs', 'id_auteur='.intval($id_auteur), '', '', '', '', $serveur)
415 415
 	) {
416 416
 		return false;
417 417
 	}
@@ -422,7 +422,7 @@  discard block
 block discarded – undo
422 422
 	$htpass = generer_htpass($new_pass);
423 423
 	$alea_actuel = creer_uniqid();
424 424
 	$alea_futur = creer_uniqid();
425
-	$pass = spip_sha256($alea_actuel . $new_pass);
425
+	$pass = spip_sha256($alea_actuel.$new_pass);
426 426
 	$c['pass'] = $pass;
427 427
 	$c['htpass'] = $htpass;
428 428
 	$c['alea_actuel'] = $alea_actuel;
@@ -458,8 +458,8 @@  discard block
 block discarded – undo
458 458
 		or isset($champs['statut'])
459 459
 		or (isset($options['all']) and $options['all'])
460 460
 	) {
461
-		$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
462
-		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
461
+		$htaccess = _DIR_RESTREINT._ACCESS_FILE_NAME;
462
+		$htpasswd = _DIR_TMP._AUTH_USER_FILE;
463 463
 
464 464
 		// Cette variable de configuration peut etre posee par un plugin
465 465
 		// par exemple acces_restreint ;
@@ -469,7 +469,7 @@  discard block
 block discarded – undo
469 469
 			and !@file_exists($htaccess)
470 470
 		) {
471 471
 			spip_unlink($htpasswd);
472
-			spip_unlink($htpasswd . '-admin');
472
+			spip_unlink($htpasswd.'-admin');
473 473
 
474 474
 			return;
475 475
 		}
@@ -487,16 +487,16 @@  discard block
 block discarded – undo
487 487
 		);
488 488
 		while ($t = sql_fetch($s)) {
489 489
 			if (strlen($t['login']) and strlen($t['htpass'])) {
490
-				$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
490
+				$p1 .= $t['login'].':'.$t['htpass']."\n";
491 491
 				if ($t['statut'] == '0minirezo') {
492
-					$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
492
+					$p2 .= $t['login'].':'.$t['htpass']."\n";
493 493
 				}
494 494
 			}
495 495
 		}
496 496
 		sql_free($s);
497 497
 		if ($p1) {
498 498
 			ecrire_fichier($htpasswd, $p1);
499
-			ecrire_fichier($htpasswd . '-admin', $p2);
499
+			ecrire_fichier($htpasswd.'-admin', $p2);
500 500
 			spip_log("Ecriture de $htpasswd et $htpasswd-admin");
501 501
 		}
502 502
 	}
Please login to merge, or discard this patch.
ecrire/auth/ldap.php 1 patch
Indentation   +176 added lines, -176 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 // Authentifie via LDAP et retourne la ligne SQL decrivant l'utilisateur si ok
@@ -25,12 +25,12 @@  discard block
 block discarded – undo
25 25
 // Attributs LDAP correspondants a ceux de SPIP, notamment pour le login
26 26
 // ne pas ecraser une definition perso dans mes_options
27 27
 if (!isset($GLOBALS['ldap_attributes']) or !is_array($GLOBALS['ldap_attributes'])) {
28
-	$GLOBALS['ldap_attributes'] = [
29
-		'login' => ['sAMAccountName', 'uid', 'login', 'userid', 'cn', 'sn'],
30
-		'nom' => 'cn',
31
-		'email' => 'mail',
32
-		'bio' => 'description'
33
-	];
28
+    $GLOBALS['ldap_attributes'] = [
29
+        'login' => ['sAMAccountName', 'uid', 'login', 'userid', 'cn', 'sn'],
30
+        'nom' => 'cn',
31
+        'email' => 'mail',
32
+        'bio' => 'description'
33
+    ];
34 34
 }
35 35
 
36 36
 /**
@@ -56,50 +56,50 @@  discard block
 block discarded – undo
56 56
  */
57 57
 function auth_ldap_dist($login, $pass, $serveur = '', $phpauth = false) {
58 58
 
59
-	#spip_log("ldap $login " . ($pass ? "mdp fourni" : "mdp absent"));
60
-
61
-	// Utilisateur connu ?
62
-	// si http auth, inutile de reauthentifier: cela
63
-	// ne marchera pas avec auth http autre que basic.
64
-	$checkpass = isset($_SERVER['REMOTE_USER']) ? false : true;
65
-	if (!($dn = auth_ldap_search($login, $pass, $checkpass, $serveur))) {
66
-		return [];
67
-	}
68
-	$credentials_ldap = ['ldap_dn' => $dn, 'ldap_password' => $pass];
69
-
70
-	// Si l'utilisateur figure deja dans la base, y recuperer les infos
71
-	$r = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login) . " AND source='ldap'", '', '', '', '', $serveur);
72
-
73
-	if ($r) {
74
-		return array_merge($r, $credentials_ldap);
75
-	}
76
-
77
-	// sinon importer les infos depuis LDAP,
78
-
79
-	if (
80
-		$GLOBALS['meta']['ldap_statut_import']
81
-		and $desc = auth_ldap_retrouver($dn, [], $serveur)
82
-	) {
83
-		// rajouter le statut indique  a l'install
84
-		$desc['statut'] = $GLOBALS['meta']['ldap_statut_import'];
85
-		$desc['login'] = $login;
86
-		$desc['source'] = 'ldap';
87
-		$desc['pass'] = '';
88
-
89
-		$r = sql_insertq('spip_auteurs', $desc, [], $serveur);
90
-	}
91
-
92
-	if ($r) {
93
-		return array_merge(
94
-			$credentials_ldap,
95
-			sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($r), '', '', '', '', $serveur)
96
-		);
97
-	}
98
-
99
-	// sinon echec
100
-	spip_log("Creation de l'auteur '$login' impossible");
101
-
102
-	return [];
59
+    #spip_log("ldap $login " . ($pass ? "mdp fourni" : "mdp absent"));
60
+
61
+    // Utilisateur connu ?
62
+    // si http auth, inutile de reauthentifier: cela
63
+    // ne marchera pas avec auth http autre que basic.
64
+    $checkpass = isset($_SERVER['REMOTE_USER']) ? false : true;
65
+    if (!($dn = auth_ldap_search($login, $pass, $checkpass, $serveur))) {
66
+        return [];
67
+    }
68
+    $credentials_ldap = ['ldap_dn' => $dn, 'ldap_password' => $pass];
69
+
70
+    // Si l'utilisateur figure deja dans la base, y recuperer les infos
71
+    $r = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login) . " AND source='ldap'", '', '', '', '', $serveur);
72
+
73
+    if ($r) {
74
+        return array_merge($r, $credentials_ldap);
75
+    }
76
+
77
+    // sinon importer les infos depuis LDAP,
78
+
79
+    if (
80
+        $GLOBALS['meta']['ldap_statut_import']
81
+        and $desc = auth_ldap_retrouver($dn, [], $serveur)
82
+    ) {
83
+        // rajouter le statut indique  a l'install
84
+        $desc['statut'] = $GLOBALS['meta']['ldap_statut_import'];
85
+        $desc['login'] = $login;
86
+        $desc['source'] = 'ldap';
87
+        $desc['pass'] = '';
88
+
89
+        $r = sql_insertq('spip_auteurs', $desc, [], $serveur);
90
+    }
91
+
92
+    if ($r) {
93
+        return array_merge(
94
+            $credentials_ldap,
95
+            sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($r), '', '', '', '', $serveur)
96
+        );
97
+    }
98
+
99
+    // sinon echec
100
+    spip_log("Creation de l'auteur '$login' impossible");
101
+
102
+    return [];
103 103
 }
104 104
 
105 105
 /**
@@ -113,36 +113,36 @@  discard block
 block discarded – undo
113 113
  * @return array
114 114
  */
115 115
 function auth_ldap_connect($serveur = '') {
116
-	include_spip('base/connect_sql');
117
-	static $connexions_ldap = [];
118
-	if (isset($connexions_ldap[$serveur])) {
119
-		return $connexions_ldap[$serveur];
120
-	}
121
-	$connexion = spip_connect($serveur);
122
-	if (!is_array($connexion['ldap'])) {
123
-		if ($connexion['authentification']['ldap']) {
124
-			$f = _DIR_CONNECT . $connexion['authentification']['ldap'];
125
-			unset($GLOBALS['ldap_link']);
126
-			if (is_readable($f)) {
127
-				include_once($f);
128
-			};
129
-			if (isset($GLOBALS['ldap_link'])) {
130
-				$connexion['ldap'] = [
131
-					'link' => $GLOBALS['ldap_link'],
132
-					'base' => $GLOBALS['ldap_base']
133
-				];
134
-			} else {
135
-				spip_log("connection LDAP $serveur mal definie dans $f");
136
-			}
137
-			if (isset($GLOBALS['ldap_champs'])) {
138
-				$connexion['ldap']['attributes'] = $GLOBALS['ldap_champs'];
139
-			}
140
-		} else {
141
-			spip_log("connection LDAP $serveur inconnue");
142
-		}
143
-	}
144
-
145
-	return $connexions_ldap[$serveur] = $connexion['ldap'];
116
+    include_spip('base/connect_sql');
117
+    static $connexions_ldap = [];
118
+    if (isset($connexions_ldap[$serveur])) {
119
+        return $connexions_ldap[$serveur];
120
+    }
121
+    $connexion = spip_connect($serveur);
122
+    if (!is_array($connexion['ldap'])) {
123
+        if ($connexion['authentification']['ldap']) {
124
+            $f = _DIR_CONNECT . $connexion['authentification']['ldap'];
125
+            unset($GLOBALS['ldap_link']);
126
+            if (is_readable($f)) {
127
+                include_once($f);
128
+            };
129
+            if (isset($GLOBALS['ldap_link'])) {
130
+                $connexion['ldap'] = [
131
+                    'link' => $GLOBALS['ldap_link'],
132
+                    'base' => $GLOBALS['ldap_base']
133
+                ];
134
+            } else {
135
+                spip_log("connection LDAP $serveur mal definie dans $f");
136
+            }
137
+            if (isset($GLOBALS['ldap_champs'])) {
138
+                $connexion['ldap']['attributes'] = $GLOBALS['ldap_champs'];
139
+            }
140
+        } else {
141
+            spip_log("connection LDAP $serveur inconnue");
142
+        }
143
+    }
144
+
145
+    return $connexions_ldap[$serveur] = $connexion['ldap'];
146 146
 }
147 147
 
148 148
 /**
@@ -156,52 +156,52 @@  discard block
 block discarded – undo
156 156
  *    Le login trouvé ou chaine vide si non trouvé
157 157
  */
158 158
 function auth_ldap_search($login, $pass, $checkpass = true, $serveur = '') {
159
-	// Securite anti-injection et contre un serveur LDAP laxiste
160
-	$login_search = preg_replace('/[^-@._\s\d\w]/', '', $login);
161
-	if (!strlen($login_search) or ($checkpass and !strlen($pass))) {
162
-		return '';
163
-	}
164
-
165
-	// verifier la connexion
166
-	if (!$ldap = auth_ldap_connect($serveur)) {
167
-		return '';
168
-	}
169
-
170
-	$ldap_link = $ldap['link'] ?? null;
171
-	$ldap_base = $ldap['base'] ?? null;
172
-	$desc = !empty($ldap['attributes']) ? $ldap['attributes'] : $GLOBALS['ldap_attributes'];
173
-
174
-	$logins = is_array($desc['login']) ? $desc['login'] : [$desc['login']];
175
-
176
-	// Tenter une recherche pour essayer de retrouver le DN
177
-	foreach ($logins as $att) {
178
-		$result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", ['dn']);
179
-		$info = @ldap_get_entries($ldap_link, $result);
180
-		// Ne pas accepter les resultats si plus d'une entree
181
-		// (on veut un attribut unique)
182
-
183
-		if (is_array($info) and $info['count'] == 1) {
184
-			$dn = $info[0]['dn'];
185
-			if (!$checkpass) {
186
-				return $dn;
187
-			}
188
-			if (@ldap_bind($ldap_link, $dn, $pass)) {
189
-				return $dn;
190
-			}
191
-		}
192
-	}
193
-
194
-	if ($checkpass and !isset($dn)) {
195
-		// Si echec, essayer de deviner le DN
196
-		foreach ($logins as $att) {
197
-			$dn = "$att=$login_search, $ldap_base";
198
-			if (@ldap_bind($ldap_link, $dn, $pass)) {
199
-				return "$att=$login_search, $ldap_base";
200
-			}
201
-		}
202
-	}
203
-
204
-	return '';
159
+    // Securite anti-injection et contre un serveur LDAP laxiste
160
+    $login_search = preg_replace('/[^-@._\s\d\w]/', '', $login);
161
+    if (!strlen($login_search) or ($checkpass and !strlen($pass))) {
162
+        return '';
163
+    }
164
+
165
+    // verifier la connexion
166
+    if (!$ldap = auth_ldap_connect($serveur)) {
167
+        return '';
168
+    }
169
+
170
+    $ldap_link = $ldap['link'] ?? null;
171
+    $ldap_base = $ldap['base'] ?? null;
172
+    $desc = !empty($ldap['attributes']) ? $ldap['attributes'] : $GLOBALS['ldap_attributes'];
173
+
174
+    $logins = is_array($desc['login']) ? $desc['login'] : [$desc['login']];
175
+
176
+    // Tenter une recherche pour essayer de retrouver le DN
177
+    foreach ($logins as $att) {
178
+        $result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", ['dn']);
179
+        $info = @ldap_get_entries($ldap_link, $result);
180
+        // Ne pas accepter les resultats si plus d'une entree
181
+        // (on veut un attribut unique)
182
+
183
+        if (is_array($info) and $info['count'] == 1) {
184
+            $dn = $info[0]['dn'];
185
+            if (!$checkpass) {
186
+                return $dn;
187
+            }
188
+            if (@ldap_bind($ldap_link, $dn, $pass)) {
189
+                return $dn;
190
+            }
191
+        }
192
+    }
193
+
194
+    if ($checkpass and !isset($dn)) {
195
+        // Si echec, essayer de deviner le DN
196
+        foreach ($logins as $att) {
197
+            $dn = "$att=$login_search, $ldap_base";
198
+            if (@ldap_bind($ldap_link, $dn, $pass)) {
199
+                return "$att=$login_search, $ldap_base";
200
+            }
201
+        }
202
+    }
203
+
204
+    return '';
205 205
 }
206 206
 
207 207
 /**
@@ -213,40 +213,40 @@  discard block
 block discarded – undo
213 213
  * @return array
214 214
  */
215 215
 function auth_ldap_retrouver($dn, $desc = [], $serveur = '') {
216
-	// Lire les infos sur l'utilisateur a partir de son DN depuis LDAP
216
+    // Lire les infos sur l'utilisateur a partir de son DN depuis LDAP
217 217
 
218
-	if (!$ldap = spip_connect_ldap($serveur)) {
219
-		spip_log("ldap $serveur injoignable");
218
+    if (!$ldap = spip_connect_ldap($serveur)) {
219
+        spip_log("ldap $serveur injoignable");
220 220
 
221
-		return [];
222
-	}
221
+        return [];
222
+    }
223 223
 
224
-	$ldap_link = $ldap['link'];
225
-	if (!$desc) {
226
-		$desc = $ldap['attributes'] ?: $GLOBALS['ldap_attributes'];
227
-		unset($desc['login']);
228
-	}
229
-	$result = @ldap_read($ldap_link, $dn, 'objectClass=*', array_values($desc));
224
+    $ldap_link = $ldap['link'];
225
+    if (!$desc) {
226
+        $desc = $ldap['attributes'] ?: $GLOBALS['ldap_attributes'];
227
+        unset($desc['login']);
228
+    }
229
+    $result = @ldap_read($ldap_link, $dn, 'objectClass=*', array_values($desc));
230 230
 
231
-	if (!$result) {
232
-		return [];
233
-	}
231
+    if (!$result) {
232
+        return [];
233
+    }
234 234
 
235
-	// Recuperer les donnees du premier (unique?) compte de l'auteur
236
-	$val = @ldap_get_entries($ldap_link, $result);
237
-	if (!is_array($val) or !is_array($val[0])) {
238
-		return [];
239
-	}
240
-	$val = $val[0];
235
+    // Recuperer les donnees du premier (unique?) compte de l'auteur
236
+    $val = @ldap_get_entries($ldap_link, $result);
237
+    if (!is_array($val) or !is_array($val[0])) {
238
+        return [];
239
+    }
240
+    $val = $val[0];
241 241
 
242
-	// Convertir depuis UTF-8 (jeu de caracteres par defaut)
243
-	include_spip('inc/charsets');
242
+    // Convertir depuis UTF-8 (jeu de caracteres par defaut)
243
+    include_spip('inc/charsets');
244 244
 
245
-	foreach ($desc as $k => $v) {
246
-		$desc[$k] = importer_charset($val[strtolower($v)][0], 'utf-8');
247
-	}
245
+    foreach ($desc as $k => $v) {
246
+        $desc[$k] = importer_charset($val[strtolower($v)][0], 'utf-8');
247
+    }
248 248
 
249
-	return $desc;
249
+    return $desc;
250 250
 }
251 251
 
252 252
 
@@ -258,7 +258,7 @@  discard block
 block discarded – undo
258 258
  * @return string
259 259
  */
260 260
 function auth_ldap_retrouver_login($login, $serveur = '') {
261
-	return auth_ldap_search($login, '', false, $serveur) ? $login : '';
261
+    return auth_ldap_search($login, '', false, $serveur) ? $login : '';
262 262
 }
263 263
 
264 264
 /**
@@ -278,9 +278,9 @@  discard block
 block discarded – undo
278 278
  *   Message d'erreur si login non valide, chaîne vide sinon
279 279
  */
280 280
 function auth_ldap_verifier_pass($login, $new_pass, $id_auteur = 0, $serveur = '') {
281
-	include_spip('auth/spip');
281
+    include_spip('auth/spip');
282 282
 
283
-	return auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur);
283
+    return auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur);
284 284
 }
285 285
 
286 286
 /**
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
  *   ```
302 302
  */
303 303
 function auth_ldap_autoriser_modifier_pass($serveur = '') {
304
-	return true;
304
+    return true;
305 305
 }
306 306
 
307 307
 /**
@@ -319,23 +319,23 @@  discard block
 block discarded – undo
319 319
  *    Informe du succès ou de l'echec du changement du mot de passe
320 320
  */
321 321
 function auth_ldap_modifier_pass($login, $new_pass, $id_auteur, $serveur = '') {
322
-	if (is_null($new_pass) or auth_ldap_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
323
-		return false;
324
-	}
325
-	if (!$ldap = auth_ldap_connect($serveur)) {
326
-		return '';
327
-	}
328
-	$link = $ldap['link'];
329
-	include_spip('inc/session');
330
-	$dn = session_get('ldap_dn');
331
-	if ('' == $dn) {
332
-		return false;
333
-	}
334
-	if (!ldap_bind($link, $dn, session_get('ldap_password'))) {
335
-		return false;
336
-	}
337
-	$encoded_pass = '{MD5}' . base64_encode(pack('H*', md5($new_pass)));
338
-	$success = ldap_mod_replace($link, $dn, ['userPassword' => $encoded_pass]);
339
-
340
-	return $success;
322
+    if (is_null($new_pass) or auth_ldap_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
323
+        return false;
324
+    }
325
+    if (!$ldap = auth_ldap_connect($serveur)) {
326
+        return '';
327
+    }
328
+    $link = $ldap['link'];
329
+    include_spip('inc/session');
330
+    $dn = session_get('ldap_dn');
331
+    if ('' == $dn) {
332
+        return false;
333
+    }
334
+    if (!ldap_bind($link, $dn, session_get('ldap_password'))) {
335
+        return false;
336
+    }
337
+    $encoded_pass = '{MD5}' . base64_encode(pack('H*', md5($new_pass)));
338
+    $success = ldap_mod_replace($link, $dn, ['userPassword' => $encoded_pass]);
339
+
340
+    return $success;
341 341
 }
Please login to merge, or discard this patch.
ecrire/base/abstract_sql.php 1 patch
Indentation   +693 added lines, -693 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@  discard block
 block discarded – undo
25 25
  */
26 26
 
27 27
 if (!defined('_ECRIRE_INC_VERSION')) {
28
-	return;
28
+    return;
29 29
 }
30 30
 
31 31
 /** Version de l'API SQL */
@@ -45,39 +45,39 @@  discard block
 block discarded – undo
45 45
  *     contexte de l'erreur
46 46
  **/
47 47
 function sql_error_backtrace($compil_info = false) {
48
-	$trace = debug_backtrace();
49
-	$caller = array_shift($trace);
50
-	while (count($trace) and (empty($trace[0]['file']) or $trace[0]['file'] === $caller['file'] or $trace[0]['file'] === __FILE__)) {
51
-		array_shift($trace);
52
-	}
53
-
54
-	if ($compil_info) {
55
-		$contexte_compil = [
56
-			$trace[0]['file'],// sourcefile
57
-			'', //nom
58
-			(isset($trace[1]) ? $trace[1]['function'] . "(){\n" : '')
59
-			. $trace[0]['function'] . '();'
60
-			. (isset($trace[1]) ? "\n}" : ''), //id_boucle
61
-			$trace[0]['line'], // ligne
62
-			$GLOBALS['spip_lang'], // lang
63
-		];
64
-
65
-		return $contexte_compil;
66
-	}
67
-
68
-	$message = count($trace) ? $trace[0]['file'] . ' L' . $trace[0]['line'] : '';
69
-	$f = [];
70
-	while (count($trace) and $t = array_shift($trace)) {
71
-		if (in_array($t['function'], ['include_once', 'include_spip', 'find_in_path'])) {
72
-			break;
73
-		}
74
-		$f[] = $t['function'];
75
-	}
76
-	if (count($f)) {
77
-		$message .= ' [' . implode('(),', $f) . '()]';
78
-	}
79
-
80
-	return $message;
48
+    $trace = debug_backtrace();
49
+    $caller = array_shift($trace);
50
+    while (count($trace) and (empty($trace[0]['file']) or $trace[0]['file'] === $caller['file'] or $trace[0]['file'] === __FILE__)) {
51
+        array_shift($trace);
52
+    }
53
+
54
+    if ($compil_info) {
55
+        $contexte_compil = [
56
+            $trace[0]['file'],// sourcefile
57
+            '', //nom
58
+            (isset($trace[1]) ? $trace[1]['function'] . "(){\n" : '')
59
+            . $trace[0]['function'] . '();'
60
+            . (isset($trace[1]) ? "\n}" : ''), //id_boucle
61
+            $trace[0]['line'], // ligne
62
+            $GLOBALS['spip_lang'], // lang
63
+        ];
64
+
65
+        return $contexte_compil;
66
+    }
67
+
68
+    $message = count($trace) ? $trace[0]['file'] . ' L' . $trace[0]['line'] : '';
69
+    $f = [];
70
+    while (count($trace) and $t = array_shift($trace)) {
71
+        if (in_array($t['function'], ['include_once', 'include_spip', 'find_in_path'])) {
72
+            break;
73
+        }
74
+        $f[] = $t['function'];
75
+    }
76
+    if (count($f)) {
77
+        $message .= ' [' . implode('(),', $f) . '()]';
78
+    }
79
+
80
+    return $message;
81 81
 }
82 82
 
83 83
 
@@ -102,16 +102,16 @@  discard block
 block discarded – undo
102 102
  *
103 103
  **/
104 104
 function sql_serveur($ins_sql = '', $serveur = '', $continue = false) {
105
-	static $sql_serveur = [];
106
-	if (!isset($sql_serveur[$serveur][$ins_sql])) {
107
-		$f = spip_connect_sql(\SQL_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
108
-		if (!is_string($f) or !$f) {
109
-			return $f;
110
-		}
111
-		$sql_serveur[$serveur][$ins_sql] = $f;
112
-	}
113
-
114
-	return $sql_serveur[$serveur][$ins_sql];
105
+    static $sql_serveur = [];
106
+    if (!isset($sql_serveur[$serveur][$ins_sql])) {
107
+        $f = spip_connect_sql(\SQL_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
108
+        if (!is_string($f) or !$f) {
109
+            return $f;
110
+        }
111
+        $sql_serveur[$serveur][$ins_sql] = $f;
112
+    }
113
+
114
+    return $sql_serveur[$serveur][$ins_sql];
115 115
 }
116 116
 
117 117
 /**
@@ -133,23 +133,23 @@  discard block
 block discarded – undo
133 133
  *     Retourne le nom du charset si effectivement trouvé, sinon false.
134 134
  **/
135 135
 function sql_get_charset($charset, $serveur = '', $option = true) {
136
-	// le nom http du charset differe parfois du nom SQL utf-8 ==> utf8 etc.
137
-	$desc = sql_serveur('', $serveur, true);
138
-	$desc = $desc[\SQL_ABSTRACT_VERSION];
139
-	$c = $desc['charsets'][$charset];
140
-	if ($c) {
141
-		if (function_exists($f = @$desc['get_charset'])) {
142
-			if ($f($c, $serveur, $option !== false)) {
143
-				return $c;
144
-			}
145
-		}
146
-	}
147
-	spip_log(
148
-		"SPIP ne connait pas les Charsets disponibles sur le serveur $serveur. Le serveur choisira seul.",
149
-		_LOG_AVERTISSEMENT
150
-	);
151
-
152
-	return false;
136
+    // le nom http du charset differe parfois du nom SQL utf-8 ==> utf8 etc.
137
+    $desc = sql_serveur('', $serveur, true);
138
+    $desc = $desc[\SQL_ABSTRACT_VERSION];
139
+    $c = $desc['charsets'][$charset];
140
+    if ($c) {
141
+        if (function_exists($f = @$desc['get_charset'])) {
142
+            if ($f($c, $serveur, $option !== false)) {
143
+                return $c;
144
+            }
145
+        }
146
+    }
147
+    spip_log(
148
+        "SPIP ne connait pas les Charsets disponibles sur le serveur $serveur. Le serveur choisira seul.",
149
+        _LOG_AVERTISSEMENT
150
+    );
151
+
152
+    return false;
153 153
 }
154 154
 
155 155
 
@@ -175,12 +175,12 @@  discard block
 block discarded – undo
175 175
  *    Retourne true si elle reussie.
176 176
  **/
177 177
 function sql_set_charset($charset, $serveur = '', $option = true) {
178
-	$f = sql_serveur('set_charset', $serveur, $option === 'continue' or $option === false);
179
-	if (!is_string($f) or !$f) {
180
-		return false;
181
-	}
178
+    $f = sql_serveur('set_charset', $serveur, $option === 'continue' or $option === false);
179
+    if (!is_string($f) or !$f) {
180
+        return false;
181
+    }
182 182
 
183
-	return $f($charset, $serveur, $option !== false);
183
+    return $f($charset, $serveur, $option !== false);
184 184
 }
185 185
 
186 186
 
@@ -231,59 +231,59 @@  discard block
 block discarded – undo
231 231
  *
232 232
  **/
233 233
 function sql_select(
234
-	$select = [],
235
-	$from = [],
236
-	$where = [],
237
-	$groupby = [],
238
-	$orderby = [],
239
-	$limit = '',
240
-	$having = [],
241
-	$serveur = '',
242
-	$option = true
234
+    $select = [],
235
+    $from = [],
236
+    $where = [],
237
+    $groupby = [],
238
+    $orderby = [],
239
+    $limit = '',
240
+    $having = [],
241
+    $serveur = '',
242
+    $option = true
243 243
 ) {
244
-	$f = sql_serveur('select', $serveur, $option === 'continue' or $option === false);
245
-	if (!is_string($f) or !$f) {
246
-		return false;
247
-	}
248
-
249
-	$debug = (defined('_VAR_MODE') and _VAR_MODE == 'debug');
250
-	if (($option !== false) and !$debug) {
251
-		$res = $f(
252
-			$select,
253
-			$from,
254
-			$where,
255
-			$groupby,
256
-			$orderby,
257
-			$limit,
258
-			$having,
259
-			$serveur,
260
-			is_array($option) ? true : $option
261
-		);
262
-	} else {
263
-		$query = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
264
-		if (!$option) {
265
-			return $query;
266
-		}
267
-		// le debug, c'est pour ce qui a ete produit par le compilateur
268
-		if (isset($GLOBALS['debug']['aucasou'])) {
269
-			[$table, $id, ] = $GLOBALS['debug']['aucasou'];
270
-			$nom = $GLOBALS['debug_objets']['courant'] . $id;
271
-			$GLOBALS['debug_objets']['requete'][$nom] = $query;
272
-		}
273
-		$res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
274
-	}
275
-
276
-	// en cas d'erreur
277
-	if (!is_string($res)) {
278
-		return $res;
279
-	}
280
-	// denoncer l'erreur SQL dans sa version brute
281
-	spip_sql_erreur($serveur);
282
-	// idem dans sa version squelette (prefixe des tables non substitue)
283
-	$contexte_compil = sql_error_backtrace(true);
284
-	erreur_squelette([sql_errno($serveur), sql_error($serveur), $res], $contexte_compil);
285
-
286
-	return false;
244
+    $f = sql_serveur('select', $serveur, $option === 'continue' or $option === false);
245
+    if (!is_string($f) or !$f) {
246
+        return false;
247
+    }
248
+
249
+    $debug = (defined('_VAR_MODE') and _VAR_MODE == 'debug');
250
+    if (($option !== false) and !$debug) {
251
+        $res = $f(
252
+            $select,
253
+            $from,
254
+            $where,
255
+            $groupby,
256
+            $orderby,
257
+            $limit,
258
+            $having,
259
+            $serveur,
260
+            is_array($option) ? true : $option
261
+        );
262
+    } else {
263
+        $query = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
264
+        if (!$option) {
265
+            return $query;
266
+        }
267
+        // le debug, c'est pour ce qui a ete produit par le compilateur
268
+        if (isset($GLOBALS['debug']['aucasou'])) {
269
+            [$table, $id, ] = $GLOBALS['debug']['aucasou'];
270
+            $nom = $GLOBALS['debug_objets']['courant'] . $id;
271
+            $GLOBALS['debug_objets']['requete'][$nom] = $query;
272
+        }
273
+        $res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
274
+    }
275
+
276
+    // en cas d'erreur
277
+    if (!is_string($res)) {
278
+        return $res;
279
+    }
280
+    // denoncer l'erreur SQL dans sa version brute
281
+    spip_sql_erreur($serveur);
282
+    // idem dans sa version squelette (prefixe des tables non substitue)
283
+    $contexte_compil = sql_error_backtrace(true);
284
+    erreur_squelette([sql_errno($serveur), sql_error($serveur), $res], $contexte_compil);
285
+
286
+    return false;
287 287
 }
288 288
 
289 289
 
@@ -320,16 +320,16 @@  discard block
 block discarded – undo
320 320
  *
321 321
  **/
322 322
 function sql_get_select(
323
-	$select = [],
324
-	$from = [],
325
-	$where = [],
326
-	$groupby = [],
327
-	$orderby = [],
328
-	$limit = '',
329
-	$having = [],
330
-	$serveur = ''
323
+    $select = [],
324
+    $from = [],
325
+    $where = [],
326
+    $groupby = [],
327
+    $orderby = [],
328
+    $limit = '',
329
+    $having = [],
330
+    $serveur = ''
331 331
 ) {
332
-	return sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
332
+    return sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
333 333
 }
334 334
 
335 335
 
@@ -373,23 +373,23 @@  discard block
 block discarded – undo
373 373
  *
374 374
  **/
375 375
 function sql_countsel(
376
-	$from = [],
377
-	$where = [],
378
-	$groupby = [],
379
-	$having = [],
380
-	$serveur = '',
381
-	$option = true
376
+    $from = [],
377
+    $where = [],
378
+    $groupby = [],
379
+    $having = [],
380
+    $serveur = '',
381
+    $option = true
382 382
 ) {
383
-	$f = sql_serveur('countsel', $serveur, $option === 'continue' or $option === false);
384
-	if (!is_string($f) or !$f) {
385
-		return false;
386
-	}
387
-	$r = $f($from, $where, $groupby, $having, $serveur, $option !== false);
388
-	if ($r === false) {
389
-		spip_sql_erreur($serveur);
390
-	}
391
-
392
-	return $r;
383
+    $f = sql_serveur('countsel', $serveur, $option === 'continue' or $option === false);
384
+    if (!is_string($f) or !$f) {
385
+        return false;
386
+    }
387
+    $r = $f($from, $where, $groupby, $having, $serveur, $option !== false);
388
+    if ($r === false) {
389
+        spip_sql_erreur($serveur);
390
+    }
391
+
392
+    return $r;
393 393
 }
394 394
 
395 395
 /**
@@ -421,16 +421,16 @@  discard block
 block discarded – undo
421 421
  *     Ce retour n'est pas pertinent pour savoir si l'opération est correctement réalisée.
422 422
  **/
423 423
 function sql_alter($q, $serveur = '', $option = true) {
424
-	$f = sql_serveur('alter', $serveur, $option === 'continue' or $option === false);
425
-	if (!is_string($f) or !$f) {
426
-		return false;
427
-	}
428
-	$r = $f($q, $serveur, $option !== false);
429
-	if ($r === false) {
430
-		spip_sql_erreur($serveur);
431
-	}
432
-
433
-	return $r;
424
+    $f = sql_serveur('alter', $serveur, $option === 'continue' or $option === false);
425
+    if (!is_string($f) or !$f) {
426
+        return false;
427
+    }
428
+    $r = $f($q, $serveur, $option !== false);
429
+    if ($r === false) {
430
+        spip_sql_erreur($serveur);
431
+    }
432
+
433
+    return $r;
434 434
 }
435 435
 
436 436
 /**
@@ -453,12 +453,12 @@  discard block
 block discarded – undo
453 453
  *    presentant une ligne de resultat d'une selection
454 454
  */
455 455
 function sql_fetch($res, $serveur = '', $option = true) {
456
-	$f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
457
-	if (!is_string($f) or !$f) {
458
-		return false;
459
-	}
456
+    $f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
457
+    if (!is_string($f) or !$f) {
458
+        return false;
459
+    }
460 460
 
461
-	return $f($res, null, $serveur, $option !== false);
461
+    return $f($res, null, $serveur, $option !== false);
462 462
 }
463 463
 
464 464
 
@@ -485,20 +485,20 @@  discard block
 block discarded – undo
485 485
  *    presentant une ligne de resultat d'une selection
486 486
  */
487 487
 function sql_fetch_all($res, $serveur = '', $option = true) {
488
-	$rows = [];
489
-	if (!$res) {
490
-		return $rows;
491
-	}
492
-	$f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
493
-	if (!is_string($f) or !$f) {
494
-		return [];
495
-	}
496
-	while ($r = $f($res, null, $serveur, $option !== false)) {
497
-		$rows[] = $r;
498
-	}
499
-	sql_free($res, $serveur);
500
-
501
-	return $rows;
488
+    $rows = [];
489
+    if (!$res) {
490
+        return $rows;
491
+    }
492
+    $f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
493
+    if (!is_string($f) or !$f) {
494
+        return [];
495
+    }
496
+    while ($r = $f($res, null, $serveur, $option !== false)) {
497
+        $rows[] = $r;
498
+    }
499
+    sql_free($res, $serveur);
500
+
501
+    return $rows;
502 502
 }
503 503
 
504 504
 /**
@@ -526,16 +526,16 @@  discard block
 block discarded – undo
526 526
  *    Operation effectuée (true), sinon false.
527 527
  **/
528 528
 function sql_seek($res, $row_number, $serveur = '', $option = true) {
529
-	$f = sql_serveur('seek', $serveur, $option === 'continue' or $option === false);
530
-	if (!is_string($f) or !$f) {
531
-		return false;
532
-	}
533
-	$r = $f($res, $row_number, $serveur, $option !== false);
534
-	if ($r === false) {
535
-		spip_sql_erreur($serveur);
536
-	}
537
-
538
-	return $r;
529
+    $f = sql_serveur('seek', $serveur, $option === 'continue' or $option === false);
530
+    if (!is_string($f) or !$f) {
531
+        return false;
532
+    }
533
+    $r = $f($res, $row_number, $serveur, $option !== false);
534
+    if ($r === false) {
535
+        spip_sql_erreur($serveur);
536
+    }
537
+
538
+    return $r;
539 539
 }
540 540
 
541 541
 
@@ -560,16 +560,16 @@  discard block
 block discarded – undo
560 560
  *    False en cas d'erreur.
561 561
  **/
562 562
 function sql_listdbs($serveur = '', $option = true) {
563
-	$f = sql_serveur('listdbs', $serveur, $option === 'continue' or $option === false);
564
-	if (!is_string($f) or !$f) {
565
-		return false;
566
-	}
567
-	$r = $f($serveur);
568
-	if ($r === false) {
569
-		spip_sql_erreur($serveur);
570
-	}
571
-
572
-	return $r;
563
+    $f = sql_serveur('listdbs', $serveur, $option === 'continue' or $option === false);
564
+    if (!is_string($f) or !$f) {
565
+        return false;
566
+    }
567
+    $r = $f($serveur);
568
+    if ($r === false) {
569
+        spip_sql_erreur($serveur);
570
+    }
571
+
572
+    return $r;
573 573
 }
574 574
 
575 575
 
@@ -592,16 +592,16 @@  discard block
 block discarded – undo
592 592
  *     - False en cas d'erreur.
593 593
  **/
594 594
 function sql_selectdb($nom, $serveur = '', $option = true) {
595
-	$f = sql_serveur('selectdb', $serveur, $option === 'continue' or $option === false);
596
-	if (!is_string($f) or !$f) {
597
-		return false;
598
-	}
599
-	$r = $f($nom, $serveur, $option !== false);
600
-	if ($r === false) {
601
-		spip_sql_erreur($serveur);
602
-	}
603
-
604
-	return $r;
595
+    $f = sql_serveur('selectdb', $serveur, $option === 'continue' or $option === false);
596
+    if (!is_string($f) or !$f) {
597
+        return false;
598
+    }
599
+    $r = $f($nom, $serveur, $option !== false);
600
+    if ($r === false) {
601
+        spip_sql_erreur($serveur);
602
+    }
603
+
604
+    return $r;
605 605
 }
606 606
 
607 607
 /**
@@ -626,16 +626,16 @@  discard block
 block discarded – undo
626 626
  *     - false en cas d'erreur.
627 627
  **/
628 628
 function sql_count($res, $serveur = '', $option = true) {
629
-	$f = sql_serveur('count', $serveur, $option === 'continue' or $option === false);
630
-	if (!is_string($f) or !$f) {
631
-		return false;
632
-	}
633
-	$r = $f($res, $serveur, $option !== false);
634
-	if ($r === false) {
635
-		spip_sql_erreur($serveur);
636
-	}
637
-
638
-	return $r;
629
+    $f = sql_serveur('count', $serveur, $option === 'continue' or $option === false);
630
+    if (!is_string($f) or !$f) {
631
+        return false;
632
+    }
633
+    $r = $f($res, $serveur, $option !== false);
634
+    if ($r === false) {
635
+        spip_sql_erreur($serveur);
636
+    }
637
+
638
+    return $r;
639 639
 }
640 640
 
641 641
 /**
@@ -657,12 +657,12 @@  discard block
 block discarded – undo
657 657
  *     True si réussi
658 658
  */
659 659
 function sql_free($res, $serveur = '', $option = true) {
660
-	$f = sql_serveur('free', $serveur, $option === 'continue' or $option === false);
661
-	if (!is_string($f) or !$f) {
662
-		return false;
663
-	}
660
+    $f = sql_serveur('free', $serveur, $option === 'continue' or $option === false);
661
+    if (!is_string($f) or !$f) {
662
+        return false;
663
+    }
664 664
 
665
-	return $f($res);
665
+    return $f($res);
666 666
 }
667 667
 
668 668
 
@@ -700,17 +700,17 @@  discard block
 block discarded – undo
700 700
  *     - False en cas d'erreur.
701 701
  **/
702 702
 function sql_insert($table, $noms, $valeurs, $desc = [], $serveur = '', $option = true) {
703
-	$f = sql_serveur('insert', $serveur, $option === 'continue' or $option === false);
704
-	if (!is_string($f) or !$f) {
705
-		return false;
706
-	}
707
-	$r = $f($table, $noms, $valeurs, $desc, $serveur, $option !== false);
708
-	if ($r === false or $r === null) {
709
-		spip_sql_erreur($serveur);
710
-		$r = false;
711
-	}
712
-
713
-	return $r;
703
+    $f = sql_serveur('insert', $serveur, $option === 'continue' or $option === false);
704
+    if (!is_string($f) or !$f) {
705
+        return false;
706
+    }
707
+    $r = $f($table, $noms, $valeurs, $desc, $serveur, $option !== false);
708
+    if ($r === false or $r === null) {
709
+        spip_sql_erreur($serveur);
710
+        $r = false;
711
+    }
712
+
713
+    return $r;
714 714
 }
715 715
 
716 716
 /**
@@ -751,17 +751,17 @@  discard block
 block discarded – undo
751 751
  *     - False en cas d'erreur.
752 752
  **/
753 753
 function sql_insertq($table, $couples = [], $desc = [], $serveur = '', $option = true) {
754
-	$f = sql_serveur('insertq', $serveur, $option === 'continue' or $option === false);
755
-	if (!is_string($f) or !$f) {
756
-		return false;
757
-	}
758
-	$r = $f($table, $couples, $desc, $serveur, $option !== false);
759
-	if ($r === false or $r === null) {
760
-		spip_sql_erreur($serveur);
761
-		$r = false;
762
-	}
763
-
764
-	return $r;
754
+    $f = sql_serveur('insertq', $serveur, $option === 'continue' or $option === false);
755
+    if (!is_string($f) or !$f) {
756
+        return false;
757
+    }
758
+    $r = $f($table, $couples, $desc, $serveur, $option !== false);
759
+    if ($r === false or $r === null) {
760
+        spip_sql_erreur($serveur);
761
+        $r = false;
762
+    }
763
+
764
+    return $r;
765 765
 }
766 766
 
767 767
 /**
@@ -796,17 +796,17 @@  discard block
 block discarded – undo
796 796
  *     - False en cas d'erreur.
797 797
  **/
798 798
 function sql_insertq_multi($table, $couples = [], $desc = [], $serveur = '', $option = true) {
799
-	$f = sql_serveur('insertq_multi', $serveur, $option === 'continue' or $option === false);
800
-	if (!is_string($f) or !$f) {
801
-		return false;
802
-	}
803
-	$r = $f($table, $couples, $desc, $serveur, $option !== false);
804
-	if ($r === false or $r === null) {
805
-		spip_sql_erreur($serveur);
806
-		$r = false;
807
-	}
808
-
809
-	return $r;
799
+    $f = sql_serveur('insertq_multi', $serveur, $option === 'continue' or $option === false);
800
+    if (!is_string($f) or !$f) {
801
+        return false;
802
+    }
803
+    $r = $f($table, $couples, $desc, $serveur, $option !== false);
804
+    if ($r === false or $r === null) {
805
+        spip_sql_erreur($serveur);
806
+        $r = false;
807
+    }
808
+
809
+    return $r;
810 810
 }
811 811
 
812 812
 /**
@@ -846,16 +846,16 @@  discard block
 block discarded – undo
846 846
  *     - array Tableau décrivant la requête et son temps d'exécution si var_profile est actif
847 847
  */
848 848
 function sql_update($table, $exp, $where = '', $desc = [], $serveur = '', $option = true) {
849
-	$f = sql_serveur('update', $serveur, $option === 'continue' or $option === false);
850
-	if (!is_string($f) or !$f) {
851
-		return false;
852
-	}
853
-	$r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
854
-	if ($r === false) {
855
-		spip_sql_erreur($serveur);
856
-	}
857
-
858
-	return $r;
849
+    $f = sql_serveur('update', $serveur, $option === 'continue' or $option === false);
850
+    if (!is_string($f) or !$f) {
851
+        return false;
852
+    }
853
+    $r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
854
+    if ($r === false) {
855
+        spip_sql_erreur($serveur);
856
+    }
857
+
858
+    return $r;
859 859
 }
860 860
 
861 861
 
@@ -901,16 +901,16 @@  discard block
 block discarded – undo
901 901
  *     - False en cas d'erreur.
902 902
  **/
903 903
 function sql_updateq($table, $exp, $where = '', $desc = [], $serveur = '', $option = true) {
904
-	$f = sql_serveur('updateq', $serveur, $option === 'continue' or $option === false);
905
-	if (!is_string($f) or !$f) {
906
-		return false;
907
-	}
908
-	$r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
909
-	if ($r === false) {
910
-		spip_sql_erreur($serveur);
911
-	}
912
-
913
-	return $r;
904
+    $f = sql_serveur('updateq', $serveur, $option === 'continue' or $option === false);
905
+    if (!is_string($f) or !$f) {
906
+        return false;
907
+    }
908
+    $r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
909
+    if ($r === false) {
910
+        spip_sql_erreur($serveur);
911
+    }
912
+
913
+    return $r;
914 914
 }
915 915
 
916 916
 /**
@@ -941,16 +941,16 @@  discard block
 block discarded – undo
941 941
  *     - False en cas d'erreur.
942 942
  **/
943 943
 function sql_delete($table, $where = '', $serveur = '', $option = true) {
944
-	$f = sql_serveur('delete', $serveur, $option === 'continue' or $option === false);
945
-	if (!is_string($f) or !$f) {
946
-		return false;
947
-	}
948
-	$r = $f($table, $where, $serveur, $option !== false);
949
-	if ($r === false) {
950
-		spip_sql_erreur($serveur);
951
-	}
952
-
953
-	return $r;
944
+    $f = sql_serveur('delete', $serveur, $option === 'continue' or $option === false);
945
+    if (!is_string($f) or !$f) {
946
+        return false;
947
+    }
948
+    $r = $f($table, $where, $serveur, $option !== false);
949
+    if ($r === false) {
950
+        spip_sql_erreur($serveur);
951
+    }
952
+
953
+    return $r;
954 954
 }
955 955
 
956 956
 /**
@@ -986,16 +986,16 @@  discard block
 block discarded – undo
986 986
  *     - False en cas d'erreur.
987 987
  **/
988 988
 function sql_replace($table, $couples, $desc = [], $serveur = '', $option = true) {
989
-	$f = sql_serveur('replace', $serveur, $option === 'continue' or $option === false);
990
-	if (!is_string($f) or !$f) {
991
-		return false;
992
-	}
993
-	$r = $f($table, $couples, $desc, $serveur, $option !== false);
994
-	if ($r === false) {
995
-		spip_sql_erreur($serveur);
996
-	}
997
-
998
-	return $r;
989
+    $f = sql_serveur('replace', $serveur, $option === 'continue' or $option === false);
990
+    if (!is_string($f) or !$f) {
991
+        return false;
992
+    }
993
+    $r = $f($table, $couples, $desc, $serveur, $option !== false);
994
+    if ($r === false) {
995
+        spip_sql_erreur($serveur);
996
+    }
997
+
998
+    return $r;
999 999
 }
1000 1000
 
1001 1001
 
@@ -1033,16 +1033,16 @@  discard block
 block discarded – undo
1033 1033
  *     - False en cas d'erreur.
1034 1034
  **/
1035 1035
 function sql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $option = true) {
1036
-	$f = sql_serveur('replace_multi', $serveur, $option === 'continue' or $option === false);
1037
-	if (!is_string($f) or !$f) {
1038
-		return false;
1039
-	}
1040
-	$r = $f($table, $tab_couples, $desc, $serveur, $option !== false);
1041
-	if ($r === false) {
1042
-		spip_sql_erreur($serveur);
1043
-	}
1044
-
1045
-	return $r;
1036
+    $f = sql_serveur('replace_multi', $serveur, $option === 'continue' or $option === false);
1037
+    if (!is_string($f) or !$f) {
1038
+        return false;
1039
+    }
1040
+    $r = $f($table, $tab_couples, $desc, $serveur, $option !== false);
1041
+    if ($r === false) {
1042
+        spip_sql_erreur($serveur);
1043
+    }
1044
+
1045
+    return $r;
1046 1046
 }
1047 1047
 
1048 1048
 /**
@@ -1070,16 +1070,16 @@  discard block
 block discarded – undo
1070 1070
  *     - False en cas d'erreur.
1071 1071
  **/
1072 1072
 function sql_drop_table($table, $exist = '', $serveur = '', $option = true) {
1073
-	$f = sql_serveur('drop_table', $serveur, $option === 'continue' or $option === false);
1074
-	if (!is_string($f) or !$f) {
1075
-		return false;
1076
-	}
1077
-	$r = $f($table, $exist, $serveur, $option !== false);
1078
-	if ($r === false) {
1079
-		spip_sql_erreur($serveur);
1080
-	}
1081
-
1082
-	return $r;
1073
+    $f = sql_serveur('drop_table', $serveur, $option === 'continue' or $option === false);
1074
+    if (!is_string($f) or !$f) {
1075
+        return false;
1076
+    }
1077
+    $r = $f($table, $exist, $serveur, $option !== false);
1078
+    if ($r === false) {
1079
+        spip_sql_erreur($serveur);
1080
+    }
1081
+
1082
+    return $r;
1083 1083
 }
1084 1084
 
1085 1085
 /**
@@ -1103,16 +1103,16 @@  discard block
 block discarded – undo
1103 1103
  *     - true si la requête a réussie, false sinon
1104 1104
  */
1105 1105
 function sql_drop_view($table, $exist = '', $serveur = '', $option = true) {
1106
-	$f = sql_serveur('drop_view', $serveur, $option === 'continue' or $option === false);
1107
-	if (!is_string($f) or !$f) {
1108
-		return false;
1109
-	}
1110
-	$r = $f($table, $exist, $serveur, $option !== false);
1111
-	if ($r === false) {
1112
-		spip_sql_erreur($serveur);
1113
-	}
1114
-
1115
-	return $r;
1106
+    $f = sql_serveur('drop_view', $serveur, $option === 'continue' or $option === false);
1107
+    if (!is_string($f) or !$f) {
1108
+        return false;
1109
+    }
1110
+    $r = $f($table, $exist, $serveur, $option !== false);
1111
+    if ($r === false) {
1112
+        spip_sql_erreur($serveur);
1113
+    }
1114
+
1115
+    return $r;
1116 1116
 }
1117 1117
 
1118 1118
 /**
@@ -1136,18 +1136,18 @@  discard block
 block discarded – undo
1136 1136
  *     Ressource à utiliser avec sql_fetch()
1137 1137
  **/
1138 1138
 function sql_showbase($spip = null, $serveur = '', $option = true) {
1139
-	$f = sql_serveur('showbase', $serveur, $option === 'continue' or $option === false);
1140
-	if (!is_string($f) or !$f) {
1141
-		return false;
1142
-	}
1143
-
1144
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
1145
-	if ($spip == null) {
1146
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1147
-		$spip = $connexion['prefixe'] . '\_%';
1148
-	}
1149
-
1150
-	return $f($spip, $serveur, $option !== false);
1139
+    $f = sql_serveur('showbase', $serveur, $option === 'continue' or $option === false);
1140
+    if (!is_string($f) or !$f) {
1141
+        return false;
1142
+    }
1143
+
1144
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
1145
+    if ($spip == null) {
1146
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1147
+        $spip = $connexion['prefixe'] . '\_%';
1148
+    }
1149
+
1150
+    return $f($spip, $serveur, $option !== false);
1151 1151
 }
1152 1152
 
1153 1153
 /**
@@ -1170,15 +1170,15 @@  discard block
 block discarded – undo
1170 1170
  *     Liste des tables SQL
1171 1171
  **/
1172 1172
 function sql_alltable($spip = null, $serveur = '', $option = true) {
1173
-	$q = sql_showbase($spip, $serveur, $option);
1174
-	$r = [];
1175
-	if ($q) {
1176
-		while ($t = sql_fetch($q, $serveur)) {
1177
-			$r[] = array_shift($t);
1178
-		}
1179
-	}
1180
-
1181
-	return $r;
1173
+    $q = sql_showbase($spip, $serveur, $option);
1174
+    $r = [];
1175
+    if ($q) {
1176
+        while ($t = sql_fetch($q, $serveur)) {
1177
+            $r[] = array_shift($t);
1178
+        }
1179
+    }
1180
+
1181
+    return $r;
1182 1182
 }
1183 1183
 
1184 1184
 /**
@@ -1211,31 +1211,31 @@  discard block
 block discarded – undo
1211 1211
  *       - 'join' => array() // jointures, si déclarées.
1212 1212
  **/
1213 1213
 function sql_showtable($table, $table_spip = false, $serveur = '', $option = true) {
1214
-	$f = sql_serveur('showtable', $serveur, $option === 'continue' or $option === false);
1215
-	if (!is_string($f) or !$f) {
1216
-		return false;
1217
-	}
1218
-
1219
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
1220
-	if ($table_spip) {
1221
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1222
-		$prefixe = $connexion['prefixe'];
1223
-		$vraie_table = prefixer_table_spip($table, $prefixe);
1224
-	} else {
1225
-		$vraie_table = $table;
1226
-	}
1227
-
1228
-	$f = $f($vraie_table, $serveur, $option !== false);
1229
-	if (!$f) {
1230
-		return [];
1231
-	}
1232
-	if (isset($GLOBALS['tables_principales'][$table]['join'])) {
1233
-		$f['join'] = $GLOBALS['tables_principales'][$table]['join'];
1234
-	} elseif (isset($GLOBALS['tables_auxiliaires'][$table]['join'])) {
1235
-		$f['join'] = $GLOBALS['tables_auxiliaires'][$table]['join'];
1236
-	}
1237
-
1238
-	return $f;
1214
+    $f = sql_serveur('showtable', $serveur, $option === 'continue' or $option === false);
1215
+    if (!is_string($f) or !$f) {
1216
+        return false;
1217
+    }
1218
+
1219
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
1220
+    if ($table_spip) {
1221
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1222
+        $prefixe = $connexion['prefixe'];
1223
+        $vraie_table = prefixer_table_spip($table, $prefixe);
1224
+    } else {
1225
+        $vraie_table = $table;
1226
+    }
1227
+
1228
+    $f = $f($vraie_table, $serveur, $option !== false);
1229
+    if (!$f) {
1230
+        return [];
1231
+    }
1232
+    if (isset($GLOBALS['tables_principales'][$table]['join'])) {
1233
+        $f['join'] = $GLOBALS['tables_principales'][$table]['join'];
1234
+    } elseif (isset($GLOBALS['tables_auxiliaires'][$table]['join'])) {
1235
+        $f['join'] = $GLOBALS['tables_auxiliaires'][$table]['join'];
1236
+    }
1237
+
1238
+    return $f;
1239 1239
 }
1240 1240
 
1241 1241
 
@@ -1263,21 +1263,21 @@  discard block
 block discarded – undo
1263 1263
  *     - False en cas d'erreur.
1264 1264
  **/
1265 1265
 function sql_table_exists(string $table, bool $table_spip = true, $serveur = '', $option = true) {
1266
-	$f = sql_serveur('table_exists', $serveur, $option === 'continue' or $option === false);
1267
-	if (!is_string($f) or !$f) {
1268
-		return false;
1269
-	}
1270
-
1271
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
1272
-	if ($table_spip) {
1273
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1274
-		$prefixe = $connexion['prefixe'];
1275
-		$vraie_table = prefixer_table_spip($table, $prefixe);
1276
-	} else {
1277
-		$vraie_table = $table;
1278
-	}
1279
-
1280
-	return $f($vraie_table, $serveur, $option !== false);
1266
+    $f = sql_serveur('table_exists', $serveur, $option === 'continue' or $option === false);
1267
+    if (!is_string($f) or !$f) {
1268
+        return false;
1269
+    }
1270
+
1271
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
1272
+    if ($table_spip) {
1273
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1274
+        $prefixe = $connexion['prefixe'];
1275
+        $vraie_table = prefixer_table_spip($table, $prefixe);
1276
+    } else {
1277
+        $vraie_table = $table;
1278
+    }
1279
+
1280
+    return $f($vraie_table, $serveur, $option !== false);
1281 1281
 }
1282 1282
 
1283 1283
 
@@ -1323,24 +1323,24 @@  discard block
 block discarded – undo
1323 1323
  *     true si succès, false en cas d'echec
1324 1324
  **/
1325 1325
 function sql_create(
1326
-	$nom,
1327
-	$champs,
1328
-	$cles = [],
1329
-	$autoinc = false,
1330
-	$temporary = false,
1331
-	$serveur = '',
1332
-	$option = true
1326
+    $nom,
1327
+    $champs,
1328
+    $cles = [],
1329
+    $autoinc = false,
1330
+    $temporary = false,
1331
+    $serveur = '',
1332
+    $option = true
1333 1333
 ) {
1334
-	$f = sql_serveur('create', $serveur, $option === 'continue' or $option === false);
1335
-	if (!is_string($f) or !$f) {
1336
-		return false;
1337
-	}
1338
-	$r = $f($nom, $champs, $cles, $autoinc, $temporary, $serveur, $option !== false);
1339
-	if ($r === false) {
1340
-		spip_sql_erreur($serveur);
1341
-	}
1342
-
1343
-	return $r;
1334
+    $f = sql_serveur('create', $serveur, $option === 'continue' or $option === false);
1335
+    if (!is_string($f) or !$f) {
1336
+        return false;
1337
+    }
1338
+    $r = $f($nom, $champs, $cles, $autoinc, $temporary, $serveur, $option !== false);
1339
+    if ($r === false) {
1340
+        spip_sql_erreur($serveur);
1341
+    }
1342
+
1343
+    return $r;
1344 1344
 }
1345 1345
 
1346 1346
 /**
@@ -1358,16 +1358,16 @@  discard block
 block discarded – undo
1358 1358
  * @return bool true si la base est créee.
1359 1359
  **/
1360 1360
 function sql_create_base($nom, $serveur = '', $option = true) {
1361
-	$f = sql_serveur('create_base', $serveur, $option === 'continue' or $option === false);
1362
-	if (!is_string($f) or !$f) {
1363
-		return false;
1364
-	}
1365
-	$r = $f($nom, $serveur, $option !== false);
1366
-	if ($r === false) {
1367
-		spip_sql_erreur($serveur);
1368
-	}
1369
-
1370
-	return $r;
1361
+    $f = sql_serveur('create_base', $serveur, $option === 'continue' or $option === false);
1362
+    if (!is_string($f) or !$f) {
1363
+        return false;
1364
+    }
1365
+    $r = $f($nom, $serveur, $option !== false);
1366
+    if ($r === false) {
1367
+        spip_sql_erreur($serveur);
1368
+    }
1369
+
1370
+    return $r;
1371 1371
 }
1372 1372
 
1373 1373
 
@@ -1397,16 +1397,16 @@  discard block
 block discarded – undo
1397 1397
  *     - false en cas d'échec.
1398 1398
  **/
1399 1399
 function sql_create_view($nom, $select_query, $serveur = '', $option = true) {
1400
-	$f = sql_serveur('create_view', $serveur, $option === 'continue' or $option === false);
1401
-	if (!is_string($f) or !$f) {
1402
-		return false;
1403
-	}
1404
-	$r = $f($nom, $select_query, $serveur, $option !== false);
1405
-	if ($r === false) {
1406
-		spip_sql_erreur($serveur);
1407
-	}
1408
-
1409
-	return $r;
1400
+    $f = sql_serveur('create_view', $serveur, $option === 'continue' or $option === false);
1401
+    if (!is_string($f) or !$f) {
1402
+        return false;
1403
+    }
1404
+    $r = $f($nom, $select_query, $serveur, $option !== false);
1405
+    if ($r === false) {
1406
+        spip_sql_erreur($serveur);
1407
+    }
1408
+
1409
+    return $r;
1410 1410
 }
1411 1411
 
1412 1412
 /**
@@ -1435,12 +1435,12 @@  discard block
 block discarded – undo
1435 1435
  *     Texte de sélection pour la requête
1436 1436
  */
1437 1437
 function sql_multi($sel, $lang, $serveur = '', $option = true) {
1438
-	$f = sql_serveur('multi', $serveur, $option === 'continue' or $option === false);
1439
-	if (!is_string($f) or !$f) {
1440
-		return false;
1441
-	}
1438
+    $f = sql_serveur('multi', $serveur, $option === 'continue' or $option === false);
1439
+    if (!is_string($f) or !$f) {
1440
+        return false;
1441
+    }
1442 1442
 
1443
-	return $f($sel, $lang);
1443
+    return $f($sel, $lang);
1444 1444
 }
1445 1445
 
1446 1446
 
@@ -1455,12 +1455,12 @@  discard block
 block discarded – undo
1455 1455
  *      False si le serveur est indisponible
1456 1456
  */
1457 1457
 function sql_error($serveur = '') {
1458
-	$f = sql_serveur('error', $serveur, true);
1459
-	if (!is_string($f) or !$f) {
1460
-		return false;
1461
-	}
1458
+    $f = sql_serveur('error', $serveur, true);
1459
+    if (!is_string($f) or !$f) {
1460
+        return false;
1461
+    }
1462 1462
 
1463
-	return $f('query inconnue', $serveur);
1463
+    return $f('query inconnue', $serveur);
1464 1464
 }
1465 1465
 
1466 1466
 /**
@@ -1474,12 +1474,12 @@  discard block
 block discarded – undo
1474 1474
  *      False si le serveur est indisponible
1475 1475
  */
1476 1476
 function sql_errno($serveur = '') {
1477
-	$f = sql_serveur('errno', $serveur, true);
1478
-	if (!is_string($f) or !$f) {
1479
-		return false;
1480
-	}
1477
+    $f = sql_serveur('errno', $serveur, true);
1478
+    if (!is_string($f) or !$f) {
1479
+        return false;
1480
+    }
1481 1481
 
1482
-	return $f($serveur);
1482
+    return $f($serveur);
1483 1483
 }
1484 1484
 
1485 1485
 /**
@@ -1497,16 +1497,16 @@  discard block
 block discarded – undo
1497 1497
  * @return array|false   Tableau de l'explication
1498 1498
  */
1499 1499
 function sql_explain($q, $serveur = '', $option = true) {
1500
-	$f = sql_serveur('explain', $serveur, true);
1501
-	if (!is_string($f) or !$f) {
1502
-		return false;
1503
-	}
1504
-	$r = $f($q, $serveur, $option !== false);
1505
-	if ($r === false) {
1506
-		spip_sql_erreur($serveur);
1507
-	}
1508
-
1509
-	return $r;
1500
+    $f = sql_serveur('explain', $serveur, true);
1501
+    if (!is_string($f) or !$f) {
1502
+        return false;
1503
+    }
1504
+    $r = $f($q, $serveur, $option !== false);
1505
+    if ($r === false) {
1506
+        spip_sql_erreur($serveur);
1507
+    }
1508
+
1509
+    return $r;
1510 1510
 }
1511 1511
 
1512 1512
 /**
@@ -1524,16 +1524,16 @@  discard block
 block discarded – undo
1524 1524
  * @return bool            Toujours true
1525 1525
  */
1526 1526
 function sql_optimize($table, $serveur = '', $option = true) {
1527
-	$f = sql_serveur('optimize', $serveur, $option === 'continue' or $option === false);
1528
-	if (!is_string($f) or !$f) {
1529
-		return false;
1530
-	}
1531
-	$r = $f($table, $serveur, $option !== false);
1532
-	if ($r === false) {
1533
-		spip_sql_erreur($serveur);
1534
-	}
1535
-
1536
-	return $r;
1527
+    $f = sql_serveur('optimize', $serveur, $option === 'continue' or $option === false);
1528
+    if (!is_string($f) or !$f) {
1529
+        return false;
1530
+    }
1531
+    $r = $f($table, $serveur, $option !== false);
1532
+    if ($r === false) {
1533
+        spip_sql_erreur($serveur);
1534
+    }
1535
+
1536
+    return $r;
1537 1537
 }
1538 1538
 
1539 1539
 /**
@@ -1553,16 +1553,16 @@  discard block
 block discarded – undo
1553 1553
  *     - true si la requête a réussie, false sinon
1554 1554
  */
1555 1555
 function sql_repair($table, $serveur = '', $option = true) {
1556
-	$f = sql_serveur('repair', $serveur, $option === 'continue' or $option === false);
1557
-	if (!is_string($f) or !$f) {
1558
-		return false;
1559
-	}
1560
-	$r = $f($table, $serveur, $option !== false);
1561
-	if ($r === false) {
1562
-		spip_sql_erreur($serveur);
1563
-	}
1564
-
1565
-	return $r;
1556
+    $f = sql_serveur('repair', $serveur, $option === 'continue' or $option === false);
1557
+    if (!is_string($f) or !$f) {
1558
+        return false;
1559
+    }
1560
+    $r = $f($table, $serveur, $option !== false);
1561
+    if ($r === false) {
1562
+        spip_sql_erreur($serveur);
1563
+    }
1564
+
1565
+    return $r;
1566 1566
 }
1567 1567
 
1568 1568
 
@@ -1587,16 +1587,16 @@  discard block
 block discarded – undo
1587 1587
  *     - array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
1588 1588
  */
1589 1589
 function sql_query($ins, $serveur = '', $option = true) {
1590
-	$f = sql_serveur('query', $serveur, $option === 'continue' or $option === false);
1591
-	if (!is_string($f) or !$f) {
1592
-		return false;
1593
-	}
1594
-	$r = $f($ins, $serveur, $option !== false);
1595
-	if ($r === false) {
1596
-		spip_sql_erreur($serveur);
1597
-	}
1598
-
1599
-	return $r;
1590
+    $f = sql_serveur('query', $serveur, $option === 'continue' or $option === false);
1591
+    if (!is_string($f) or !$f) {
1592
+        return false;
1593
+    }
1594
+    $r = $f($ins, $serveur, $option !== false);
1595
+    if ($r === false) {
1596
+        spip_sql_erreur($serveur);
1597
+    }
1598
+
1599
+    return $r;
1600 1600
 }
1601 1601
 
1602 1602
 /**
@@ -1644,27 +1644,27 @@  discard block
 block discarded – undo
1644 1644
  *
1645 1645
  **/
1646 1646
 function sql_fetsel(
1647
-	$select = [],
1648
-	$from = [],
1649
-	$where = [],
1650
-	$groupby = [],
1651
-	$orderby = [],
1652
-	$limit = '',
1653
-	$having = [],
1654
-	$serveur = '',
1655
-	$option = true
1647
+    $select = [],
1648
+    $from = [],
1649
+    $where = [],
1650
+    $groupby = [],
1651
+    $orderby = [],
1652
+    $limit = '',
1653
+    $having = [],
1654
+    $serveur = '',
1655
+    $option = true
1656 1656
 ) {
1657
-	$q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1658
-	if ($option === false) {
1659
-		return $q;
1660
-	}
1661
-	if (!$q) {
1662
-		return [];
1663
-	}
1664
-	$r = sql_fetch($q, $serveur, $option);
1665
-	sql_free($q, $serveur, $option);
1666
-
1667
-	return $r;
1657
+    $q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1658
+    if ($option === false) {
1659
+        return $q;
1660
+    }
1661
+    if (!$q) {
1662
+        return [];
1663
+    }
1664
+    $r = sql_fetch($q, $serveur, $option);
1665
+    sql_free($q, $serveur, $option);
1666
+
1667
+    return $r;
1668 1668
 }
1669 1669
 
1670 1670
 
@@ -1721,22 +1721,22 @@  discard block
 block discarded – undo
1721 1721
  *
1722 1722
  **/
1723 1723
 function sql_allfetsel(
1724
-	$select = [],
1725
-	$from = [],
1726
-	$where = [],
1727
-	$groupby = [],
1728
-	$orderby = [],
1729
-	$limit = '',
1730
-	$having = [],
1731
-	$serveur = '',
1732
-	$option = true
1724
+    $select = [],
1725
+    $from = [],
1726
+    $where = [],
1727
+    $groupby = [],
1728
+    $orderby = [],
1729
+    $limit = '',
1730
+    $having = [],
1731
+    $serveur = '',
1732
+    $option = true
1733 1733
 ) {
1734
-	$q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1735
-	if ($option === false) {
1736
-		return $q;
1737
-	}
1734
+    $q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1735
+    if ($option === false) {
1736
+        return $q;
1737
+    }
1738 1738
 
1739
-	return sql_fetch_all($q, $serveur, $option);
1739
+    return sql_fetch_all($q, $serveur, $option);
1740 1740
 }
1741 1741
 
1742 1742
 
@@ -1783,33 +1783,33 @@  discard block
 block discarded – undo
1783 1783
  *
1784 1784
  **/
1785 1785
 function sql_getfetsel(
1786
-	$select,
1787
-	$from = [],
1788
-	$where = [],
1789
-	$groupby = [],
1790
-	$orderby = [],
1791
-	$limit = '',
1792
-	$having = [],
1793
-	$serveur = '',
1794
-	$option = true
1786
+    $select,
1787
+    $from = [],
1788
+    $where = [],
1789
+    $groupby = [],
1790
+    $orderby = [],
1791
+    $limit = '',
1792
+    $having = [],
1793
+    $serveur = '',
1794
+    $option = true
1795 1795
 ) {
1796
-	if (preg_match('/\s+as\s+(\w+)$/i', $select, $c)) {
1797
-		$id = $c[1];
1798
-	} elseif (!preg_match('/\W/', $select)) {
1799
-		$id = $select;
1800
-	} else {
1801
-		$id = 'n';
1802
-		$select .= ' AS n';
1803
-	}
1804
-	$r = sql_fetsel($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1805
-	if ($option === false) {
1806
-		return $r;
1807
-	}
1808
-	if (!$r) {
1809
-		return null;
1810
-	}
1811
-
1812
-	return $r[$id];
1796
+    if (preg_match('/\s+as\s+(\w+)$/i', $select, $c)) {
1797
+        $id = $c[1];
1798
+    } elseif (!preg_match('/\W/', $select)) {
1799
+        $id = $select;
1800
+    } else {
1801
+        $id = 'n';
1802
+        $select .= ' AS n';
1803
+    }
1804
+    $r = sql_fetsel($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1805
+    if ($option === false) {
1806
+        return $r;
1807
+    }
1808
+    if (!$r) {
1809
+        return null;
1810
+    }
1811
+
1812
+    return $r[$id];
1813 1813
 }
1814 1814
 
1815 1815
 /**
@@ -1827,9 +1827,9 @@  discard block
 block discarded – undo
1827 1827
  *    Numero de version du serveur SQL
1828 1828
  **/
1829 1829
 function sql_version($serveur = '', $option = true) {
1830
-	$row = sql_fetsel('version() AS n', '', '', '', '', '', '', $serveur);
1830
+    $row = sql_fetsel('version() AS n', '', '', '', '', '', '', $serveur);
1831 1831
 
1832
-	return ($row['n']);
1832
+    return ($row['n']);
1833 1833
 }
1834 1834
 
1835 1835
 /**
@@ -1865,16 +1865,16 @@  discard block
 block discarded – undo
1865 1865
  *    Le serveur SQL prefere t'il des transactions pour les insertions multiples ?
1866 1866
  **/
1867 1867
 function sql_preferer_transaction($serveur = '', $option = true) {
1868
-	$f = sql_serveur('preferer_transaction', $serveur, true);
1869
-	if (!is_string($f) or !$f) {
1870
-		return false;
1871
-	}
1872
-	$r = $f($serveur, $option !== false);
1873
-	if ($r === false) {
1874
-		spip_sql_erreur($serveur);
1875
-	}
1876
-
1877
-	return $r;
1868
+    $f = sql_serveur('preferer_transaction', $serveur, true);
1869
+    if (!is_string($f) or !$f) {
1870
+        return false;
1871
+    }
1872
+    $r = $f($serveur, $option !== false);
1873
+    if ($r === false) {
1874
+        spip_sql_erreur($serveur);
1875
+    }
1876
+
1877
+    return $r;
1878 1878
 }
1879 1879
 
1880 1880
 ;
@@ -1899,16 +1899,16 @@  discard block
 block discarded – undo
1899 1899
  *      false en cas d'erreur
1900 1900
  **/
1901 1901
 function sql_demarrer_transaction($serveur = '', $option = true) {
1902
-	$f = sql_serveur('demarrer_transaction', $serveur, true);
1903
-	if (!is_string($f) or !$f) {
1904
-		return false;
1905
-	}
1906
-	$r = $f($serveur, $option !== false);
1907
-	if ($r === false) {
1908
-		spip_sql_erreur($serveur);
1909
-	}
1910
-
1911
-	return $r;
1902
+    $f = sql_serveur('demarrer_transaction', $serveur, true);
1903
+    if (!is_string($f) or !$f) {
1904
+        return false;
1905
+    }
1906
+    $r = $f($serveur, $option !== false);
1907
+    if ($r === false) {
1908
+        spip_sql_erreur($serveur);
1909
+    }
1910
+
1911
+    return $r;
1912 1912
 }
1913 1913
 
1914 1914
 ;
@@ -1933,16 +1933,16 @@  discard block
 block discarded – undo
1933 1933
  *      false en cas d'erreur
1934 1934
  **/
1935 1935
 function sql_terminer_transaction($serveur = '', $option = true) {
1936
-	$f = sql_serveur('terminer_transaction', $serveur, true);
1937
-	if (!is_string($f) or !$f) {
1938
-		return false;
1939
-	}
1940
-	$r = $f($serveur, $option !== false);
1941
-	if ($r === false) {
1942
-		spip_sql_erreur($serveur);
1943
-	}
1944
-
1945
-	return $r;
1936
+    $f = sql_serveur('terminer_transaction', $serveur, true);
1937
+    if (!is_string($f) or !$f) {
1938
+        return false;
1939
+    }
1940
+    $r = $f($serveur, $option !== false);
1941
+    if ($r === false) {
1942
+        spip_sql_erreur($serveur);
1943
+    }
1944
+
1945
+    return $r;
1946 1946
 }
1947 1947
 
1948 1948
 ;
@@ -1969,12 +1969,12 @@  discard block
 block discarded – undo
1969 1969
  *     Valeur hexadécimale attendue par le serveur SQL
1970 1970
  **/
1971 1971
 function sql_hex($val, $serveur = '', $option = true) {
1972
-	$f = sql_serveur('hex', $serveur, $option === 'continue' or $option === false);
1973
-	if (!is_string($f) or !$f) {
1974
-		return false;
1975
-	}
1972
+    $f = sql_serveur('hex', $serveur, $option === 'continue' or $option === false);
1973
+    if (!is_string($f) or !$f) {
1974
+        return false;
1975
+    }
1976 1976
 
1977
-	return $f($val);
1977
+    return $f($val);
1978 1978
 }
1979 1979
 
1980 1980
 /**
@@ -2000,12 +2000,12 @@  discard block
 block discarded – undo
2000 2000
  *     La chaine echappee
2001 2001
  **/
2002 2002
 function sql_quote($val, $serveur = '', $type = '') {
2003
-	$f = sql_serveur('quote', $serveur, true);
2004
-	if (!is_string($f) or !$f) {
2005
-		$f = '_q';
2006
-	}
2003
+    $f = sql_serveur('quote', $serveur, true);
2004
+    if (!is_string($f) or !$f) {
2005
+        $f = '_q';
2006
+    }
2007 2007
 
2008
-	return $f($val, $type);
2008
+    return $f($val, $type);
2009 2009
 }
2010 2010
 
2011 2011
 /**
@@ -2030,12 +2030,12 @@  discard block
 block discarded – undo
2030 2030
  *     - false si le serveur SQL est indisponible
2031 2031
  **/
2032 2032
 function sql_date_proche($champ, $interval, $unite, $serveur = '', $option = true) {
2033
-	$f = sql_serveur('date_proche', $serveur, true);
2034
-	if (!is_string($f) or !$f) {
2035
-		return false;
2036
-	}
2033
+    $f = sql_serveur('date_proche', $serveur, true);
2034
+    if (!is_string($f) or !$f) {
2035
+        return false;
2036
+    }
2037 2037
 
2038
-	return $f($champ, $interval, $unite);
2038
+    return $f($champ, $interval, $unite);
2039 2039
 }
2040 2040
 
2041 2041
 /**
@@ -2071,26 +2071,26 @@  discard block
 block discarded – undo
2071 2071
  *     Expression de requête SQL
2072 2072
  **/
2073 2073
 function sql_in_quote($champ, $valeurs, $not = '', $serveur = '', $type = '', $option = true) {
2074
-	$quote = sql_serveur('quote', $serveur, true);
2075
-	if (!is_string($quote) or !$quote) {
2076
-		return false;
2077
-	}
2078
-
2079
-	// sql_quote produit une chaine dans tous les cas
2080
-	$valeurs = array_filter($valeurs, fn($v) => !is_array($v));
2081
-	$valeurs = array_unique($valeurs);
2082
-	$valeurs = $quote($valeurs, $type);
2083
-
2084
-	if (!strlen(trim($valeurs))) {
2085
-		return ($not ? '0=0' : '0=1');
2086
-	}
2087
-
2088
-	$f = sql_serveur('in', $serveur, $option === 'continue' or $option === false);
2089
-	if (!is_string($f) or !$f) {
2090
-		return false;
2091
-	}
2092
-
2093
-	return $f($champ, $valeurs, $not ? 'NOT' : '', $serveur, $option !== false);
2074
+    $quote = sql_serveur('quote', $serveur, true);
2075
+    if (!is_string($quote) or !$quote) {
2076
+        return false;
2077
+    }
2078
+
2079
+    // sql_quote produit une chaine dans tous les cas
2080
+    $valeurs = array_filter($valeurs, fn($v) => !is_array($v));
2081
+    $valeurs = array_unique($valeurs);
2082
+    $valeurs = $quote($valeurs, $type);
2083
+
2084
+    if (!strlen(trim($valeurs))) {
2085
+        return ($not ? '0=0' : '0=1');
2086
+    }
2087
+
2088
+    $f = sql_serveur('in', $serveur, $option === 'continue' or $option === false);
2089
+    if (!is_string($f) or !$f) {
2090
+        return false;
2091
+    }
2092
+
2093
+    return $f($champ, $valeurs, $not ? 'NOT' : '', $serveur, $option !== false);
2094 2094
 }
2095 2095
 
2096 2096
 /**
@@ -2107,19 +2107,19 @@  discard block
 block discarded – undo
2107 2107
  * @param bool $option
2108 2108
  */
2109 2109
 function sql_in($champ, $valeurs, $not = '', $serveur = '', $option = true) {
2110
-	$type = '';
2111
-	if (!is_array($valeurs)) {
2112
-		$valeurs = strval($valeurs);
2113
-		if (isset($valeurs[0]) and $valeurs[0] === ',') {
2114
-			$valeurs = substr($valeurs, 1);
2115
-		}
2116
-		// on explode en tableau pour pouvoir securiser le contenu
2117
-		$valeurs = explode(',', $valeurs);
2118
-		// et on force un cast de type int donc
2119
-		$type = 'int';
2120
-	}
2121
-
2122
-	return sql_in_quote($champ, $valeurs, $not, $serveur, $type, $option);
2110
+    $type = '';
2111
+    if (!is_array($valeurs)) {
2112
+        $valeurs = strval($valeurs);
2113
+        if (isset($valeurs[0]) and $valeurs[0] === ',') {
2114
+            $valeurs = substr($valeurs, 1);
2115
+        }
2116
+        // on explode en tableau pour pouvoir securiser le contenu
2117
+        $valeurs = explode(',', $valeurs);
2118
+        // et on force un cast de type int donc
2119
+        $type = 'int';
2120
+    }
2121
+
2122
+    return sql_in_quote($champ, $valeurs, $not, $serveur, $type, $option);
2123 2123
 }
2124 2124
 
2125 2125
 
@@ -2160,24 +2160,24 @@  discard block
 block discarded – undo
2160 2160
  *     Expression de requête SQL
2161 2161
  **/
2162 2162
 function sql_in_select(
2163
-	$in,
2164
-	$select,
2165
-	$from = [],
2166
-	$where = [],
2167
-	$groupby = [],
2168
-	$orderby = [],
2169
-	$limit = '',
2170
-	$having = [],
2171
-	$serveur = ''
2163
+    $in,
2164
+    $select,
2165
+    $from = [],
2166
+    $where = [],
2167
+    $groupby = [],
2168
+    $orderby = [],
2169
+    $limit = '',
2170
+    $having = [],
2171
+    $serveur = ''
2172 2172
 ) {
2173
-	$liste = [];
2174
-	$res = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur);
2175
-	while ($r = sql_fetch($res)) {
2176
-		$liste[] = array_shift($r);
2177
-	}
2178
-	sql_free($res);
2179
-
2180
-	return sql_in($in, $liste);
2173
+    $liste = [];
2174
+    $res = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur);
2175
+    while ($r = sql_fetch($res)) {
2176
+        $liste[] = array_shift($r);
2177
+    }
2178
+    sql_free($res);
2179
+
2180
+    return sql_in($in, $liste);
2181 2181
 }
2182 2182
 
2183 2183
 /**
@@ -2209,29 +2209,29 @@  discard block
 block discarded – undo
2209 2209
  *    Position apres le saut.
2210 2210
  */
2211 2211
 function sql_skip($res, $pos, $saut, $count, $serveur = '', $option = true) {
2212
-	// pas de saut en arriere qu'on ne sait pas faire sans sql_seek
2213
-	if (($saut = intval($saut)) <= 0) {
2214
-		return $pos;
2215
-	}
2216
-
2217
-	$seek = $pos + $saut;
2218
-	// si le saut fait depasser le maxi, on libere la resource
2219
-	// et on sort
2220
-	if ($seek >= $count) {
2221
-		sql_free($res, $serveur, $option);
2222
-
2223
-		return $count;
2224
-	}
2225
-
2226
-	if (sql_seek($res, $seek)) {
2227
-		$pos = $seek;
2228
-	} else {
2229
-		while ($pos < $seek and sql_fetch($res, $serveur, $option)) {
2230
-			$pos++;
2231
-		}
2232
-	}
2233
-
2234
-	return $pos;
2212
+    // pas de saut en arriere qu'on ne sait pas faire sans sql_seek
2213
+    if (($saut = intval($saut)) <= 0) {
2214
+        return $pos;
2215
+    }
2216
+
2217
+    $seek = $pos + $saut;
2218
+    // si le saut fait depasser le maxi, on libere la resource
2219
+    // et on sort
2220
+    if ($seek >= $count) {
2221
+        sql_free($res, $serveur, $option);
2222
+
2223
+        return $count;
2224
+    }
2225
+
2226
+    if (sql_seek($res, $seek)) {
2227
+        $pos = $seek;
2228
+    } else {
2229
+        while ($pos < $seek and sql_fetch($res, $serveur, $option)) {
2230
+            $pos++;
2231
+        }
2232
+    }
2233
+
2234
+    return $pos;
2235 2235
 }
2236 2236
 
2237 2237
 
@@ -2251,7 +2251,7 @@  discard block
 block discarded – undo
2251 2251
  *     True si le champ est de type entier
2252 2252
  */
2253 2253
 function sql_test_int($type, $serveur = '', $option = true) {
2254
-	return preg_match('/^(TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT)/i', trim($type));
2254
+    return preg_match('/^(TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT)/i', trim($type));
2255 2255
 }
2256 2256
 
2257 2257
 /**
@@ -2270,7 +2270,7 @@  discard block
 block discarded – undo
2270 2270
  *     True si le champ est de type entier
2271 2271
  */
2272 2272
 function sql_test_date($type, $serveur = '', $option = true) {
2273
-	return preg_match('/^(DATE|DATETIME|TIMESTAMP|TIME)/i', trim($type));
2273
+    return preg_match('/^(DATE|DATETIME|TIMESTAMP|TIME)/i', trim($type));
2274 2274
 }
2275 2275
 
2276 2276
 /**
@@ -2292,19 +2292,19 @@  discard block
 block discarded – undo
2292 2292
  *     La date formatee
2293 2293
  */
2294 2294
 function sql_format_date($annee = 0, $mois = 0, $jour = 0, $h = 0, $m = 0, $s = 0, $serveur = '') {
2295
-	$annee = sprintf('%04s', $annee);
2296
-	$mois = sprintf('%02s', $mois);
2297
-
2298
-	if ($annee == '0000') {
2299
-		$mois = 0;
2300
-	}
2301
-	if ($mois == '00') {
2302
-		$jour = 0;
2303
-	}
2304
-
2305
-	return sprintf('%04u', $annee) . '-' . sprintf('%02u', $mois) . '-'
2306
-	. sprintf('%02u', $jour) . ' ' . sprintf('%02u', $h) . ':'
2307
-	. sprintf('%02u', $m) . ':' . sprintf('%02u', $s);
2295
+    $annee = sprintf('%04s', $annee);
2296
+    $mois = sprintf('%02s', $mois);
2297
+
2298
+    if ($annee == '0000') {
2299
+        $mois = 0;
2300
+    }
2301
+    if ($mois == '00') {
2302
+        $jour = 0;
2303
+    }
2304
+
2305
+    return sprintf('%04u', $annee) . '-' . sprintf('%02u', $mois) . '-'
2306
+    . sprintf('%02u', $jour) . ' ' . sprintf('%02u', $h) . ':'
2307
+    . sprintf('%02u', $m) . ':' . sprintf('%02u', $s);
2308 2308
 }
2309 2309
 
2310 2310
 
@@ -2327,32 +2327,32 @@  discard block
 block discarded – undo
2327 2327
  **/
2328 2328
 function description_table($nom, $serveur = '') {
2329 2329
 
2330
-	static $trouver_table;
2330
+    static $trouver_table;
2331 2331
 
2332
-	/* toujours utiliser trouver_table
2332
+    /* toujours utiliser trouver_table
2333 2333
 	 qui renverra la description theorique
2334 2334
 	 car sinon on va se comporter differement selon que la table est declaree
2335 2335
 	 ou non
2336 2336
 	 */
2337
-	if (!$trouver_table) {
2338
-		$trouver_table = charger_fonction('trouver_table', 'base');
2339
-	}
2340
-	if ($desc = $trouver_table($nom, $serveur)) {
2341
-		return $desc;
2342
-	}
2343
-
2344
-	// sauf a l'installation :
2345
-	include_spip('base/serial');
2346
-	if (isset($GLOBALS['tables_principales'][$nom])) {
2347
-		return $GLOBALS['tables_principales'][$nom];
2348
-	}
2349
-
2350
-	include_spip('base/auxiliaires');
2351
-	if (isset($GLOBALS['tables_auxiliaires'][$nom])) {
2352
-		return $GLOBALS['tables_auxiliaires'][$nom];
2353
-	}
2354
-
2355
-	return false;
2337
+    if (!$trouver_table) {
2338
+        $trouver_table = charger_fonction('trouver_table', 'base');
2339
+    }
2340
+    if ($desc = $trouver_table($nom, $serveur)) {
2341
+        return $desc;
2342
+    }
2343
+
2344
+    // sauf a l'installation :
2345
+    include_spip('base/serial');
2346
+    if (isset($GLOBALS['tables_principales'][$nom])) {
2347
+        return $GLOBALS['tables_principales'][$nom];
2348
+    }
2349
+
2350
+    include_spip('base/auxiliaires');
2351
+    if (isset($GLOBALS['tables_auxiliaires'][$nom])) {
2352
+        return $GLOBALS['tables_auxiliaires'][$nom];
2353
+    }
2354
+
2355
+    return false;
2356 2356
 }
2357 2357
 
2358 2358
 /**
@@ -2365,8 +2365,8 @@  discard block
 block discarded – undo
2365 2365
  * @return string Table sql éventuellement renommée
2366 2366
  */
2367 2367
 function prefixer_table_spip($table, $prefixe) {
2368
-	if ($prefixe) {
2369
-		$table = preg_replace('/^spip_/', $prefixe . '_', $table);
2370
-	}
2371
-	return $table;
2368
+    if ($prefixe) {
2369
+        $table = preg_replace('/^spip_/', $prefixe . '_', $table);
2370
+    }
2371
+    return $table;
2372 2372
 }
Please login to merge, or discard this patch.