Completed
Push — master ( ab7fe7...3ef87c )
by cam
07:17
created
config/ecran_securite.php 3 patches
Indentation   +336 added lines, -336 removed lines patch added patch discarded remove patch
@@ -15,7 +15,7 @@  discard block
 block discarded – undo
15 15
  * Test utilisateur
16 16
  */
17 17
 if (isset($_GET['test_ecran_securite']))
18
-	$ecran_securite_raison = 'test '._ECRAN_SECURITE;
18
+    $ecran_securite_raison = 'test '._ECRAN_SECURITE;
19 19
 
20 20
 /*
21 21
  * Monitoring
@@ -24,215 +24,215 @@  discard block
 block discarded – undo
24 24
  * le load depasse ECRAN_SECURITE_LOAD)
25 25
  */
26 26
 if (!defined('_IS_BOT') and isset($_GET['var_isbot'])){
27
-	define('_IS_BOT', $_GET['var_isbot'] ? true : false);
27
+    define('_IS_BOT', $_GET['var_isbot'] ? true : false);
28 28
 }
29 29
 
30 30
 /*
31 31
  * Détecteur de robot d'indexation
32 32
  */
33 33
 if (!defined('_IS_BOT')){
34
-	define('_IS_BOT',
35
-		isset($_SERVER['HTTP_USER_AGENT'])
36
-		and preg_match(','
37
-		. implode ('|', array(
38
-			// mots generiques
39
-			'bot',
40
-			'slurp',
41
-			'crawler',
42
-			'crwlr',
43
-			'java',
44
-			'monitoring',
45
-			'spider',
46
-			'webvac',
47
-			'yandex',
48
-			'MSIE 6\.0', // botnet 99,9% du temps
49
-			// UA plus cibles 
50
-			'200please',
51
-			'80legs',
52
-			'a6-indexer',
53
-			'aboundex',
54
-			'accoona',
55
-			'acrylicapps',
56
-			'addthis',
57
-			'adressendeutschland',
58
-			'alexa',
59
-			'altavista',
60
-			'analyticsseo',
61
-			'antennapod',
62
-			'arachnys',
63
-			'archive',
64
-			'argclrint',
65
-			'aspseek',
66
-			'baidu',
67
-			'begunadvertising',
68
-			'bing',
69
-			'bloglines',
70
-			'buck',
71
-			'browsershots',
72
-			'bubing',
73
-			'butterfly',
74
-			'changedetection',
75
-			'charlotte',
76
-			'chilkat',
77
-			'china',
78
-			'coccoc',
79
-			'crowsnest',
80
-			'dataminr',
81
-			'daumoa',
82
-			'dlvr\.it',
83
-			'dlweb',
84
-			'drupal',
85
-			'ec2linkfinder',
86
-			'eset\.com',
87
-			'estyle',
88
-			'exalead',
89
-			'ezooms',
90
-			'facebookexternalhit',
91
-			'facebookplatform',
92
-			'fairshare',
93
-			'feedfetcher',
94
-			'feedfetcher-google',
95
-			'feedly',
96
-			'fetch',
97
-			'flipboardproxy',
98
-			'genieo',
99
-			'google',
100
-			'go-http-client',
101
-			'grapeshot',
102
-			'hatena-useragent',
103
-			'head',
104
-			'hosttracker',
105
-			'hubspot',
106
-			'ia_archiver',
107
-			'ichiro',
108
-			'iltrovatore-setaccio',
109
-			'immediatenet',
110
-			'ina',
111
-			'inoreader',
112
-			'infegyatlas',
113
-			'infohelfer',
114
-			'instapaper',
115
-			'jabse',
116
-			'james',
117
-			'jersey',
118
-			'kumkie',
119
-			'linkdex',
120
-			'linkfluence',
121
-			'linkwalker',
122
-			'litefinder',
123
-			'loadimpactpageanalyzer',
124
-			'ltx71',
125
-			'luminate',
126
-			'lycos',
127
-			'lycosa',
128
-			'mediapartners-google',
129
-			'msai',
130
-			'myapp',
131
-			'nativehost',
132
-			'najdi',
133
-			'netcraftsurveyagent',
134
-			'netestate',
135
-			'netseer',
136
-			'netnewswire',
137
-			'newspaper',
138
-			'newsblur',
139
-			'nuhk',
140
-			'nuzzel',
141
-			'okhttp',
142
-			'otmedia',
143
-			'owlin',
144
-			'owncloud',
145
-			'panscient',
146
-			'paper\.li',
147
-			'parsijoo',
148
-			'protopage',
149
-			'plukkie',
150
-			'proximic',
151
-			'pubsub',
152
-			'python',
153
-			'qirina',
154
-			'qoshe',
155
-			'qualidator',
156
-			'qwantify',
157
-			'rambler',
158
-			'readability',
159
-			'ruby',
160
-			'sbsearch',
161
-			'scoop\.it',
162
-			'scooter',
163
-			'scoutjet',
164
-			'scrapy',
165
-			'scrubby',
166
-			'scrubbybloglines',
167
-			'shareaholic',
168
-			'shopwiki',
169
-			'simplepie',
170
-			'sistrix',
171
-			'sitechecker',
172
-			'siteexplorer',
173
-			'snapshot',
174
-			'sogou',
175
-			'special_archiver',
176
-			'speedy',
177
-			'spinn3r',
178
-			'spreadtrum',
179
-			'steeler',
180
-			'subscriber',
181
-			'suma',
182
-			'superdownloads',
183
-			'svenska-webbsido',
184
-			'teoma',
185
-			'the knowledge AI',
186
-			'thumbshots',
187
-			'tineye',
188
-			'traackr',
189
-			'trendiction',
190
-			'trendsmap',
191
-			'tweetedtimes',
192
-			'tweetmeme',
193
-			'universalfeedparser',
194
-			'uaslinkchecker',
195
-			'undrip',
196
-			'unwindfetchor',
197
-			'upday',
198
-			'vedma',
199
-			'vkshare',
200
-			'vm',
201
-			'wch',
202
-			'webalta',
203
-			'webcookies',
204
-			'webparser',
205
-			'webthumbnail',
206
-			'wesee',
207
-			'wise-guys',
208
-			'woko',
209
-			'wordpress',
210
-			'wotbox',
211
-			'y!j-bri',
212
-			'y!j-bro',
213
-			'y!j-brw',
214
-			'y!j-bsc',
215
-			'yahoo',
216
-			'yahoo!',
217
-			'yahooysmcm',
218
-			'ymobactus',
219
-			'yats',
220
-			'yeti',
221
-			'zeerch'
222
-		)) . ',i',
223
-		(string)$_SERVER['HTTP_USER_AGENT'])
224
-	);
34
+    define('_IS_BOT',
35
+        isset($_SERVER['HTTP_USER_AGENT'])
36
+        and preg_match(','
37
+        . implode ('|', array(
38
+            // mots generiques
39
+            'bot',
40
+            'slurp',
41
+            'crawler',
42
+            'crwlr',
43
+            'java',
44
+            'monitoring',
45
+            'spider',
46
+            'webvac',
47
+            'yandex',
48
+            'MSIE 6\.0', // botnet 99,9% du temps
49
+            // UA plus cibles 
50
+            '200please',
51
+            '80legs',
52
+            'a6-indexer',
53
+            'aboundex',
54
+            'accoona',
55
+            'acrylicapps',
56
+            'addthis',
57
+            'adressendeutschland',
58
+            'alexa',
59
+            'altavista',
60
+            'analyticsseo',
61
+            'antennapod',
62
+            'arachnys',
63
+            'archive',
64
+            'argclrint',
65
+            'aspseek',
66
+            'baidu',
67
+            'begunadvertising',
68
+            'bing',
69
+            'bloglines',
70
+            'buck',
71
+            'browsershots',
72
+            'bubing',
73
+            'butterfly',
74
+            'changedetection',
75
+            'charlotte',
76
+            'chilkat',
77
+            'china',
78
+            'coccoc',
79
+            'crowsnest',
80
+            'dataminr',
81
+            'daumoa',
82
+            'dlvr\.it',
83
+            'dlweb',
84
+            'drupal',
85
+            'ec2linkfinder',
86
+            'eset\.com',
87
+            'estyle',
88
+            'exalead',
89
+            'ezooms',
90
+            'facebookexternalhit',
91
+            'facebookplatform',
92
+            'fairshare',
93
+            'feedfetcher',
94
+            'feedfetcher-google',
95
+            'feedly',
96
+            'fetch',
97
+            'flipboardproxy',
98
+            'genieo',
99
+            'google',
100
+            'go-http-client',
101
+            'grapeshot',
102
+            'hatena-useragent',
103
+            'head',
104
+            'hosttracker',
105
+            'hubspot',
106
+            'ia_archiver',
107
+            'ichiro',
108
+            'iltrovatore-setaccio',
109
+            'immediatenet',
110
+            'ina',
111
+            'inoreader',
112
+            'infegyatlas',
113
+            'infohelfer',
114
+            'instapaper',
115
+            'jabse',
116
+            'james',
117
+            'jersey',
118
+            'kumkie',
119
+            'linkdex',
120
+            'linkfluence',
121
+            'linkwalker',
122
+            'litefinder',
123
+            'loadimpactpageanalyzer',
124
+            'ltx71',
125
+            'luminate',
126
+            'lycos',
127
+            'lycosa',
128
+            'mediapartners-google',
129
+            'msai',
130
+            'myapp',
131
+            'nativehost',
132
+            'najdi',
133
+            'netcraftsurveyagent',
134
+            'netestate',
135
+            'netseer',
136
+            'netnewswire',
137
+            'newspaper',
138
+            'newsblur',
139
+            'nuhk',
140
+            'nuzzel',
141
+            'okhttp',
142
+            'otmedia',
143
+            'owlin',
144
+            'owncloud',
145
+            'panscient',
146
+            'paper\.li',
147
+            'parsijoo',
148
+            'protopage',
149
+            'plukkie',
150
+            'proximic',
151
+            'pubsub',
152
+            'python',
153
+            'qirina',
154
+            'qoshe',
155
+            'qualidator',
156
+            'qwantify',
157
+            'rambler',
158
+            'readability',
159
+            'ruby',
160
+            'sbsearch',
161
+            'scoop\.it',
162
+            'scooter',
163
+            'scoutjet',
164
+            'scrapy',
165
+            'scrubby',
166
+            'scrubbybloglines',
167
+            'shareaholic',
168
+            'shopwiki',
169
+            'simplepie',
170
+            'sistrix',
171
+            'sitechecker',
172
+            'siteexplorer',
173
+            'snapshot',
174
+            'sogou',
175
+            'special_archiver',
176
+            'speedy',
177
+            'spinn3r',
178
+            'spreadtrum',
179
+            'steeler',
180
+            'subscriber',
181
+            'suma',
182
+            'superdownloads',
183
+            'svenska-webbsido',
184
+            'teoma',
185
+            'the knowledge AI',
186
+            'thumbshots',
187
+            'tineye',
188
+            'traackr',
189
+            'trendiction',
190
+            'trendsmap',
191
+            'tweetedtimes',
192
+            'tweetmeme',
193
+            'universalfeedparser',
194
+            'uaslinkchecker',
195
+            'undrip',
196
+            'unwindfetchor',
197
+            'upday',
198
+            'vedma',
199
+            'vkshare',
200
+            'vm',
201
+            'wch',
202
+            'webalta',
203
+            'webcookies',
204
+            'webparser',
205
+            'webthumbnail',
206
+            'wesee',
207
+            'wise-guys',
208
+            'woko',
209
+            'wordpress',
210
+            'wotbox',
211
+            'y!j-bri',
212
+            'y!j-bro',
213
+            'y!j-brw',
214
+            'y!j-bsc',
215
+            'yahoo',
216
+            'yahoo!',
217
+            'yahooysmcm',
218
+            'ymobactus',
219
+            'yats',
220
+            'yeti',
221
+            'zeerch'
222
+        )) . ',i',
223
+        (string)$_SERVER['HTTP_USER_AGENT'])
224
+    );
225 225
 }
226 226
 if (!defined('_IS_BOT_FRIEND')){
227
-	define('_IS_BOT_FRIEND',
228
-		isset($_SERVER['HTTP_USER_AGENT'])
229
-		and preg_match(',' . implode ('|', array(
230
-			'facebookexternalhit',
231
-			'flipboardproxy',
232
-			'wordpress'
233
-		)) . ',i',
234
-		(string)$_SERVER['HTTP_USER_AGENT'])
235
-	);
227
+    define('_IS_BOT_FRIEND',
228
+        isset($_SERVER['HTTP_USER_AGENT'])
229
+        and preg_match(',' . implode ('|', array(
230
+            'facebookexternalhit',
231
+            'flipboardproxy',
232
+            'wordpress'
233
+        )) . ',i',
234
+        (string)$_SERVER['HTTP_USER_AGENT'])
235
+    );
236 236
 }
237 237
 
238 238
 /*
@@ -244,17 +244,17 @@  discard block
 block discarded – undo
244 244
  */
245 245
 $_exceptions = array('id_table','id_base','id_parent','id_article_pdf');
246 246
 foreach ($_GET as $var => $val)
247
-	if ($_GET[$var] and strncmp($var, "id_", 3) == 0
248
-		and !in_array($var, $_exceptions))
249
-		$_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]);
247
+    if ($_GET[$var] and strncmp($var, "id_", 3) == 0
248
+        and !in_array($var, $_exceptions))
249
+        $_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]);
250 250
 foreach ($_POST as $var => $val)
251
-	if ($_POST[$var] and strncmp($var, "id_", 3) == 0
252
-		and !in_array($var, $_exceptions))
253
-		$_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]);
251
+    if ($_POST[$var] and strncmp($var, "id_", 3) == 0
252
+        and !in_array($var, $_exceptions))
253
+        $_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]);
254 254
 foreach ($GLOBALS as $var => $val)
255
-	if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0
256
-		and !in_array($var, $_exceptions))
257
-		$GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]);
255
+    if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0
256
+        and !in_array($var, $_exceptions))
257
+        $GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]);
258 258
 
259 259
 /*
260 260
  * Interdit la variable $cjpeg_command, qui était utilisée sans
@@ -266,17 +266,17 @@  discard block
 block discarded – undo
266 266
  * Contrôle de quelques variables (XSS)
267 267
  */
268 268
 foreach(array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) {
269
-	if (isset($_GET[$var]))
270
-		$_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]);
271
-	if (isset($_POST[$var]))
272
-		$_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]);
269
+    if (isset($_GET[$var]))
270
+        $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]);
271
+    if (isset($_POST[$var]))
272
+        $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]);
273 273
 }
274 274
 
275 275
 /*
276 276
  * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x)
277 277
  */
278 278
 if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) {
279
-	$file = addslashes((string)$_GET['file']);
279
+    $file = addslashes((string)$_GET['file']);
280 280
 }
281 281
 
282 282
 /*
@@ -285,79 +285,79 @@  discard block
 block discarded – undo
285 285
 if (isset($_REQUEST['mode']) and isset($_REQUEST['page'])
286 286
 and !in_array($_REQUEST['mode'], array("6forum", "1comite"))
287 287
 and $_REQUEST['page'] == "identifiants")
288
-	$ecran_securite_raison = "identifiants";
288
+    $ecran_securite_raison = "identifiants";
289 289
 
290 290
 /*
291 291
  * Agenda joue à l'injection php
292 292
  */
293 293
 if (isset($_REQUEST['partie_cal'])
294 294
 and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal']))
295
-	$ecran_securite_raison = "partie_cal";
295
+    $ecran_securite_raison = "partie_cal";
296 296
 if (isset($_REQUEST['echelle'])
297 297
 and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle']))
298
-	$ecran_securite_raison = "echelle";
298
+    $ecran_securite_raison = "echelle";
299 299
 
300 300
 /*
301 301
  * Espace privé
302 302
  */
303 303
 if (isset($_REQUEST['exec'])
304 304
 and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec']))
305
-	$ecran_securite_raison = "exec";
305
+    $ecran_securite_raison = "exec";
306 306
 if (isset($_REQUEST['cherche_auteur'])
307 307
 and preg_match(',[<],', (string)$_REQUEST['cherche_auteur']))
308
-	$ecran_securite_raison = "cherche_auteur";
308
+    $ecran_securite_raison = "cherche_auteur";
309 309
 if (isset($_REQUEST['exec'])
310 310
 and $_REQUEST['exec'] == 'auteurs'
311 311
 and preg_match(',[<],', (string)$_REQUEST['recherche']))
312
-	$ecran_securite_raison = "recherche";
312
+    $ecran_securite_raison = "recherche";
313 313
 if (isset($_REQUEST['exec'])
314 314
 and $_REQUEST['exec'] == 'info_plugin'
315 315
 and preg_match(',[<],', (string)$_REQUEST['plugin']))
316
-	$ecran_securite_raison = "plugin";
316
+    $ecran_securite_raison = "plugin";
317 317
 if (isset($_REQUEST['exec'])
318 318
 and $_REQUEST['exec'] == 'puce_statut'
319 319
 and isset($_REQUEST['id'])
320 320
 and !intval($_REQUEST['id']))
321
-	$ecran_securite_raison = "puce_statut";
321
+    $ecran_securite_raison = "puce_statut";
322 322
 if (isset($_REQUEST['action'])
323 323
 and $_REQUEST['action'] == 'configurer') {
324
-	if (@file_exists('inc_version.php')
325
-	or @file_exists('ecrire/inc_version.php')) {
326
-		function action_configurer() {
327
-			include_spip('inc/autoriser');
328
-			if(!autoriser('configurer', _request('configuration'))) {
329
-				include_spip('inc/minipres');
330
-				echo minipres(_T('info_acces_interdit'));
331
-				exit;
332
-			}
333
-			require _DIR_RESTREINT.'action/configurer.php';
334
-			action_configurer_dist();
335
-		}
336
-	}
324
+    if (@file_exists('inc_version.php')
325
+    or @file_exists('ecrire/inc_version.php')) {
326
+        function action_configurer() {
327
+            include_spip('inc/autoriser');
328
+            if(!autoriser('configurer', _request('configuration'))) {
329
+                include_spip('inc/minipres');
330
+                echo minipres(_T('info_acces_interdit'));
331
+                exit;
332
+            }
333
+            require _DIR_RESTREINT.'action/configurer.php';
334
+            action_configurer_dist();
335
+        }
336
+    }
337 337
 }
338 338
 
339 339
 /*
340 340
  * Bloque les requêtes contenant %00 (manipulation d'include)
341 341
  */
342 342
 if (strpos(
343
-	@get_magic_quotes_gpc() ?
344
-		stripslashes(serialize($_REQUEST)) : serialize($_REQUEST),
345
-	chr(0)
343
+    @get_magic_quotes_gpc() ?
344
+        stripslashes(serialize($_REQUEST)) : serialize($_REQUEST),
345
+    chr(0)
346 346
 ) !== false)
347
-	$ecran_securite_raison = "%00";
347
+    $ecran_securite_raison = "%00";
348 348
 
349 349
 /*
350 350
  * Bloque les requêtes fond=formulaire_
351 351
  */
352 352
 if (isset($_REQUEST['fond'])
353 353
 and preg_match(',^formulaire_,i', $_REQUEST['fond']))
354
-	$ecran_securite_raison = "fond=formulaire_";
354
+    $ecran_securite_raison = "fond=formulaire_";
355 355
 
356 356
 /*
357 357
  * Bloque les requêtes du type ?GLOBALS[type_urls]=toto (bug vieux php)
358 358
  */
359 359
 if (isset($_REQUEST['GLOBALS']))
360
-	$ecran_securite_raison = "GLOBALS[GLOBALS]";
360
+    $ecran_securite_raison = "GLOBALS[GLOBALS]";
361 361
 
362 362
 /*
363 363
  * Bloque les requêtes des bots sur:
@@ -365,26 +365,26 @@  discard block
 block discarded – undo
365 365
  * les paginations entremélées
366 366
  */
367 367
 if (_IS_BOT and (
368
-	(isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type']))
369
-	or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI']))
370
-		or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') )
371
-		or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI']))
368
+    (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type']))
369
+    or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI']))
370
+        or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') )
371
+        or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI']))
372 372
 )
373 373
 )
374
-	$ecran_securite_raison = "robot agenda/double pagination";
374
+    $ecran_securite_raison = "robot agenda/double pagination";
375 375
 
376 376
 /*
377 377
  * Bloque une vieille page de tests de CFG (<1.11)
378 378
  * Bloque un XSS sur une page inexistante
379 379
  */
380 380
 if (isset($_REQUEST['page'])) {
381
-	if ($_REQUEST['page'] == 'test_cfg')
382
-		$ecran_securite_raison = "test_cfg";
383
-	if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page']))
384
-		$ecran_securite_raison = "xsspage";
385
-	if ($_REQUEST['page'] == '404'
386
-	and isset($_REQUEST['erreur']))
387
-		$ecran_securite_raison = "xss404";
381
+    if ($_REQUEST['page'] == 'test_cfg')
382
+        $ecran_securite_raison = "test_cfg";
383
+    if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page']))
384
+        $ecran_securite_raison = "xsspage";
385
+    if ($_REQUEST['page'] == '404'
386
+    and isset($_REQUEST['erreur']))
387
+        $ecran_securite_raison = "xss404";
388 388
 }
389 389
 
390 390
 /*
@@ -392,40 +392,40 @@  discard block
 block discarded – undo
392 392
  */
393 393
 foreach (array('var_login') as $var)
394 394
 if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var]))
395
-	$ecran_securite_raison = "xss ".$var;
395
+    $ecran_securite_raison = "xss ".$var;
396 396
 
397 397
 /*
398 398
  * Parade antivirale contre un cheval de troie
399 399
  */
400 400
 if (!function_exists('tmp_lkojfghx')) {
401
-	function tmp_lkojfghx() {}
402
-	function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) {
403
-		// si jamais on est arrivé ici sur une erreur php
404
-		// et qu'un autre gestionnaire d'erreur est défini, l'appeller
405
-		if ($b && $GLOBALS['tmp_xhgfjokl'])
406
-			call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
407
-	}
401
+    function tmp_lkojfghx() {}
402
+    function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) {
403
+        // si jamais on est arrivé ici sur une erreur php
404
+        // et qu'un autre gestionnaire d'erreur est défini, l'appeller
405
+        if ($b && $GLOBALS['tmp_xhgfjokl'])
406
+            call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
407
+    }
408 408
 }
409 409
 if (isset($_POST['tmp_lkojfghx3']))
410
-	$ecran_securite_raison = "gumblar";
410
+    $ecran_securite_raison = "gumblar";
411 411
 
412 412
 /*
413 413
  * Outils XML mal sécurisés < 2.0.9
414 414
  */
415 415
 if (isset($_REQUEST['transformer_xml']))
416
-	$ecran_securite_raison = "transformer_xml";
416
+    $ecran_securite_raison = "transformer_xml";
417 417
 
418 418
 /*
419 419
  * Outils XML mal sécurisés again
420 420
  */
421 421
 if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec']=='valider_xml'){
422
-	$url = trim($_REQUEST['var_url']);
423
-	if (strncmp($url,'/',1)==0
424
-	  or (($p=strpos($url,'..'))!==false AND strpos($url,'..',$p+3)!==false)
425
-	  or (($p=strpos($url,'..'))!==false AND strpos($url,'IMG',$p+3)!==false)
426
-		or (strpos($url,'://')!==false or strpos($url,':\\')!==false)) {
427
-		$ecran_securite_raison = 'URL interdite pour var_url';
428
-	}
422
+    $url = trim($_REQUEST['var_url']);
423
+    if (strncmp($url,'/',1)==0
424
+      or (($p=strpos($url,'..'))!==false AND strpos($url,'..',$p+3)!==false)
425
+      or (($p=strpos($url,'..'))!==false AND strpos($url,'IMG',$p+3)!==false)
426
+        or (strpos($url,'://')!==false or strpos($url,':\\')!==false)) {
427
+        $ecran_securite_raison = 'URL interdite pour var_url';
428
+    }
429 429
 }
430 430
 
431 431
 /*
@@ -433,10 +433,10 @@  discard block
 block discarded – undo
433 433
  */
434 434
 if (isset($_REQUEST['nom_sauvegarde'])
435 435
 and strstr((string)$_REQUEST['nom_sauvegarde'], '/'))
436
-	$ecran_securite_raison = 'nom_sauvegarde manipulee';
436
+    $ecran_securite_raison = 'nom_sauvegarde manipulee';
437 437
 if (isset($_REQUEST['znom_sauvegarde'])
438 438
 and strstr((string)$_REQUEST['znom_sauvegarde'], '/'))
439
-	$ecran_securite_raison = 'znom_sauvegarde manipulee';
439
+    $ecran_securite_raison = 'znom_sauvegarde manipulee';
440 440
 
441 441
 
442 442
 /*
@@ -445,26 +445,26 @@  discard block
 block discarded – undo
445 445
  */
446 446
 if (isset($_REQUEST['op']) and isset($_REQUEST['page'])
447 447
 and $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op']))
448
-	$ecran_securite_raison = 'op';
448
+    $ecran_securite_raison = 'op';
449 449
 
450 450
 /*
451 451
  * Forms & Table ne se méfiait pas assez des uploads de fichiers
452 452
  */
453 453
 if (count($_FILES)){
454
-	foreach($_FILES as $k => $v){
455
-		 if (preg_match(',^fichier_\d+$,', $k)
456
-		 and preg_match(',\.php,i', $v['name']))
457
-		 	unset($_FILES[$k]);
458
-	}
454
+    foreach($_FILES as $k => $v){
455
+            if (preg_match(',^fichier_\d+$,', $k)
456
+         and preg_match(',\.php,i', $v['name']))
457
+                unset($_FILES[$k]);
458
+    }
459 459
 }
460 460
 /*
461 461
  * et Contact trop laxiste avec une variable externe
462 462
  * on bloque pas le post pour eviter de perdre des donnees mais on unset la variable et c'est tout
463 463
  */
464 464
 if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']){
465
-	unset($_REQUEST['pj_enregistrees_nom']);
466
-	unset($_GET['pj_enregistrees_nom']);
467
-	unset($_POST['pj_enregistrees_nom']);
465
+    unset($_REQUEST['pj_enregistrees_nom']);
466
+    unset($_GET['pj_enregistrees_nom']);
467
+    unset($_POST['pj_enregistrees_nom']);
468 468
 }
469 469
 
470 470
 /*
@@ -472,66 +472,66 @@  discard block
 block discarded – undo
472 472
  */
473 473
 if (isset($_REQUEST['reinstall'])
474 474
 and $_REQUEST['reinstall'] == 'oui')
475
-	$ecran_securite_raison = 'reinstall=oui';
475
+    $ecran_securite_raison = 'reinstall=oui';
476 476
 
477 477
 /*
478 478
  * Échappement xss referer
479 479
  */
480 480
 if (isset($_SERVER['HTTP_REFERER']))
481
-	$_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##');
481
+    $_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##');
482 482
 
483 483
 
484 484
 /*
485 485
  * Echappement HTTP_X_FORWARDED_HOST
486 486
  */
487 487
 if (isset($_SERVER['HTTP_X_FORWARDED_HOST']))
488
-	$_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________');
488
+    $_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________');
489 489
 
490 490
 
491 491
 /*
492 492
  * Réinjection des clés en html dans l'admin r19561
493 493
  */
494 494
 if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])){
495
-	$zzzz = implode("", array_keys($_REQUEST));
496
-	if (strlen($zzzz) != strcspn($zzzz, '<>"\''))
497
-		$ecran_securite_raison = 'Cle incorrecte en $_REQUEST';
495
+    $zzzz = implode("", array_keys($_REQUEST));
496
+    if (strlen($zzzz) != strcspn($zzzz, '<>"\''))
497
+        $ecran_securite_raison = 'Cle incorrecte en $_REQUEST';
498 498
 }
499 499
 
500 500
 /*
501 501
  * Injection par connect
502 502
  */
503 503
 if (isset($_REQUEST['connect'])
504
-	and
505
-	// cas qui permettent de sortir d'un commentaire PHP
506
-	(strpos($_REQUEST['connect'], "?") !== false
507
-	 or strpos($_REQUEST['connect'], "<") !== false
508
-	 or strpos($_REQUEST['connect'], ">") !== false
509
-	 or strpos($_REQUEST['connect'], "\n") !== false
510
-	 or strpos($_REQUEST['connect'], "\r") !== false)
511
-	) {
512
-	$ecran_securite_raison = "malformed connect argument";
504
+    and
505
+    // cas qui permettent de sortir d'un commentaire PHP
506
+    (strpos($_REQUEST['connect'], "?") !== false
507
+     or strpos($_REQUEST['connect'], "<") !== false
508
+     or strpos($_REQUEST['connect'], ">") !== false
509
+     or strpos($_REQUEST['connect'], "\n") !== false
510
+     or strpos($_REQUEST['connect'], "\r") !== false)
511
+    ) {
512
+    $ecran_securite_raison = "malformed connect argument";
513 513
 }
514 514
 
515 515
 /*
516 516
  * S'il y a une raison de mourir, mourons
517 517
  */
518 518
 if (isset($ecran_securite_raison)) {
519
-	header("HTTP/1.0 403 Forbidden");
520
-	header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
521
-	header("Cache-Control: no-cache, must-revalidate");
522
-	header("Pragma: no-cache");
523
-	header("Content-Type: text/html");
524
-	die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>");
519
+    header("HTTP/1.0 403 Forbidden");
520
+    header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
521
+    header("Cache-Control: no-cache, must-revalidate");
522
+    header("Pragma: no-cache");
523
+    header("Content-Type: text/html");
524
+    die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>");
525 525
 }
526 526
 
527 527
 /*
528 528
  * Un filtre filtrer_entites securise
529 529
  */
530 530
 if (!function_exists('filtre_filtrer_entites_dist')) {
531
-	function filtre_filtrer_entites_dist($t) {
532
-		include_spip('inc/texte');
533
-		return interdire_scripts(filtrer_entites($t));
534
-	}
531
+    function filtre_filtrer_entites_dist($t) {
532
+        include_spip('inc/texte');
533
+        return interdire_scripts(filtrer_entites($t));
534
+    }
535 535
 }
536 536
 
537 537
 
@@ -545,35 +545,35 @@  discard block
 block discarded – undo
545 545
  * Bloque les bots quand le load déborde
546 546
  */
547 547
 if (!defined('_ECRAN_SECURITE_LOAD'))
548
-	define('_ECRAN_SECURITE_LOAD', 4);
548
+    define('_ECRAN_SECURITE_LOAD', 4);
549 549
 
550 550
 if (
551
-	defined('_ECRAN_SECURITE_LOAD')
552
-	and _ECRAN_SECURITE_LOAD > 0
553
-	and _IS_BOT
554
-	and !_IS_BOT_FRIEND
555
-	and $_SERVER['REQUEST_METHOD'] === 'GET'
556
-	and (
557
-		(function_exists('sys_getloadavg')
558
-		  and $load = sys_getloadavg()
559
-		  and is_array($load)
560
-		  and $load = array_shift($load)
561
-		)
562
-		or
563
-		(@is_readable('/proc/loadavg')
564
-		  and $load = file_get_contents('/proc/loadavg')
565
-		  and $load = floatval($load)
566
-		)
567
-	)
568
-	and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite
569
-	and rand(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD
551
+    defined('_ECRAN_SECURITE_LOAD')
552
+    and _ECRAN_SECURITE_LOAD > 0
553
+    and _IS_BOT
554
+    and !_IS_BOT_FRIEND
555
+    and $_SERVER['REQUEST_METHOD'] === 'GET'
556
+    and (
557
+        (function_exists('sys_getloadavg')
558
+          and $load = sys_getloadavg()
559
+          and is_array($load)
560
+          and $load = array_shift($load)
561
+        )
562
+        or
563
+        (@is_readable('/proc/loadavg')
564
+          and $load = file_get_contents('/proc/loadavg')
565
+          and $load = floatval($load)
566
+        )
567
+    )
568
+    and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite
569
+    and rand(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD
570 570
 ) {
571
-	//https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot
572
-	header("HTTP/1.0 429 Too Many Requests");
573
-	header("Retry-After: 300");
574
-	header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
575
-	header("Cache-Control: no-cache, must-revalidate");
576
-	header("Pragma: no-cache");
577
-	header("Content-Type: text/html");
578
-	die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>");
571
+    //https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot
572
+    header("HTTP/1.0 429 Too Many Requests");
573
+    header("Retry-After: 300");
574
+    header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
575
+    header("Cache-Control: no-cache, must-revalidate");
576
+    header("Pragma: no-cache");
577
+    header("Content-Type: text/html");
578
+    die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>");
579 579
 }
Please login to merge, or discard this patch.
Spacing   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -23,18 +23,18 @@  discard block
 block discarded – undo
23 23
  * var_isbot=1 peut etre utilise pour monitorer la disponibilite pour les bots (sujets a 503 de delestage si
24 24
  * le load depasse ECRAN_SECURITE_LOAD)
25 25
  */
26
-if (!defined('_IS_BOT') and isset($_GET['var_isbot'])){
26
+if (!defined('_IS_BOT') and isset($_GET['var_isbot'])) {
27 27
 	define('_IS_BOT', $_GET['var_isbot'] ? true : false);
28 28
 }
29 29
 
30 30
 /*
31 31
  * Détecteur de robot d'indexation
32 32
  */
33
-if (!defined('_IS_BOT')){
33
+if (!defined('_IS_BOT')) {
34 34
 	define('_IS_BOT',
35 35
 		isset($_SERVER['HTTP_USER_AGENT'])
36 36
 		and preg_match(','
37
-		. implode ('|', array(
37
+		. implode('|', array(
38 38
 			// mots generiques
39 39
 			'bot',
40 40
 			'slurp',
@@ -219,19 +219,19 @@  discard block
 block discarded – undo
219 219
 			'yats',
220 220
 			'yeti',
221 221
 			'zeerch'
222
-		)) . ',i',
223
-		(string)$_SERVER['HTTP_USER_AGENT'])
222
+		)).',i',
223
+		(string) $_SERVER['HTTP_USER_AGENT'])
224 224
 	);
225 225
 }
226
-if (!defined('_IS_BOT_FRIEND')){
226
+if (!defined('_IS_BOT_FRIEND')) {
227 227
 	define('_IS_BOT_FRIEND',
228 228
 		isset($_SERVER['HTTP_USER_AGENT'])
229
-		and preg_match(',' . implode ('|', array(
229
+		and preg_match(','.implode('|', array(
230 230
 			'facebookexternalhit',
231 231
 			'flipboardproxy',
232 232
 			'wordpress'
233
-		)) . ',i',
234
-		(string)$_SERVER['HTTP_USER_AGENT'])
233
+		)).',i',
234
+		(string) $_SERVER['HTTP_USER_AGENT'])
235 235
 	);
236 236
 }
237 237
 
@@ -242,19 +242,19 @@  discard block
 block discarded – undo
242 242
  * (sauf pour id_table, qui n'est pas numérique jusqu'à [5743])
243 243
  * (id_base est une variable de la config des widgets de WordPress)
244 244
  */
245
-$_exceptions = array('id_table','id_base','id_parent','id_article_pdf');
245
+$_exceptions = array('id_table', 'id_base', 'id_parent', 'id_article_pdf');
246 246
 foreach ($_GET as $var => $val)
247 247
 	if ($_GET[$var] and strncmp($var, "id_", 3) == 0
248 248
 		and !in_array($var, $_exceptions))
249
-		$_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]);
249
+		$_GET[$var] = is_array($_GET[$var]) ? @array_map('intval', $_GET[$var]) : intval($_GET[$var]);
250 250
 foreach ($_POST as $var => $val)
251 251
 	if ($_POST[$var] and strncmp($var, "id_", 3) == 0
252 252
 		and !in_array($var, $_exceptions))
253
-		$_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]);
253
+		$_POST[$var] = is_array($_POST[$var]) ? @array_map('intval', $_POST[$var]) : intval($_POST[$var]);
254 254
 foreach ($GLOBALS as $var => $val)
255 255
 	if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0
256 256
 		and !in_array($var, $_exceptions))
257
-		$GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]);
257
+		$GLOBALS[$var] = is_array($GLOBALS[$var]) ? @array_map('intval', $GLOBALS[$var]) : intval($GLOBALS[$var]);
258 258
 
259 259
 /*
260 260
  * Interdit la variable $cjpeg_command, qui était utilisée sans
@@ -265,18 +265,18 @@  discard block
 block discarded – undo
265 265
 /*
266 266
  * Contrôle de quelques variables (XSS)
267 267
  */
268
-foreach(array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) {
268
+foreach (array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) {
269 269
 	if (isset($_GET[$var]))
270
-		$_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]);
270
+		$_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string) $_GET[$var]);
271 271
 	if (isset($_POST[$var]))
272
-		$_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]);
272
+		$_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string) $_POST[$var]);
273 273
 }
274 274
 
275 275
 /*
276 276
  * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x)
277 277
  */
278
-if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) {
279
-	$file = addslashes((string)$_GET['file']);
278
+if (preg_match(',^(.*/)?spip_acces_doc\.,', (string) $_SERVER['REQUEST_URI'])) {
279
+	$file = addslashes((string) $_GET['file']);
280 280
 }
281 281
 
282 282
 /*
@@ -291,28 +291,28 @@  discard block
 block discarded – undo
291 291
  * Agenda joue à l'injection php
292 292
  */
293 293
 if (isset($_REQUEST['partie_cal'])
294
-and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal']))
294
+and $_REQUEST['partie_cal'] !== htmlentities((string) $_REQUEST['partie_cal']))
295 295
 	$ecran_securite_raison = "partie_cal";
296 296
 if (isset($_REQUEST['echelle'])
297
-and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle']))
297
+and $_REQUEST['echelle'] !== htmlentities((string) $_REQUEST['echelle']))
298 298
 	$ecran_securite_raison = "echelle";
299 299
 
300 300
 /*
301 301
  * Espace privé
302 302
  */
303 303
 if (isset($_REQUEST['exec'])
304
-and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec']))
304
+and !preg_match(',^[\w-]+$,', (string) $_REQUEST['exec']))
305 305
 	$ecran_securite_raison = "exec";
306 306
 if (isset($_REQUEST['cherche_auteur'])
307
-and preg_match(',[<],', (string)$_REQUEST['cherche_auteur']))
307
+and preg_match(',[<],', (string) $_REQUEST['cherche_auteur']))
308 308
 	$ecran_securite_raison = "cherche_auteur";
309 309
 if (isset($_REQUEST['exec'])
310 310
 and $_REQUEST['exec'] == 'auteurs'
311
-and preg_match(',[<],', (string)$_REQUEST['recherche']))
311
+and preg_match(',[<],', (string) $_REQUEST['recherche']))
312 312
 	$ecran_securite_raison = "recherche";
313 313
 if (isset($_REQUEST['exec'])
314 314
 and $_REQUEST['exec'] == 'info_plugin'
315
-and preg_match(',[<],', (string)$_REQUEST['plugin']))
315
+and preg_match(',[<],', (string) $_REQUEST['plugin']))
316 316
 	$ecran_securite_raison = "plugin";
317 317
 if (isset($_REQUEST['exec'])
318 318
 and $_REQUEST['exec'] == 'puce_statut'
@@ -325,7 +325,7 @@  discard block
 block discarded – undo
325 325
 	or @file_exists('ecrire/inc_version.php')) {
326 326
 		function action_configurer() {
327 327
 			include_spip('inc/autoriser');
328
-			if(!autoriser('configurer', _request('configuration'))) {
328
+			if (!autoriser('configurer', _request('configuration'))) {
329 329
 				include_spip('inc/minipres');
330 330
 				echo minipres(_T('info_acces_interdit'));
331 331
 				exit;
@@ -366,9 +366,9 @@  discard block
 block discarded – undo
366 366
  */
367 367
 if (_IS_BOT and (
368 368
 	(isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type']))
369
-	or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI']))
370
-		or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') )
371
-		or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI']))
369
+	or (strpos((string) $_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string) $_SERVER['REQUEST_URI']))
370
+		or (isset($_REQUEST['calendrier_annee']) and strpos((string) $_SERVER['REQUEST_URI'], 'debut_'))
371
+		or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string) $_SERVER['REQUEST_URI']))
372 372
 )
373 373
 )
374 374
 	$ecran_securite_raison = "robot agenda/double pagination";
@@ -380,7 +380,7 @@  discard block
 block discarded – undo
380 380
 if (isset($_REQUEST['page'])) {
381 381
 	if ($_REQUEST['page'] == 'test_cfg')
382 382
 		$ecran_securite_raison = "test_cfg";
383
-	if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page']))
383
+	if ($_REQUEST['page'] !== htmlspecialchars((string) $_REQUEST['page']))
384 384
 		$ecran_securite_raison = "xsspage";
385 385
 	if ($_REQUEST['page'] == '404'
386 386
 	and isset($_REQUEST['erreur']))
@@ -418,12 +418,12 @@  discard block
 block discarded – undo
418 418
 /*
419 419
  * Outils XML mal sécurisés again
420 420
  */
421
-if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec']=='valider_xml'){
421
+if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec'] == 'valider_xml') {
422 422
 	$url = trim($_REQUEST['var_url']);
423
-	if (strncmp($url,'/',1)==0
424
-	  or (($p=strpos($url,'..'))!==false AND strpos($url,'..',$p+3)!==false)
425
-	  or (($p=strpos($url,'..'))!==false AND strpos($url,'IMG',$p+3)!==false)
426
-		or (strpos($url,'://')!==false or strpos($url,':\\')!==false)) {
423
+	if (strncmp($url, '/', 1) == 0
424
+	  or (($p = strpos($url, '..')) !== false AND strpos($url, '..', $p + 3) !== false)
425
+	  or (($p = strpos($url, '..')) !== false AND strpos($url, 'IMG', $p + 3) !== false)
426
+		or (strpos($url, '://') !== false or strpos($url, ':\\') !== false)) {
427 427
 		$ecran_securite_raison = 'URL interdite pour var_url';
428 428
 	}
429 429
 }
@@ -432,10 +432,10 @@  discard block
 block discarded – undo
432 432
  * Sauvegarde mal securisée < 2.0.9
433 433
  */
434 434
 if (isset($_REQUEST['nom_sauvegarde'])
435
-and strstr((string)$_REQUEST['nom_sauvegarde'], '/'))
435
+and strstr((string) $_REQUEST['nom_sauvegarde'], '/'))
436 436
 	$ecran_securite_raison = 'nom_sauvegarde manipulee';
437 437
 if (isset($_REQUEST['znom_sauvegarde'])
438
-and strstr((string)$_REQUEST['znom_sauvegarde'], '/'))
438
+and strstr((string) $_REQUEST['znom_sauvegarde'], '/'))
439 439
 	$ecran_securite_raison = 'znom_sauvegarde manipulee';
440 440
 
441 441
 
@@ -450,8 +450,8 @@  discard block
 block discarded – undo
450 450
 /*
451 451
  * Forms & Table ne se méfiait pas assez des uploads de fichiers
452 452
  */
453
-if (count($_FILES)){
454
-	foreach($_FILES as $k => $v){
453
+if (count($_FILES)) {
454
+	foreach ($_FILES as $k => $v) {
455 455
 		 if (preg_match(',^fichier_\d+$,', $k)
456 456
 		 and preg_match(',\.php,i', $v['name']))
457 457
 		 	unset($_FILES[$k]);
@@ -461,7 +461,7 @@  discard block
 block discarded – undo
461 461
  * et Contact trop laxiste avec une variable externe
462 462
  * on bloque pas le post pour eviter de perdre des donnees mais on unset la variable et c'est tout
463 463
  */
464
-if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']){
464
+if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']) {
465 465
 	unset($_REQUEST['pj_enregistrees_nom']);
466 466
 	unset($_GET['pj_enregistrees_nom']);
467 467
 	unset($_POST['pj_enregistrees_nom']);
@@ -491,7 +491,7 @@  discard block
 block discarded – undo
491 491
 /*
492 492
  * Réinjection des clés en html dans l'admin r19561
493 493
  */
494
-if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])){
494
+if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])) {
495 495
 	$zzzz = implode("", array_keys($_REQUEST));
496 496
 	if (strlen($zzzz) != strcspn($zzzz, '<>"\''))
497 497
 		$ecran_securite_raison = 'Cle incorrecte en $_REQUEST';
Please login to merge, or discard this patch.
Braces   +80 added lines, -46 removed lines patch added patch discarded remove patch
@@ -14,8 +14,9 @@  discard block
 block discarded – undo
14 14
 /*
15 15
  * Test utilisateur
16 16
  */
17
-if (isset($_GET['test_ecran_securite']))
17
+if (isset($_GET['test_ecran_securite'])) {
18 18
 	$ecran_securite_raison = 'test '._ECRAN_SECURITE;
19
+}
19 20
 
20 21
 /*
21 22
  * Monitoring
@@ -243,18 +244,21 @@  discard block
 block discarded – undo
243 244
  * (id_base est une variable de la config des widgets de WordPress)
244 245
  */
245 246
 $_exceptions = array('id_table','id_base','id_parent','id_article_pdf');
246
-foreach ($_GET as $var => $val)
247
+foreach ($_GET as $var => $val) {
247 248
 	if ($_GET[$var] and strncmp($var, "id_", 3) == 0
248 249
 		and !in_array($var, $_exceptions))
249 250
 		$_GET[$var] = is_array($_GET[$var])?@array_map('intval', $_GET[$var]):intval($_GET[$var]);
250
-foreach ($_POST as $var => $val)
251
+}
252
+foreach ($_POST as $var => $val) {
251 253
 	if ($_POST[$var] and strncmp($var, "id_", 3) == 0
252 254
 		and !in_array($var, $_exceptions))
253 255
 		$_POST[$var] = is_array($_POST[$var])?@array_map('intval', $_POST[$var]):intval($_POST[$var]);
254
-foreach ($GLOBALS as $var => $val)
256
+}
257
+foreach ($GLOBALS as $var => $val) {
255 258
 	if ($GLOBALS[$var] and strncmp($var, "id_", 3) == 0
256 259
 		and !in_array($var, $_exceptions))
257 260
 		$GLOBALS[$var] = is_array($GLOBALS[$var])?@array_map('intval', $GLOBALS[$var]):intval($GLOBALS[$var]);
261
+}
258 262
 
259 263
 /*
260 264
  * Interdit la variable $cjpeg_command, qui était utilisée sans
@@ -266,11 +270,13 @@  discard block
 block discarded – undo
266 270
  * Contrôle de quelques variables (XSS)
267 271
  */
268 272
 foreach(array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) {
269
-	if (isset($_GET[$var]))
270
-		$_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]);
271
-	if (isset($_POST[$var]))
272
-		$_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]);
273
-}
273
+	if (isset($_GET[$var])) {
274
+			$_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]);
275
+	}
276
+	if (isset($_POST[$var])) {
277
+			$_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]);
278
+	}
279
+	}
274 280
 
275 281
 /*
276 282
  * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x)
@@ -284,41 +290,49 @@  discard block
 block discarded – undo
284 290
  */
285 291
 if (isset($_REQUEST['mode']) and isset($_REQUEST['page'])
286 292
 and !in_array($_REQUEST['mode'], array("6forum", "1comite"))
287
-and $_REQUEST['page'] == "identifiants")
293
+and $_REQUEST['page'] == "identifiants") {
288 294
 	$ecran_securite_raison = "identifiants";
295
+}
289 296
 
290 297
 /*
291 298
  * Agenda joue à l'injection php
292 299
  */
293 300
 if (isset($_REQUEST['partie_cal'])
294
-and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal']))
301
+and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal'])) {
295 302
 	$ecran_securite_raison = "partie_cal";
303
+}
296 304
 if (isset($_REQUEST['echelle'])
297
-and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle']))
305
+and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle'])) {
298 306
 	$ecran_securite_raison = "echelle";
307
+}
299 308
 
300 309
 /*
301 310
  * Espace privé
302 311
  */
303 312
 if (isset($_REQUEST['exec'])
304
-and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec']))
313
+and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec'])) {
305 314
 	$ecran_securite_raison = "exec";
315
+}
306 316
 if (isset($_REQUEST['cherche_auteur'])
307
-and preg_match(',[<],', (string)$_REQUEST['cherche_auteur']))
317
+and preg_match(',[<],', (string)$_REQUEST['cherche_auteur'])) {
308 318
 	$ecran_securite_raison = "cherche_auteur";
319
+}
309 320
 if (isset($_REQUEST['exec'])
310 321
 and $_REQUEST['exec'] == 'auteurs'
311
-and preg_match(',[<],', (string)$_REQUEST['recherche']))
322
+and preg_match(',[<],', (string)$_REQUEST['recherche'])) {
312 323
 	$ecran_securite_raison = "recherche";
324
+}
313 325
 if (isset($_REQUEST['exec'])
314 326
 and $_REQUEST['exec'] == 'info_plugin'
315
-and preg_match(',[<],', (string)$_REQUEST['plugin']))
327
+and preg_match(',[<],', (string)$_REQUEST['plugin'])) {
316 328
 	$ecran_securite_raison = "plugin";
329
+}
317 330
 if (isset($_REQUEST['exec'])
318 331
 and $_REQUEST['exec'] == 'puce_statut'
319 332
 and isset($_REQUEST['id'])
320
-and !intval($_REQUEST['id']))
333
+and !intval($_REQUEST['id'])) {
321 334
 	$ecran_securite_raison = "puce_statut";
335
+}
322 336
 if (isset($_REQUEST['action'])
323 337
 and $_REQUEST['action'] == 'configurer') {
324 338
 	if (@file_exists('inc_version.php')
@@ -343,21 +357,24 @@  discard block
 block discarded – undo
343 357
 	@get_magic_quotes_gpc() ?
344 358
 		stripslashes(serialize($_REQUEST)) : serialize($_REQUEST),
345 359
 	chr(0)
346
-) !== false)
360
+) !== false) {
347 361
 	$ecran_securite_raison = "%00";
362
+}
348 363
 
349 364
 /*
350 365
  * Bloque les requêtes fond=formulaire_
351 366
  */
352 367
 if (isset($_REQUEST['fond'])
353
-and preg_match(',^formulaire_,i', $_REQUEST['fond']))
368
+and preg_match(',^formulaire_,i', $_REQUEST['fond'])) {
354 369
 	$ecran_securite_raison = "fond=formulaire_";
370
+}
355 371
 
356 372
 /*
357 373
  * Bloque les requêtes du type ?GLOBALS[type_urls]=toto (bug vieux php)
358 374
  */
359
-if (isset($_REQUEST['GLOBALS']))
375
+if (isset($_REQUEST['GLOBALS'])) {
360 376
 	$ecran_securite_raison = "GLOBALS[GLOBALS]";
377
+}
361 378
 
362 379
 /*
363 380
  * Bloque les requêtes des bots sur:
@@ -370,29 +387,34 @@  discard block
 block discarded – undo
370 387
 		or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_') )
371 388
 		or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI']))
372 389
 )
373
-)
390
+) {
374 391
 	$ecran_securite_raison = "robot agenda/double pagination";
392
+}
375 393
 
376 394
 /*
377 395
  * Bloque une vieille page de tests de CFG (<1.11)
378 396
  * Bloque un XSS sur une page inexistante
379 397
  */
380 398
 if (isset($_REQUEST['page'])) {
381
-	if ($_REQUEST['page'] == 'test_cfg')
382
-		$ecran_securite_raison = "test_cfg";
383
-	if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page']))
384
-		$ecran_securite_raison = "xsspage";
399
+	if ($_REQUEST['page'] == 'test_cfg') {
400
+			$ecran_securite_raison = "test_cfg";
401
+	}
402
+	if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) {
403
+			$ecran_securite_raison = "xsspage";
404
+	}
385 405
 	if ($_REQUEST['page'] == '404'
386
-	and isset($_REQUEST['erreur']))
387
-		$ecran_securite_raison = "xss404";
388
-}
406
+	and isset($_REQUEST['erreur'])) {
407
+			$ecran_securite_raison = "xss404";
408
+	}
409
+	}
389 410
 
390 411
 /*
391 412
  * XSS par array
392 413
  */
393
-foreach (array('var_login') as $var)
394
-if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var]))
414
+foreach (array('var_login') as $var) {
415
+    if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var]))
395 416
 	$ecran_securite_raison = "xss ".$var;
417
+}
396 418
 
397 419
 /*
398 420
  * Parade antivirale contre un cheval de troie
@@ -402,18 +424,21 @@  discard block
 block discarded – undo
402 424
 	function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) {
403 425
 		// si jamais on est arrivé ici sur une erreur php
404 426
 		// et qu'un autre gestionnaire d'erreur est défini, l'appeller
405
-		if ($b && $GLOBALS['tmp_xhgfjokl'])
406
-			call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
427
+		if ($b && $GLOBALS['tmp_xhgfjokl']) {
428
+					call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
429
+		}
407 430
 	}
408 431
 }
409
-if (isset($_POST['tmp_lkojfghx3']))
432
+if (isset($_POST['tmp_lkojfghx3'])) {
410 433
 	$ecran_securite_raison = "gumblar";
434
+}
411 435
 
412 436
 /*
413 437
  * Outils XML mal sécurisés < 2.0.9
414 438
  */
415
-if (isset($_REQUEST['transformer_xml']))
439
+if (isset($_REQUEST['transformer_xml'])) {
416 440
 	$ecran_securite_raison = "transformer_xml";
441
+}
417 442
 
418 443
 /*
419 444
  * Outils XML mal sécurisés again
@@ -432,11 +457,13 @@  discard block
 block discarded – undo
432 457
  * Sauvegarde mal securisée < 2.0.9
433 458
  */
434 459
 if (isset($_REQUEST['nom_sauvegarde'])
435
-and strstr((string)$_REQUEST['nom_sauvegarde'], '/'))
460
+and strstr((string)$_REQUEST['nom_sauvegarde'], '/')) {
436 461
 	$ecran_securite_raison = 'nom_sauvegarde manipulee';
462
+}
437 463
 if (isset($_REQUEST['znom_sauvegarde'])
438
-and strstr((string)$_REQUEST['znom_sauvegarde'], '/'))
464
+and strstr((string)$_REQUEST['znom_sauvegarde'], '/')) {
439 465
 	$ecran_securite_raison = 'znom_sauvegarde manipulee';
466
+}
440 467
 
441 468
 
442 469
 /*
@@ -444,8 +471,9 @@  discard block
 block discarded – undo
444 471
  * on vérifie 'page' pour ne pas bloquer ... drupal
445 472
  */
446 473
 if (isset($_REQUEST['op']) and isset($_REQUEST['page'])
447
-and $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op']))
474
+and $_REQUEST['op'] !== preg_replace('/[^\-\w]/', '', $_REQUEST['op'])) {
448 475
 	$ecran_securite_raison = 'op';
476
+}
449 477
 
450 478
 /*
451 479
  * Forms & Table ne se méfiait pas assez des uploads de fichiers
@@ -453,8 +481,9 @@  discard block
 block discarded – undo
453 481
 if (count($_FILES)){
454 482
 	foreach($_FILES as $k => $v){
455 483
 		 if (preg_match(',^fichier_\d+$,', $k)
456
-		 and preg_match(',\.php,i', $v['name']))
457
-		 	unset($_FILES[$k]);
484
+		 and preg_match(',\.php,i', $v['name'])) {
485
+		 		 	unset($_FILES[$k]);
486
+		 }
458 487
 	}
459 488
 }
460 489
 /*
@@ -471,21 +500,24 @@  discard block
 block discarded – undo
471 500
  * reinstall=oui un peu trop permissif
472 501
  */
473 502
 if (isset($_REQUEST['reinstall'])
474
-and $_REQUEST['reinstall'] == 'oui')
503
+and $_REQUEST['reinstall'] == 'oui') {
475 504
 	$ecran_securite_raison = 'reinstall=oui';
505
+}
476 506
 
477 507
 /*
478 508
  * Échappement xss referer
479 509
  */
480
-if (isset($_SERVER['HTTP_REFERER']))
510
+if (isset($_SERVER['HTTP_REFERER'])) {
481 511
 	$_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##');
512
+}
482 513
 
483 514
 
484 515
 /*
485 516
  * Echappement HTTP_X_FORWARDED_HOST
486 517
  */
487
-if (isset($_SERVER['HTTP_X_FORWARDED_HOST']))
518
+if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
488 519
 	$_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________');
520
+}
489 521
 
490 522
 
491 523
 /*
@@ -493,9 +525,10 @@  discard block
 block discarded – undo
493 525
  */
494 526
 if (strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false or isset($_REQUEST['var_memotri'])){
495 527
 	$zzzz = implode("", array_keys($_REQUEST));
496
-	if (strlen($zzzz) != strcspn($zzzz, '<>"\''))
497
-		$ecran_securite_raison = 'Cle incorrecte en $_REQUEST';
498
-}
528
+	if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) {
529
+			$ecran_securite_raison = 'Cle incorrecte en $_REQUEST';
530
+	}
531
+	}
499 532
 
500 533
 /*
501 534
  * Injection par connect
@@ -544,8 +577,9 @@  discard block
 block discarded – undo
544 577
 /*
545 578
  * Bloque les bots quand le load déborde
546 579
  */
547
-if (!defined('_ECRAN_SECURITE_LOAD'))
580
+if (!defined('_ECRAN_SECURITE_LOAD')) {
548 581
 	define('_ECRAN_SECURITE_LOAD', 4);
582
+}
549 583
 
550 584
 if (
551 585
 	defined('_ECRAN_SECURITE_LOAD')
Please login to merge, or discard this patch.
ecrire/inc/session.php 2 patches
Indentation   +435 added lines, -435 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  */
20 20
 
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	return;
22
+    return;
23 23
 }
24 24
 
25 25
 
@@ -40,15 +40,15 @@  discard block
 block discarded – undo
40 40
  * @return bool|null|void
41 41
  */
42 42
 function inc_session_dist($auteur = false) {
43
-	if (is_numeric($auteur)) {
44
-		return supprimer_sessions($auteur, $auteur > 0);
45
-	} else {
46
-		if (is_array($auteur)) {
47
-			return ajouter_session($auteur);
48
-		} else {
49
-			return verifier_session($auteur);
50
-		}
51
-	}
43
+    if (is_numeric($auteur)) {
44
+        return supprimer_sessions($auteur, $auteur > 0);
45
+    } else {
46
+        if (is_array($auteur)) {
47
+            return ajouter_session($auteur);
48
+        } else {
49
+            return verifier_session($auteur);
50
+        }
51
+    }
52 52
 }
53 53
 
54 54
 
@@ -77,26 +77,26 @@  discard block
 block discarded – undo
77 77
  */
78 78
 function supprimer_sessions($id_auteur, $toutes = true, $actives = true) {
79 79
 
80
-	spip_log("supprimer sessions auteur $id_auteur", "session");
81
-	if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) {
82
-		if ($dir = opendir(_DIR_SESSIONS)) {
83
-			$t = time() - (4 * _RENOUVELLE_ALEA);
84
-			while (($f = readdir($dir)) !== false) {
85
-				if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) {
86
-					$f = _DIR_SESSIONS . $f;
87
-					if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
88
-						spip_unlink($f);
89
-					}
90
-				}
91
-			}
92
-		}
93
-	} else {
94
-		verifier_session();
95
-		spip_unlink(fichier_session('alea_ephemere', true));
96
-	}
97
-
98
-	// forcer le recalcul de la session courante
99
-	spip_session(true);
80
+    spip_log("supprimer sessions auteur $id_auteur", "session");
81
+    if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) {
82
+        if ($dir = opendir(_DIR_SESSIONS)) {
83
+            $t = time() - (4 * _RENOUVELLE_ALEA);
84
+            while (($f = readdir($dir)) !== false) {
85
+                if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) {
86
+                    $f = _DIR_SESSIONS . $f;
87
+                    if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
88
+                        spip_unlink($f);
89
+                    }
90
+                }
91
+            }
92
+        }
93
+    } else {
94
+        verifier_session();
95
+        spip_unlink(fichier_session('alea_ephemere', true));
96
+    }
97
+
98
+    // forcer le recalcul de la session courante
99
+    spip_session(true);
100 100
 }
101 101
 
102 102
 /**
@@ -114,116 +114,116 @@  discard block
 block discarded – undo
114 114
  * @return bool|string
115 115
  */
116 116
 function ajouter_session($auteur) {
117
-	// Si le client a deja une session valide pour son id_auteur
118
-	// on conserve le meme fichier
119
-
120
-	// Attention un visiteur peut avoir une session et un id=0,
121
-	// => ne pas melanger les sessions des differents visiteurs
122
-	$id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
123
-
124
-	// Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session)
125
-	// on va vérifier s'il y a vraiment des choses à écrire
126
-	if (!$id_auteur) {
127
-		// On supprime les données de base pour voir le contenu réel de la session
128
-		$auteur_verif = $auteur;
129
-		if (isset($auteur_verif['id_auteur'])) {
130
-			unset($auteur_verif['id_auteur']);
131
-		}
132
-		if (isset($auteur_verif['hash_env'])) {
133
-			unset($auteur_verif['hash_env']);
134
-		}
135
-		if (isset($auteur_verif['ip_change'])) {
136
-			unset($auteur_verif['ip_change']);
137
-		}
138
-		if (isset($auteur_verif['date_session'])) {
139
-			unset($auteur_verif['date_session']);
140
-		}
141
-
142
-		// Les variables vraiment nulle ne sont pas à prendre en compte non plus
143
-		foreach ($auteur_verif as $variable => $valeur) {
144
-			if ($valeur === null) {
145
-				unset($auteur_verif[$variable]);
146
-			}
147
-		}
148
-
149
-		// Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là
150
-		if (!$auteur_verif) {
151
-			if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) {
152
-				unset($_SESSION[$_COOKIE['spip_session']]);
153
-			}
154
-			if (isset($_COOKIE['spip_session'])) {
155
-				unset($_COOKIE['spip_session']);
156
-			}
157
-
158
-			return false;
159
-		}
160
-	}
161
-
162
-	if (!isset($_COOKIE['spip_session'])
163
-		or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
164
-	) {
165
-		$_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true));
166
-	}
167
-
168
-	// Maintenant on sait qu'on a des choses à écrire
169
-	// On s'assure d'avoir au moins ces valeurs
170
-	$auteur['id_auteur'] = $id_auteur;
171
-	if (!isset($auteur['hash_env'])) {
172
-		$auteur['hash_env'] = hash_env();
173
-	}
174
-	if (!isset($auteur['ip_change'])) {
175
-		$auteur['ip_change'] = false;
176
-	}
177
-
178
-	if (!isset($auteur['date_session'])) {
179
-		$auteur['date_session'] = time();
180
-	}
181
-	if (isset($auteur['prefs'])
182
-		and is_string($auteur['prefs'])
183
-	  and $prefs = @unserialize($auteur['prefs'])) {
184
-		$auteur['prefs'] = $prefs;
185
-	}
186
-
187
-	$fichier_session = "";
188
-
189
-	// les sessions anonymes sont stockees dans $_SESSION
190
-	if (!$id_auteur) {
191
-		spip_php_session_start();
192
-		$_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur);
193
-	} else {
194
-		$fichier_session = fichier_session('alea_ephemere');
195
-		if (!ecrire_fichier_session($fichier_session, $auteur)) {
196
-			spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS);
197
-			include_spip('inc/minipres');
198
-			echo minipres();
199
-			exit;
200
-		}
201
-		// verifier et limiter le nombre maxi de sessions
202
-		// https://core.spip.net/issues/3807
203
-		lister_sessions_auteur($id_auteur);
204
-	}
205
-
206
-	// poser le cookie de session SPIP
207
-	include_spip('inc/cookie');
208
-	$duree = definir_duree_cookie_session($auteur);
209
-	spip_setcookie( 'spip_session', $_COOKIE['spip_session'], time() + $duree);
210
-	spip_log("ajoute session $fichier_session cookie $duree", "session");
211
-
212
-	// Si on est admin, poser le cookie de correspondance
213
-	if (!function_exists('autoriser')) {
214
-		include_spip('inc/autoriser');
215
-	}
216
-	if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) {
217
-		spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree));
218
-	} // sinon le supprimer ...
219
-	else {
220
-		spip_setcookie('spip_admin', '', 1);
221
-	}
222
-
223
-	# on en profite pour purger les vieilles sessions anonymes abandonnees
224
-	# supprimer_sessions(0, true, false);
225
-
226
-	return $_COOKIE['spip_session'];
117
+    // Si le client a deja une session valide pour son id_auteur
118
+    // on conserve le meme fichier
119
+
120
+    // Attention un visiteur peut avoir une session et un id=0,
121
+    // => ne pas melanger les sessions des differents visiteurs
122
+    $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
123
+
124
+    // Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session)
125
+    // on va vérifier s'il y a vraiment des choses à écrire
126
+    if (!$id_auteur) {
127
+        // On supprime les données de base pour voir le contenu réel de la session
128
+        $auteur_verif = $auteur;
129
+        if (isset($auteur_verif['id_auteur'])) {
130
+            unset($auteur_verif['id_auteur']);
131
+        }
132
+        if (isset($auteur_verif['hash_env'])) {
133
+            unset($auteur_verif['hash_env']);
134
+        }
135
+        if (isset($auteur_verif['ip_change'])) {
136
+            unset($auteur_verif['ip_change']);
137
+        }
138
+        if (isset($auteur_verif['date_session'])) {
139
+            unset($auteur_verif['date_session']);
140
+        }
141
+
142
+        // Les variables vraiment nulle ne sont pas à prendre en compte non plus
143
+        foreach ($auteur_verif as $variable => $valeur) {
144
+            if ($valeur === null) {
145
+                unset($auteur_verif[$variable]);
146
+            }
147
+        }
148
+
149
+        // Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là
150
+        if (!$auteur_verif) {
151
+            if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) {
152
+                unset($_SESSION[$_COOKIE['spip_session']]);
153
+            }
154
+            if (isset($_COOKIE['spip_session'])) {
155
+                unset($_COOKIE['spip_session']);
156
+            }
157
+
158
+            return false;
159
+        }
160
+    }
161
+
162
+    if (!isset($_COOKIE['spip_session'])
163
+        or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
164
+    ) {
165
+        $_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true));
166
+    }
167
+
168
+    // Maintenant on sait qu'on a des choses à écrire
169
+    // On s'assure d'avoir au moins ces valeurs
170
+    $auteur['id_auteur'] = $id_auteur;
171
+    if (!isset($auteur['hash_env'])) {
172
+        $auteur['hash_env'] = hash_env();
173
+    }
174
+    if (!isset($auteur['ip_change'])) {
175
+        $auteur['ip_change'] = false;
176
+    }
177
+
178
+    if (!isset($auteur['date_session'])) {
179
+        $auteur['date_session'] = time();
180
+    }
181
+    if (isset($auteur['prefs'])
182
+        and is_string($auteur['prefs'])
183
+      and $prefs = @unserialize($auteur['prefs'])) {
184
+        $auteur['prefs'] = $prefs;
185
+    }
186
+
187
+    $fichier_session = "";
188
+
189
+    // les sessions anonymes sont stockees dans $_SESSION
190
+    if (!$id_auteur) {
191
+        spip_php_session_start();
192
+        $_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur);
193
+    } else {
194
+        $fichier_session = fichier_session('alea_ephemere');
195
+        if (!ecrire_fichier_session($fichier_session, $auteur)) {
196
+            spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS);
197
+            include_spip('inc/minipres');
198
+            echo minipres();
199
+            exit;
200
+        }
201
+        // verifier et limiter le nombre maxi de sessions
202
+        // https://core.spip.net/issues/3807
203
+        lister_sessions_auteur($id_auteur);
204
+    }
205
+
206
+    // poser le cookie de session SPIP
207
+    include_spip('inc/cookie');
208
+    $duree = definir_duree_cookie_session($auteur);
209
+    spip_setcookie( 'spip_session', $_COOKIE['spip_session'], time() + $duree);
210
+    spip_log("ajoute session $fichier_session cookie $duree", "session");
211
+
212
+    // Si on est admin, poser le cookie de correspondance
213
+    if (!function_exists('autoriser')) {
214
+        include_spip('inc/autoriser');
215
+    }
216
+    if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) {
217
+        spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree));
218
+    } // sinon le supprimer ...
219
+    else {
220
+        spip_setcookie('spip_admin', '', 1);
221
+    }
222
+
223
+    # on en profite pour purger les vieilles sessions anonymes abandonnees
224
+    # supprimer_sessions(0, true, false);
225
+
226
+    return $_COOKIE['spip_session'];
227 227
 }
228 228
 
229 229
 /**
@@ -243,15 +243,15 @@  discard block
 block discarded – undo
243 243
  *     Durée en secondes
244 244
 **/
245 245
 function definir_duree_cookie_session($auteur) {
246
-	$coef = 2;
247
-	if (isset($auteur['cookie'])) {
248
-		if (is_numeric($auteur['cookie'])) {
249
-			$coef = $auteur['cookie'];
250
-		} else {
251
-			$coef = 20;
252
-		}
253
-	}
254
-	return (int)(_RENOUVELLE_ALEA * $coef);
246
+    $coef = 2;
247
+    if (isset($auteur['cookie'])) {
248
+        if (is_numeric($auteur['cookie'])) {
249
+            $coef = $auteur['cookie'];
250
+        } else {
251
+            $coef = 20;
252
+        }
253
+    }
254
+    return (int)(_RENOUVELLE_ALEA * $coef);
255 255
 }
256 256
 
257 257
 /**
@@ -271,90 +271,90 @@  discard block
 block discarded – undo
271 271
  * @return bool|int|null
272 272
  */
273 273
 function verifier_session($change = false) {
274
-	// si pas de cookie, c'est fichu
275
-	if (!isset($_COOKIE['spip_session'])) {
276
-		return false;
277
-	}
278
-
279
-	$fichier_session = "";
280
-
281
-	// est-ce une session anonyme ?
282
-	if (!intval($_COOKIE['spip_session'])) {
283
-		spip_php_session_start();
284
-		if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) {
285
-			return false;
286
-		}
287
-		$GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']];
288
-	} else {
289
-		// Tester avec alea courant
290
-		$fichier_session = fichier_session('alea_ephemere', true);
291
-		if ($fichier_session and @file_exists($fichier_session)) {
292
-			include($fichier_session);
293
-		} else {
294
-			// Sinon, tester avec alea precedent
295
-			$fichier_session = fichier_session('alea_ephemere_ancien', true);
296
-			if (!$fichier_session or !@file_exists($fichier_session)) {
297
-				return false;
298
-			}
299
-
300
-			// Renouveler la session avec l'alea courant
301
-			include($fichier_session);
302
-			spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session");
303
-			spip_unlink($fichier_session);
304
-			ajouter_session($GLOBALS['visiteur_session']);
305
-		}
306
-	}
307
-
308
-	// Compatibilite ascendante : auteur_session est visiteur_session si
309
-	// c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut
310
-	// n'etre qu'identifie, sans aucune authentification).
311
-
312
-	if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) {
313
-		$GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
314
-	}
315
-
316
-
317
-	// Si l'adresse IP change, inc/presentation mettra une balise image
318
-	// avec un URL de rappel demandant a changer le nom de la session.
319
-	// Seul celui qui a l'IP d'origine est rejoue
320
-	// ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
321
-	// sa victime, mais se ferait deconnecter par elle.
322
-	if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) {
323
-		if (!$GLOBALS['visiteur_session']['ip_change']) {
324
-			define('_SESSION_REJOUER', true);
325
-			$GLOBALS['visiteur_session']['ip_change'] = true;
326
-			ajouter_session($GLOBALS['visiteur_session']);
327
-		} else {
328
-			if ($change) {
329
-				spip_log("session non rejouee, vol de cookie ?", "session");
330
-			}
331
-		}
332
-	} else {
333
-		if ($change) {
334
-			spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session");
335
-			if ($fichier_session) {
336
-				spip_unlink($fichier_session);
337
-			}
338
-			$GLOBALS['visiteur_session']['ip_change'] = false;
339
-			unset($_COOKIE['spip_session']);
340
-			ajouter_session($GLOBALS['visiteur_session']);
341
-		}
342
-	}
343
-
344
-	// Si la session a ete initiee il y a trop longtemps, elle est annulee
345
-	if (isset($GLOBALS['visiteur_session'])
346
-		and defined('_AGE_SESSION_MAX')
347
-		and _AGE_SESSION_MAX > 0
348
-		and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX
349
-	) {
350
-		unset($GLOBALS['visiteur_session']);
351
-
352
-		return false;
353
-	}
354
-
355
-	return is_numeric($GLOBALS['visiteur_session']['id_auteur'])
356
-		? $GLOBALS['visiteur_session']['id_auteur']
357
-		: null;
274
+    // si pas de cookie, c'est fichu
275
+    if (!isset($_COOKIE['spip_session'])) {
276
+        return false;
277
+    }
278
+
279
+    $fichier_session = "";
280
+
281
+    // est-ce une session anonyme ?
282
+    if (!intval($_COOKIE['spip_session'])) {
283
+        spip_php_session_start();
284
+        if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) {
285
+            return false;
286
+        }
287
+        $GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']];
288
+    } else {
289
+        // Tester avec alea courant
290
+        $fichier_session = fichier_session('alea_ephemere', true);
291
+        if ($fichier_session and @file_exists($fichier_session)) {
292
+            include($fichier_session);
293
+        } else {
294
+            // Sinon, tester avec alea precedent
295
+            $fichier_session = fichier_session('alea_ephemere_ancien', true);
296
+            if (!$fichier_session or !@file_exists($fichier_session)) {
297
+                return false;
298
+            }
299
+
300
+            // Renouveler la session avec l'alea courant
301
+            include($fichier_session);
302
+            spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session");
303
+            spip_unlink($fichier_session);
304
+            ajouter_session($GLOBALS['visiteur_session']);
305
+        }
306
+    }
307
+
308
+    // Compatibilite ascendante : auteur_session est visiteur_session si
309
+    // c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut
310
+    // n'etre qu'identifie, sans aucune authentification).
311
+
312
+    if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) {
313
+        $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
314
+    }
315
+
316
+
317
+    // Si l'adresse IP change, inc/presentation mettra une balise image
318
+    // avec un URL de rappel demandant a changer le nom de la session.
319
+    // Seul celui qui a l'IP d'origine est rejoue
320
+    // ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
321
+    // sa victime, mais se ferait deconnecter par elle.
322
+    if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) {
323
+        if (!$GLOBALS['visiteur_session']['ip_change']) {
324
+            define('_SESSION_REJOUER', true);
325
+            $GLOBALS['visiteur_session']['ip_change'] = true;
326
+            ajouter_session($GLOBALS['visiteur_session']);
327
+        } else {
328
+            if ($change) {
329
+                spip_log("session non rejouee, vol de cookie ?", "session");
330
+            }
331
+        }
332
+    } else {
333
+        if ($change) {
334
+            spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session");
335
+            if ($fichier_session) {
336
+                spip_unlink($fichier_session);
337
+            }
338
+            $GLOBALS['visiteur_session']['ip_change'] = false;
339
+            unset($_COOKIE['spip_session']);
340
+            ajouter_session($GLOBALS['visiteur_session']);
341
+        }
342
+    }
343
+
344
+    // Si la session a ete initiee il y a trop longtemps, elle est annulee
345
+    if (isset($GLOBALS['visiteur_session'])
346
+        and defined('_AGE_SESSION_MAX')
347
+        and _AGE_SESSION_MAX > 0
348
+        and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX
349
+    ) {
350
+        unset($GLOBALS['visiteur_session']);
351
+
352
+        return false;
353
+    }
354
+
355
+    return is_numeric($GLOBALS['visiteur_session']['id_auteur'])
356
+        ? $GLOBALS['visiteur_session']['id_auteur']
357
+        : null;
358 358
 }
359 359
 
360 360
 /**
@@ -369,7 +369,7 @@  discard block
 block discarded – undo
369 369
  *     Valeur, si trouvée, `null` sinon.
370 370
  */
371 371
 function session_get($nom) {
372
-	return isset($GLOBALS['visiteur_session'][$nom]) ? $GLOBALS['visiteur_session'][$nom] : null;
372
+    return isset($GLOBALS['visiteur_session'][$nom]) ? $GLOBALS['visiteur_session'][$nom] : null;
373 373
 }
374 374
 
375 375
 
@@ -385,32 +385,32 @@  discard block
 block discarded – undo
385 385
  * @return void|array
386 386
  */
387 387
 function session_set($nom, $val = null) {
388
-	static $remove = array();
389
-	static $actualiser_sessions = false;
390
-	if ($nom === false) {
391
-		return $remove;
392
-	}
393
-	if (is_null($val)) {
394
-		// rien a faire
395
-		if (!isset($GLOBALS['visiteur_session'][$nom])) {
396
-			return;
397
-		}
398
-		unset($GLOBALS['visiteur_session'][$nom]);
399
-		$remove[] = $nom;
400
-	} else {
401
-		// On ajoute la valeur dans la globale
402
-		$GLOBALS['visiteur_session'][$nom] = $val;
403
-		if ($remove) {
404
-			$remove = array_diff($remove, array($nom));
405
-		}
406
-	}
407
-	if (!$actualiser_sessions) {
408
-		// il faut creer la session si on en a pas, la premiere fois
409
-		ajouter_session($GLOBALS['visiteur_session']);
410
-		// in register la fonction qui mettra a jour toutes les sessions en fin de hit
411
-		register_shutdown_function('terminer_actualiser_sessions');
412
-		$actualiser_sessions = true;
413
-	}
388
+    static $remove = array();
389
+    static $actualiser_sessions = false;
390
+    if ($nom === false) {
391
+        return $remove;
392
+    }
393
+    if (is_null($val)) {
394
+        // rien a faire
395
+        if (!isset($GLOBALS['visiteur_session'][$nom])) {
396
+            return;
397
+        }
398
+        unset($GLOBALS['visiteur_session'][$nom]);
399
+        $remove[] = $nom;
400
+    } else {
401
+        // On ajoute la valeur dans la globale
402
+        $GLOBALS['visiteur_session'][$nom] = $val;
403
+        if ($remove) {
404
+            $remove = array_diff($remove, array($nom));
405
+        }
406
+    }
407
+    if (!$actualiser_sessions) {
408
+        // il faut creer la session si on en a pas, la premiere fois
409
+        ajouter_session($GLOBALS['visiteur_session']);
410
+        // in register la fonction qui mettra a jour toutes les sessions en fin de hit
411
+        register_shutdown_function('terminer_actualiser_sessions');
412
+        $actualiser_sessions = true;
413
+    }
414 414
 }
415 415
 
416 416
 /**
@@ -419,12 +419,12 @@  discard block
 block discarded – undo
419 419
  * @uses actualiser_sessions()
420 420
  */
421 421
 function terminer_actualiser_sessions() {
422
-	// se remettre dans le dossier de travail au cas ou Apache a change
423
-	chdir(_ROOT_CWD);
424
-	// recuperer les variables a effacer
425
-	$remove = session_set(false);
426
-	// mettre a jour toutes les sessions
427
-	actualiser_sessions($GLOBALS['visiteur_session'], $remove);
422
+    // se remettre dans le dossier de travail au cas ou Apache a change
423
+    chdir(_ROOT_CWD);
424
+    // recuperer les variables a effacer
425
+    $remove = session_set(false);
426
+    // mettre a jour toutes les sessions
427
+    actualiser_sessions($GLOBALS['visiteur_session'], $remove);
428 428
 }
429 429
 
430 430
 
@@ -449,78 +449,78 @@  discard block
 block discarded – undo
449 449
  */
450 450
 function actualiser_sessions($auteur, $supprimer_cles = array()) {
451 451
 
452
-	$id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
453
-	$id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0;
454
-
455
-	// si l'auteur est celui de la session courante, verifier/creer la session si besoin
456
-	$fichier_session_courante = "";
457
-	if ($id_auteur == $id_auteur_courant) {
458
-		$auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
459
-		ajouter_session($auteur);
460
-		if ($id_auteur) {
461
-			$fichier_session_courante = fichier_session('alea_ephemere');
462
-		}
463
-	}
464
-
465
-	// si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees
466
-	if (!$id_auteur) {
467
-		return;
468
-	}
469
-
470
-	// les préférences sont désérialisées, toujours.
471
-	if (isset($auteur['prefs']) and is_string($auteur['prefs'])) {
472
-		$auteur['prefs'] = unserialize($auteur['prefs']);
473
-	}
474
-
475
-	// memoriser l'auteur courant (celui qui modifie la fiche)
476
-	$sauve = $GLOBALS['visiteur_session'];
477
-
478
-	// .. mettre a jour les sessions de l'auteur cible
479
-	// attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire
480
-	// cree par une ecriture concurente d'une session (fichier atomique temporaire)
481
-	$sessions = lister_sessions_auteur($id_auteur);
482
-
483
-	// 1ere passe : lire et fusionner les sessions
484
-	foreach ($sessions as $session) {
485
-		$GLOBALS['visiteur_session'] = array();
486
-		// a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
487
-		if ($session !== $fichier_session_courante
488
-			and @file_exists($session)
489
-		) {
490
-			include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
491
-
492
-			$auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
493
-		}
494
-	}
495
-
496
-	// supprimer les eventuelles cles dont on ne veut plus
497
-	foreach ($supprimer_cles as $cle) {
498
-		unset($auteur[$cle]);
499
-	}
500
-
501
-	$auteur_session = preparer_ecriture_session($auteur);
502
-
503
-	// seconde passe : ecrire les sessions qui ne sont pas a jour
504
-	foreach ($sessions as $session) {
505
-		$GLOBALS['visiteur_session'] = array();
506
-		// a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
507
-		if (@file_exists($session)) {
508
-			include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
509
-
510
-			// est-ce que cette session est a mettre a jour ?
511
-			if ($auteur_session != $GLOBALS['visiteur_session']) {
512
-				ecrire_fichier_session($session, $auteur);
513
-			}
514
-		}
515
-	}
516
-
517
-	if ($id_auteur == $id_auteur_courant) {
518
-		$GLOBALS['visiteur_session'] = $auteur;
519
-		$GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
520
-	} else {
521
-		// restaurer l'auteur courant
522
-		$GLOBALS['visiteur_session'] = $sauve;
523
-	}
452
+    $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
453
+    $id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0;
454
+
455
+    // si l'auteur est celui de la session courante, verifier/creer la session si besoin
456
+    $fichier_session_courante = "";
457
+    if ($id_auteur == $id_auteur_courant) {
458
+        $auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
459
+        ajouter_session($auteur);
460
+        if ($id_auteur) {
461
+            $fichier_session_courante = fichier_session('alea_ephemere');
462
+        }
463
+    }
464
+
465
+    // si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees
466
+    if (!$id_auteur) {
467
+        return;
468
+    }
469
+
470
+    // les préférences sont désérialisées, toujours.
471
+    if (isset($auteur['prefs']) and is_string($auteur['prefs'])) {
472
+        $auteur['prefs'] = unserialize($auteur['prefs']);
473
+    }
474
+
475
+    // memoriser l'auteur courant (celui qui modifie la fiche)
476
+    $sauve = $GLOBALS['visiteur_session'];
477
+
478
+    // .. mettre a jour les sessions de l'auteur cible
479
+    // attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire
480
+    // cree par une ecriture concurente d'une session (fichier atomique temporaire)
481
+    $sessions = lister_sessions_auteur($id_auteur);
482
+
483
+    // 1ere passe : lire et fusionner les sessions
484
+    foreach ($sessions as $session) {
485
+        $GLOBALS['visiteur_session'] = array();
486
+        // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
487
+        if ($session !== $fichier_session_courante
488
+            and @file_exists($session)
489
+        ) {
490
+            include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
491
+
492
+            $auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
493
+        }
494
+    }
495
+
496
+    // supprimer les eventuelles cles dont on ne veut plus
497
+    foreach ($supprimer_cles as $cle) {
498
+        unset($auteur[$cle]);
499
+    }
500
+
501
+    $auteur_session = preparer_ecriture_session($auteur);
502
+
503
+    // seconde passe : ecrire les sessions qui ne sont pas a jour
504
+    foreach ($sessions as $session) {
505
+        $GLOBALS['visiteur_session'] = array();
506
+        // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
507
+        if (@file_exists($session)) {
508
+            include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
509
+
510
+            // est-ce que cette session est a mettre a jour ?
511
+            if ($auteur_session != $GLOBALS['visiteur_session']) {
512
+                ecrire_fichier_session($session, $auteur);
513
+            }
514
+        }
515
+    }
516
+
517
+    if ($id_auteur == $id_auteur_courant) {
518
+        $GLOBALS['visiteur_session'] = $auteur;
519
+        $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
520
+    } else {
521
+        // restaurer l'auteur courant
522
+        $GLOBALS['visiteur_session'] = $sauve;
523
+    }
524 524
 
525 525
 }
526 526
 
@@ -535,46 +535,46 @@  discard block
 block discarded – undo
535 535
  */
536 536
 function lister_sessions_auteur($id_auteur, $nb_max = null) {
537 537
 
538
-	if (is_null($nb_max)) {
539
-		if (!defined('_NB_SESSIONS_MAX')) {
540
-			define('_NB_SESSIONS_MAX', 100);
541
-		}
542
-		$nb_max = _NB_SESSIONS_MAX;
543
-	}
544
-
545
-	// liste des sessions
546
-	$sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
547
-
548
-	// si on en a plus que la limite, supprimer les plus vieilles
549
-	// si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
550
-	if ($id_auteur
551
-		and count($sessions) > $nb_max) {
552
-
553
-		// limiter le nombre de sessions ouvertes par un auteur
554
-		// filemtime sur les sessions
555
-		$sessions = array_flip($sessions);
556
-
557
-		// 1ere passe : lire les filemtime
558
-		foreach ($sessions as $session => $z) {
559
-			if ($d = @filemtime($session)
560
-			) {
561
-				$sessions[$session] = $d;
562
-			} else {
563
-				$sessions[$session] = 0;
564
-			}
565
-		}
566
-
567
-		// les plus anciennes en premier
568
-		asort($sessions);
569
-
570
-		$sessions = array_keys($sessions);
571
-		while (count($sessions) > $nb_max) {
572
-			$session = array_shift($sessions);
573
-			@unlink($session);
574
-		}
575
-	}
576
-
577
-	return $sessions;
538
+    if (is_null($nb_max)) {
539
+        if (!defined('_NB_SESSIONS_MAX')) {
540
+            define('_NB_SESSIONS_MAX', 100);
541
+        }
542
+        $nb_max = _NB_SESSIONS_MAX;
543
+    }
544
+
545
+    // liste des sessions
546
+    $sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
547
+
548
+    // si on en a plus que la limite, supprimer les plus vieilles
549
+    // si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
550
+    if ($id_auteur
551
+        and count($sessions) > $nb_max) {
552
+
553
+        // limiter le nombre de sessions ouvertes par un auteur
554
+        // filemtime sur les sessions
555
+        $sessions = array_flip($sessions);
556
+
557
+        // 1ere passe : lire les filemtime
558
+        foreach ($sessions as $session => $z) {
559
+            if ($d = @filemtime($session)
560
+            ) {
561
+                $sessions[$session] = $d;
562
+            } else {
563
+                $sessions[$session] = 0;
564
+            }
565
+        }
566
+
567
+        // les plus anciennes en premier
568
+        asort($sessions);
569
+
570
+        $sessions = array_keys($sessions);
571
+        while (count($sessions) > $nb_max) {
572
+            $session = array_shift($sessions);
573
+            @unlink($session);
574
+        }
575
+    }
576
+
577
+    return $sessions;
578 578
 }
579 579
 
580 580
 
@@ -588,26 +588,26 @@  discard block
 block discarded – undo
588 588
  * @return array
589 589
  */
590 590
 function preparer_ecriture_session($auteur) {
591
-	$row = $auteur;
592
-
593
-	// ne pas enregistrer ces elements de securite
594
-	// dans le fichier de session
595
-	unset($auteur['pass']);
596
-	unset($auteur['htpass']);
597
-	unset($auteur['low_sec']);
598
-	unset($auteur['alea_actuel']);
599
-	unset($auteur['alea_futur']);
600
-
601
-	$auteur = pipeline('preparer_fichier_session', array('args' => array('row' => $row), 'data' => $auteur));
602
-
603
-	// ne pas enregistrer les valeurs vraiment nulle dans le fichier
604
-	foreach ($auteur as $variable => $valeur) {
605
-		if ($valeur === null) {
606
-			unset($auteur[$variable]);
607
-		}
608
-	}
609
-
610
-	return $auteur;
591
+    $row = $auteur;
592
+
593
+    // ne pas enregistrer ces elements de securite
594
+    // dans le fichier de session
595
+    unset($auteur['pass']);
596
+    unset($auteur['htpass']);
597
+    unset($auteur['low_sec']);
598
+    unset($auteur['alea_actuel']);
599
+    unset($auteur['alea_futur']);
600
+
601
+    $auteur = pipeline('preparer_fichier_session', array('args' => array('row' => $row), 'data' => $auteur));
602
+
603
+    // ne pas enregistrer les valeurs vraiment nulle dans le fichier
604
+    foreach ($auteur as $variable => $valeur) {
605
+        if ($valeur === null) {
606
+            unset($auteur[$variable]);
607
+        }
608
+    }
609
+
610
+    return $auteur;
611 611
 }
612 612
 
613 613
 /**
@@ -619,17 +619,17 @@  discard block
 block discarded – undo
619 619
  */
620 620
 function ecrire_fichier_session($fichier, $auteur) {
621 621
 
622
-	$auteur = preparer_ecriture_session($auteur);
622
+    $auteur = preparer_ecriture_session($auteur);
623 623
 
624
-	// enregistrer les autres donnees du visiteur
625
-	$texte = "<" . "?php\n";
626
-	foreach ($auteur as $var => $val) {
627
-		$texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
628
-			. var_export($val, true) . ";\n";
629
-	}
630
-	$texte .= "?" . ">\n";
624
+    // enregistrer les autres donnees du visiteur
625
+    $texte = "<" . "?php\n";
626
+    foreach ($auteur as $var => $val) {
627
+        $texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
628
+            . var_export($val, true) . ";\n";
629
+    }
630
+    $texte .= "?" . ">\n";
631 631
 
632
-	return ecrire_fichier($fichier, $texte);
632
+    return ecrire_fichier($fichier, $texte);
633 633
 }
634 634
 
635 635
 
@@ -642,23 +642,23 @@  discard block
 block discarded – undo
642 642
  */
643 643
 function fichier_session($alea, $tantpis = false) {
644 644
 
645
-	include_spip('inc/acces');
646
-	charger_aleas();
645
+    include_spip('inc/acces');
646
+    charger_aleas();
647 647
 
648
-	if (empty($GLOBALS['meta'][$alea])) {
649
-		if (!$tantpis) {
650
-			spip_log("fichier session ($tantpis): $alea indisponible", "session");
651
-			include_spip('inc/minipres');
652
-			echo minipres();
653
-		}
648
+    if (empty($GLOBALS['meta'][$alea])) {
649
+        if (!$tantpis) {
650
+            spip_log("fichier session ($tantpis): $alea indisponible", "session");
651
+            include_spip('inc/minipres');
652
+            echo minipres();
653
+        }
654 654
 
655
-		return ''; // echec mais $tanpis
656
-	} else {
657
-		$repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
658
-		$c = $_COOKIE['spip_session'];
655
+        return ''; // echec mais $tanpis
656
+    } else {
657
+        $repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
658
+        $c = $_COOKIE['spip_session'];
659 659
 
660
-		return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
661
-	}
660
+        return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
661
+    }
662 662
 }
663 663
 
664 664
 
@@ -675,7 +675,7 @@  discard block
 block discarded – undo
675 675
  * @return string
676 676
  */
677 677
 function rejouer_session() {
678
-	return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
678
+    return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
679 679
 }
680 680
 
681 681
 
@@ -685,12 +685,12 @@  discard block
 block discarded – undo
685 685
  * @return string
686 686
  */
687 687
 function hash_env() {
688
-	static $res = '';
689
-	if ($res) {
690
-		return $res;
691
-	}
688
+    static $res = '';
689
+    if ($res) {
690
+        return $res;
691
+    }
692 692
 
693
-	return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''));
693
+    return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''));
694 694
 }
695 695
 
696 696
 
@@ -702,11 +702,11 @@  discard block
 block discarded – undo
702 702
  * @return bool True si une session PHP est ouverte.
703 703
  **/
704 704
 function spip_php_session_start() {
705
-	if (!is_php_session_started()) {
706
-		return session_start();
707
-	}
705
+    if (!is_php_session_started()) {
706
+        return session_start();
707
+    }
708 708
 
709
-	return true;
709
+    return true;
710 710
 }
711 711
 
712 712
 /**
@@ -716,9 +716,9 @@  discard block
 block discarded – undo
716 716
  * @return bool true si une session PHP est active
717 717
  **/
718 718
 function is_php_session_started() {
719
-	if (php_sapi_name() !== 'cli') {
720
-		return session_status() === PHP_SESSION_ACTIVE ? true : false;
721
-	}
719
+    if (php_sapi_name() !== 'cli') {
720
+        return session_status() === PHP_SESSION_ACTIVE ? true : false;
721
+    }
722 722
 
723
-	return false;
723
+    return false;
724 724
 }
Please login to merge, or discard this patch.
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
 			$t = time() - (4 * _RENOUVELLE_ALEA);
84 84
 			while (($f = readdir($dir)) !== false) {
85 85
 				if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) {
86
-					$f = _DIR_SESSIONS . $f;
86
+					$f = _DIR_SESSIONS.$f;
87 87
 					if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
88 88
 						spip_unlink($f);
89 89
 					}
@@ -160,9 +160,9 @@  discard block
 block discarded – undo
160 160
 	}
161 161
 
162 162
 	if (!isset($_COOKIE['spip_session'])
163
-		or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
163
+		or !preg_match(',^'.$id_auteur.'_,', $_COOKIE['spip_session'])
164 164
 	) {
165
-		$_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true));
165
+		$_COOKIE['spip_session'] = $id_auteur.'_'.md5(uniqid(rand(), true));
166 166
 	}
167 167
 
168 168
 	// Maintenant on sait qu'on a des choses à écrire
@@ -193,7 +193,7 @@  discard block
 block discarded – undo
193 193
 	} else {
194 194
 		$fichier_session = fichier_session('alea_ephemere');
195 195
 		if (!ecrire_fichier_session($fichier_session, $auteur)) {
196
-			spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS);
196
+			spip_log('Echec ecriture fichier session '.$fichier_session, "session"._LOG_HS);
197 197
 			include_spip('inc/minipres');
198 198
 			echo minipres();
199 199
 			exit;
@@ -206,15 +206,15 @@  discard block
 block discarded – undo
206 206
 	// poser le cookie de session SPIP
207 207
 	include_spip('inc/cookie');
208 208
 	$duree = definir_duree_cookie_session($auteur);
209
-	spip_setcookie( 'spip_session', $_COOKIE['spip_session'], time() + $duree);
209
+	spip_setcookie('spip_session', $_COOKIE['spip_session'], time() + $duree);
210 210
 	spip_log("ajoute session $fichier_session cookie $duree", "session");
211 211
 
212 212
 	// Si on est admin, poser le cookie de correspondance
213 213
 	if (!function_exists('autoriser')) {
214 214
 		include_spip('inc/autoriser');
215 215
 	}
216
-	if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) {
217
-		spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree));
216
+	if (autoriser('ecrire', '', '', $auteur) and _DUREE_COOKIE_ADMIN) {
217
+		spip_setcookie('spip_admin', '@'.$auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree));
218 218
 	} // sinon le supprimer ...
219 219
 	else {
220 220
 		spip_setcookie('spip_admin', '', 1);
@@ -251,7 +251,7 @@  discard block
 block discarded – undo
251 251
 			$coef = 20;
252 252
 		}
253 253
 	}
254
-	return (int)(_RENOUVELLE_ALEA * $coef);
254
+	return (int) (_RENOUVELLE_ALEA * $coef);
255 255
 }
256 256
 
257 257
 /**
@@ -299,7 +299,7 @@  discard block
 block discarded – undo
299 299
 
300 300
 			// Renouveler la session avec l'alea courant
301 301
 			include($fichier_session);
302
-			spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session");
302
+			spip_log('renouvelle session '.$GLOBALS['visiteur_session']['id_auteur'], "session");
303 303
 			spip_unlink($fichier_session);
304 304
 			ajouter_session($GLOBALS['visiteur_session']);
305 305
 		}
@@ -331,7 +331,7 @@  discard block
 block discarded – undo
331 331
 		}
332 332
 	} else {
333 333
 		if ($change) {
334
-			spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session");
334
+			spip_log("rejoue session $fichier_session ".$_COOKIE['spip_session'], "session");
335 335
 			if ($fichier_session) {
336 336
 				spip_unlink($fichier_session);
337 337
 			}
@@ -543,7 +543,7 @@  discard block
 block discarded – undo
543 543
 	}
544 544
 
545 545
 	// liste des sessions
546
-	$sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
546
+	$sessions = preg_files(_DIR_SESSIONS, '/'.$id_auteur.'_.*\.php$');
547 547
 
548 548
 	// si on en a plus que la limite, supprimer les plus vieilles
549 549
 	// si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
@@ -622,12 +622,12 @@  discard block
 block discarded – undo
622 622
 	$auteur = preparer_ecriture_session($auteur);
623 623
 
624 624
 	// enregistrer les autres donnees du visiteur
625
-	$texte = "<" . "?php\n";
625
+	$texte = "<"."?php\n";
626 626
 	foreach ($auteur as $var => $val) {
627
-		$texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
628
-			. var_export($val, true) . ";\n";
627
+		$texte .= '$GLOBALS[\'visiteur_session\']['.var_export($var, true).'] = '
628
+			. var_export($val, true).";\n";
629 629
 	}
630
-	$texte .= "?" . ">\n";
630
+	$texte .= "?".">\n";
631 631
 
632 632
 	return ecrire_fichier($fichier, $texte);
633 633
 }
@@ -657,7 +657,7 @@  discard block
 block discarded – undo
657 657
 		$repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
658 658
 		$c = $_COOKIE['spip_session'];
659 659
 
660
-		return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
660
+		return $repertoire.intval($c).'_'.md5($c.' '.$GLOBALS['meta'][$alea]).'.php';
661 661
 	}
662 662
 }
663 663
 
@@ -675,7 +675,7 @@  discard block
 block discarded – undo
675 675
  * @return string
676 676
  */
677 677
 function rejouer_session() {
678
-	return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
678
+	return '<img src="'.generer_url_action('cookie', 'change_session=oui', true).'" width="0" height="0" alt="" />';
679 679
 }
680 680
 
681 681
 
@@ -690,7 +690,7 @@  discard block
 block discarded – undo
690 690
 		return $res;
691 691
 	}
692 692
 
693
-	return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''));
693
+	return $res = md5($GLOBALS['ip'].(isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''));
694 694
 }
695 695
 
696 696
 
Please login to merge, or discard this patch.
ecrire/inc_version.php 2 patches
Indentation   +193 added lines, -193 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
 /**
@@ -36,8 +36,8 @@  discard block
 block discarded – undo
36 36
 define('_PHP_MIN', '5.4.0');
37 37
 
38 38
 if (!defined('_DIR_RESTREINT_ABS')) {
39
-	/** le nom du repertoire ecrire/ */
40
-	define('_DIR_RESTREINT_ABS', 'ecrire/');
39
+    /** le nom du repertoire ecrire/ */
40
+    define('_DIR_RESTREINT_ABS', 'ecrire/');
41 41
 }
42 42
 
43 43
 /** Chemin relatif pour aller dans ecrire
@@ -57,8 +57,8 @@  discard block
 block discarded – undo
57 57
 
58 58
 // Icones
59 59
 if (!defined('_NOM_IMG_PACK')) {
60
-	/** Nom du dossier images */
61
-	define('_NOM_IMG_PACK', 'images/');
60
+    /** Nom du dossier images */
61
+    define('_NOM_IMG_PACK', 'images/');
62 62
 }
63 63
 /** le chemin http (relatif) vers les images standard */
64 64
 define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
@@ -67,8 +67,8 @@  discard block
 block discarded – undo
67 67
 define('_ROOT_IMG_PACK', dirname(dirname(__FILE__)) . '/prive/' . _NOM_IMG_PACK);
68 68
 
69 69
 if (!defined('_JAVASCRIPT')) {
70
-	/** Nom du repertoire des  bibliotheques JavaScript */
71
-	define('_JAVASCRIPT', 'javascript/');
70
+    /** Nom du repertoire des  bibliotheques JavaScript */
71
+    define('_JAVASCRIPT', 'javascript/');
72 72
 } // utilisable avec #CHEMIN et find_in_path
73 73
 /** le nom du repertoire des  bibliotheques JavaScript du prive */
74 74
 define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
@@ -78,46 +78,46 @@  discard block
 block discarded – undo
78 78
 # mais on peut les mettre ailleurs et changer completement les noms
79 79
 
80 80
 if (!defined('_NOM_TEMPORAIRES_INACCESSIBLES')) {
81
-	/** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */
82
-	define('_NOM_TEMPORAIRES_INACCESSIBLES', "tmp/");
81
+    /** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */
82
+    define('_NOM_TEMPORAIRES_INACCESSIBLES', "tmp/");
83 83
 }
84 84
 if (!defined('_NOM_TEMPORAIRES_ACCESSIBLES')) {
85
-	/** Nom du repertoire des fichiers Temporaires Accessibles par http:// */
86
-	define('_NOM_TEMPORAIRES_ACCESSIBLES', "local/");
85
+    /** Nom du repertoire des fichiers Temporaires Accessibles par http:// */
86
+    define('_NOM_TEMPORAIRES_ACCESSIBLES', "local/");
87 87
 }
88 88
 if (!defined('_NOM_PERMANENTS_INACCESSIBLES')) {
89
-	/** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */
90
-	define('_NOM_PERMANENTS_INACCESSIBLES', "config/");
89
+    /** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */
90
+    define('_NOM_PERMANENTS_INACCESSIBLES', "config/");
91 91
 }
92 92
 if (!defined('_NOM_PERMANENTS_ACCESSIBLES')) {
93
-	/** Nom du repertoire des fichiers Permanents Accessibles par http:// */
94
-	define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/");
93
+    /** Nom du repertoire des fichiers Permanents Accessibles par http:// */
94
+    define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/");
95 95
 }
96 96
 
97 97
 
98 98
 /** Le nom du fichier de personnalisation */
99 99
 if (!defined('_NOM_CONFIG')) {
100
-	define('_NOM_CONFIG', 'mes_options');
100
+    define('_NOM_CONFIG', 'mes_options');
101 101
 }
102 102
 
103 103
 // Son emplacement absolu si on le trouve
104 104
 if (@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php')
105
-	or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php'))
105
+    or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php'))
106 106
 ) {
107
-	/** Emplacement absolu du fichier d'option */
108
-	define('_FILE_OPTIONS', $f);
107
+    /** Emplacement absolu du fichier d'option */
108
+    define('_FILE_OPTIONS', $f);
109 109
 } else {
110
-	define('_FILE_OPTIONS', '');
110
+    define('_FILE_OPTIONS', '');
111 111
 }
112 112
 
113 113
 if (!defined('MODULES_IDIOMES')) {
114
-	/**
115
-	 * Modules par défaut pour la traduction.
116
-	 *
117
-	 * Constante utilisée par le compilateur et le décompilateur
118
-	 * sa valeur etant traitée par inc_traduire_dist
119
-	 */
120
-	define('MODULES_IDIOMES', 'public|spip|ecrire');
114
+    /**
115
+     * Modules par défaut pour la traduction.
116
+     *
117
+     * Constante utilisée par le compilateur et le décompilateur
118
+     * sa valeur etant traitée par inc_traduire_dist
119
+     */
120
+    define('MODULES_IDIOMES', 'public|spip|ecrire');
121 121
 }
122 122
 
123 123
 // *** Fin des define *** //
@@ -125,9 +125,9 @@  discard block
 block discarded – undo
125 125
 
126 126
 // Inclure l'ecran de securite
127 127
 if (!defined('_ECRAN_SECURITE')
128
-	and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
128
+    and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
129 129
 ) {
130
-	include $f;
130
+    include $f;
131 131
 }
132 132
 
133 133
 
@@ -135,17 +135,17 @@  discard block
 block discarded – undo
135 135
  * Détecteur de robot d'indexation
136 136
  */
137 137
 if (!defined('_IS_BOT')) {
138
-	define('_IS_BOT',
139
-		isset($_SERVER['HTTP_USER_AGENT'])
140
-		and preg_match(
141
-			// mots generiques
142
-			',bot|slurp|crawler|spider|webvac|yandex|'
143
-			// MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot
144
-			. 'MSIE 6\.0|'
145
-			// UA plus cibles
146
-			. '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
147
-			. ',i', (string)$_SERVER['HTTP_USER_AGENT'])
148
-	);
138
+    define('_IS_BOT',
139
+        isset($_SERVER['HTTP_USER_AGENT'])
140
+        and preg_match(
141
+            // mots generiques
142
+            ',bot|slurp|crawler|spider|webvac|yandex|'
143
+            // MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot
144
+            . 'MSIE 6\.0|'
145
+            // UA plus cibles
146
+            . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
147
+            . ',i', (string)$_SERVER['HTTP_USER_AGENT'])
148
+    );
149 149
 }
150 150
 
151 151
 // *** Parametrage par defaut de SPIP ***
@@ -157,62 +157,62 @@  discard block
 block discarded – undo
157 157
 // Ne pas les rendre indefinies.
158 158
 
159 159
 global
160
-	$nombre_de_logs,
161
-	$taille_des_logs,
162
-	$table_prefix,
163
-	$cookie_prefix,
164
-	$dossier_squelettes,
165
-	$filtrer_javascript,
166
-	$type_urls,
167
-	$debut_date_publication,
168
-	$ip,
169
-	$mysql_rappel_connexion,
170
-	$mysql_rappel_nom_base,
171
-	$test_i18n,
172
-	$ignore_auth_http,
173
-	$ignore_remote_user,
174
-	$derniere_modif_invalide,
175
-	$quota_cache,
176
-	$home_server,
177
-	$help_server,
178
-	$url_glossaire_externe,
179
-	$tex_server,
180
-	$traiter_math,
181
-	$xhtml,
182
-	$xml_indent,
183
-	$source_vignettes,
184
-	$formats_logos,
185
-	$controler_dates_rss,
186
-	$spip_pipeline,
187
-	$spip_matrice,
188
-	$plugins,
189
-	$surcharges,
190
-	$exceptions_des_tables,
191
-	$tables_principales,
192
-	$table_des_tables,
193
-	$tables_auxiliaires,
194
-	$table_primary,
195
-	$table_date,
196
-	$table_titre,
197
-	$tables_jointures,
198
-	$liste_des_statuts,
199
-	$liste_des_etats,
200
-	$liste_des_authentifications,
201
-	$spip_version_branche,
202
-	$spip_version_code,
203
-	$spip_version_base,
204
-	$spip_sql_version,
205
-	$spip_version_affichee,
206
-	$visiteur_session,
207
-	$auteur_session,
208
-	$connect_statut,
209
-	$connect_toutes_rubriques,
210
-	$hash_recherche,
211
-	$hash_recherche_strict,
212
-	$ldap_present,
213
-	$meta,
214
-	$connect_id_rubrique,
215
-	$puce;
160
+    $nombre_de_logs,
161
+    $taille_des_logs,
162
+    $table_prefix,
163
+    $cookie_prefix,
164
+    $dossier_squelettes,
165
+    $filtrer_javascript,
166
+    $type_urls,
167
+    $debut_date_publication,
168
+    $ip,
169
+    $mysql_rappel_connexion,
170
+    $mysql_rappel_nom_base,
171
+    $test_i18n,
172
+    $ignore_auth_http,
173
+    $ignore_remote_user,
174
+    $derniere_modif_invalide,
175
+    $quota_cache,
176
+    $home_server,
177
+    $help_server,
178
+    $url_glossaire_externe,
179
+    $tex_server,
180
+    $traiter_math,
181
+    $xhtml,
182
+    $xml_indent,
183
+    $source_vignettes,
184
+    $formats_logos,
185
+    $controler_dates_rss,
186
+    $spip_pipeline,
187
+    $spip_matrice,
188
+    $plugins,
189
+    $surcharges,
190
+    $exceptions_des_tables,
191
+    $tables_principales,
192
+    $table_des_tables,
193
+    $tables_auxiliaires,
194
+    $table_primary,
195
+    $table_date,
196
+    $table_titre,
197
+    $tables_jointures,
198
+    $liste_des_statuts,
199
+    $liste_des_etats,
200
+    $liste_des_authentifications,
201
+    $spip_version_branche,
202
+    $spip_version_code,
203
+    $spip_version_base,
204
+    $spip_sql_version,
205
+    $spip_version_affichee,
206
+    $visiteur_session,
207
+    $auteur_session,
208
+    $connect_statut,
209
+    $connect_toutes_rubriques,
210
+    $hash_recherche,
211
+    $hash_recherche_strict,
212
+    $ldap_present,
213
+    $meta,
214
+    $connect_id_rubrique,
215
+    $puce;
216 216
 
217 217
 # comment on logge, defaut 4 tmp/spip.log de 100k, 0 ou 0 suppriment le log
218 218
 $nombre_de_logs = 4;
@@ -267,48 +267,48 @@  discard block
 block discarded – undo
267 267
 // Prendre en compte les entetes HTTP_X_FORWARDED_XX
268 268
 //
269 269
 if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){
270
-	if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
271
-		$_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST'];
272
-	}
273
-	if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
274
-		$_SERVER['HTTP_X_FORWARDED_PORT'] = 443;
275
-	}
270
+    if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
271
+        $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST'];
272
+    }
273
+    if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
274
+        $_SERVER['HTTP_X_FORWARDED_PORT'] = 443;
275
+    }
276 276
 }
277 277
 if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])){
278
-	if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])){
279
-		$_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
280
-		if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){
281
-			$_SERVER['HTTPS'] = 'on';
282
-			if (isset($_SERVER['REQUEST_SCHEME'])) {
283
-				$_SERVER['REQUEST_SCHEME'] = 'https';
284
-			}
285
-		}
286
-	}
287
-	$host = $_SERVER['HTTP_X_FORWARDED_HOST'];
288
-	if (strpos($host,',')!==false){
289
-		$h = explode(',',$host);
290
-		$host = trim(reset($h));
291
-	}
292
-	// securite sur le contenu de l'entete
293
-	$host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________');
294
-	$_SERVER['HTTP_HOST'] = $host;
278
+    if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])){
279
+        $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
280
+        if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){
281
+            $_SERVER['HTTPS'] = 'on';
282
+            if (isset($_SERVER['REQUEST_SCHEME'])) {
283
+                $_SERVER['REQUEST_SCHEME'] = 'https';
284
+            }
285
+        }
286
+    }
287
+    $host = $_SERVER['HTTP_X_FORWARDED_HOST'];
288
+    if (strpos($host,',')!==false){
289
+        $h = explode(',',$host);
290
+        $host = trim(reset($h));
291
+    }
292
+    // securite sur le contenu de l'entete
293
+    $host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________');
294
+    $_SERVER['HTTP_HOST'] = $host;
295 295
 }
296 296
 //
297 297
 // On note le numero IP du client dans la variable $ip
298 298
 //
299 299
 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
300
-	$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
301
-	if (strpos($ip,',')!==false){
302
-		$ip = explode(',',$ip);
303
-		$ip = reset($ip);
304
-	}
305
-	// ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost
306
-	if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']==='127.0.0.1'){
307
-		$_SERVER['REMOTE_ADDR'] = $ip;
308
-	}
300
+    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
301
+    if (strpos($ip,',')!==false){
302
+        $ip = explode(',',$ip);
303
+        $ip = reset($ip);
304
+    }
305
+    // ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost
306
+    if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']==='127.0.0.1'){
307
+        $_SERVER['REMOTE_ADDR'] = $ip;
308
+    }
309 309
 }
310 310
 if (isset($_SERVER['REMOTE_ADDR'])) {
311
-	$ip = $_SERVER['REMOTE_ADDR'];
311
+    $ip = $_SERVER['REMOTE_ADDR'];
312 312
 }
313 313
 
314 314
 // Pour renforcer la privacy, decommentez la ligne ci-dessous (ou recopiez-la
@@ -393,24 +393,24 @@  discard block
 block discarded – undo
393 393
 
394 394
 // Liste des statuts.
395 395
 $liste_des_statuts = array(
396
-	"info_administrateurs" => '0minirezo',
397
-	"info_redacteurs" => '1comite',
398
-	"info_visiteurs" => '6forum',
399
-	"texte_statut_poubelle" => '5poubelle'
396
+    "info_administrateurs" => '0minirezo',
397
+    "info_redacteurs" => '1comite',
398
+    "info_visiteurs" => '6forum',
399
+    "texte_statut_poubelle" => '5poubelle'
400 400
 );
401 401
 
402 402
 $liste_des_etats = array(
403
-	'texte_statut_en_cours_redaction' => 'prepa',
404
-	'texte_statut_propose_evaluation' => 'prop',
405
-	'texte_statut_publie' => 'publie',
406
-	'texte_statut_poubelle' => 'poubelle',
407
-	'texte_statut_refuse' => 'refuse'
403
+    'texte_statut_en_cours_redaction' => 'prepa',
404
+    'texte_statut_propose_evaluation' => 'prop',
405
+    'texte_statut_publie' => 'publie',
406
+    'texte_statut_poubelle' => 'poubelle',
407
+    'texte_statut_refuse' => 'refuse'
408 408
 );
409 409
 
410 410
 // liste des methodes d'authentifications
411 411
 $liste_des_authentifications = array(
412
-	'spip' => 'spip',
413
-	'ldap' => 'ldap'
412
+    'spip' => 'spip',
413
+    'ldap' => 'ldap'
414 414
 );
415 415
 
416 416
 // Experimental : pour supprimer systematiquement l'affichage des numeros
@@ -457,12 +457,12 @@  discard block
 block discarded – undo
457 457
 // Definition personnelles eventuelles
458 458
 
459 459
 if (_FILE_OPTIONS) {
460
-	include_once _FILE_OPTIONS;
460
+    include_once _FILE_OPTIONS;
461 461
 }
462 462
 
463 463
 if (!defined('SPIP_ERREUR_REPORT')) {
464
-	/** Masquer les warning */
465
-	define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED);
464
+    /** Masquer les warning */
465
+    define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED);
466 466
 }
467 467
 error_reporting(SPIP_ERREUR_REPORT);
468 468
 
@@ -475,10 +475,10 @@  discard block
 block discarded – undo
475 475
 // ===> on execute en neutralisant les messages d'erreur
476 476
 
477 477
 spip_initialisation_core(
478
-	(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
479
-	(_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
480
-	(_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
481
-	(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
478
+    (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
479
+    (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
480
+    (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
481
+    (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
482 482
 );
483 483
 
484 484
 
@@ -488,69 +488,69 @@  discard block
 block discarded – undo
488 488
 // donc il faut avoir tout fini ici avant de charger les plugins
489 489
 
490 490
 if (@is_readable(_CACHE_PLUGINS_OPT) and @is_readable(_CACHE_PLUGINS_PATH)) {
491
-	// chargement optimise precompile
492
-	include_once(_CACHE_PLUGINS_OPT);
491
+    // chargement optimise precompile
492
+    include_once(_CACHE_PLUGINS_OPT);
493 493
 } else {
494
-	spip_initialisation_suite();
495
-	include_spip('inc/plugin');
496
-	// generer les fichiers php precompiles
497
-	// de chargement des plugins et des pipelines
498
-	actualise_plugins_actifs();
494
+    spip_initialisation_suite();
495
+    include_spip('inc/plugin');
496
+    // generer les fichiers php precompiles
497
+    // de chargement des plugins et des pipelines
498
+    actualise_plugins_actifs();
499 499
 }
500 500
 
501 501
 // Initialisations non critiques surchargeables par les plugins
502 502
 spip_initialisation_suite();
503 503
 
504 504
 if (!defined('_LOG_FILTRE_GRAVITE')) {
505
-	/** niveau maxi d'enregistrement des logs */
506
-	define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE);
505
+    /** niveau maxi d'enregistrement des logs */
506
+    define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE);
507 507
 }
508 508
 
509 509
 if (!defined('_OUTILS_DEVELOPPEURS')) {
510
-	/** Activer des outils pour développeurs ? */
511
-	define('_OUTILS_DEVELOPPEURS', false);
510
+    /** Activer des outils pour développeurs ? */
511
+    define('_OUTILS_DEVELOPPEURS', false);
512 512
 }
513 513
 
514 514
 // charger systematiquement inc/autoriser dans l'espace restreint
515 515
 if (test_espace_prive()) {
516
-	include_spip('inc/autoriser');
516
+    include_spip('inc/autoriser');
517 517
 }
518 518
 //
519 519
 // Installer Spip si pas installe... sauf si justement on est en train
520 520
 //
521 521
 if (!(_FILE_CONNECT
522
-	or autoriser_sans_cookie(_request('exec'))
523
-	or _request('action') == 'cookie'
524
-	or _request('action') == 'converser'
525
-	or _request('action') == 'test_dirs')
522
+    or autoriser_sans_cookie(_request('exec'))
523
+    or _request('action') == 'cookie'
524
+    or _request('action') == 'converser'
525
+    or _request('action') == 'test_dirs')
526 526
 ) {
527 527
 
528
-	// Si on peut installer, on lance illico
529
-	if (test_espace_prive()) {
530
-		include_spip('inc/headers');
531
-		redirige_url_ecrire("install");
532
-	} else {
533
-		// Si on est dans le site public, dire que qq s'en occupe
534
-		include_spip('inc/minipres');
535
-		utiliser_langue_visiteur();
536
-		echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . "</p>");
537
-		exit;
538
-	}
539
-	// autrement c'est une install ad hoc (spikini...), on sait pas faire
528
+    // Si on peut installer, on lance illico
529
+    if (test_espace_prive()) {
530
+        include_spip('inc/headers');
531
+        redirige_url_ecrire("install");
532
+    } else {
533
+        // Si on est dans le site public, dire que qq s'en occupe
534
+        include_spip('inc/minipres');
535
+        utiliser_langue_visiteur();
536
+        echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . "</p>");
537
+        exit;
538
+    }
539
+    // autrement c'est une install ad hoc (spikini...), on sait pas faire
540 540
 }
541 541
 
542 542
 // memoriser un tri sessionne eventuel
543 543
 if (isset($_REQUEST['var_memotri'])
544
-	and $t = $_REQUEST['var_memotri']
545
-	and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0)
544
+    and $t = $_REQUEST['var_memotri']
545
+    and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0)
546 546
 ) {
547
-	if (!function_exists('session_set')) {
548
-		include_spip('inc/session');
549
-	}
550
-	$t = preg_replace(",\W,","_", $t);
551
-	if ($v = _request($t)) {
552
-		session_set($t, $v);
553
-	}
547
+    if (!function_exists('session_set')) {
548
+        include_spip('inc/session');
549
+    }
550
+    $t = preg_replace(",\W,","_", $t);
551
+    if ($v = _request($t)) {
552
+        session_set($t, $v);
553
+    }
554 554
 }
555 555
 
556 556
 /**
@@ -560,17 +560,17 @@  discard block
 block discarded – undo
560 560
  * La globale $spip_header_silencieux permet de rendre le header minimal pour raisons de securite
561 561
  */
562 562
 if (!defined('_HEADER_COMPOSED_BY')) {
563
-	define('_HEADER_COMPOSED_BY', "Composed-By: SPIP");
563
+    define('_HEADER_COMPOSED_BY', "Composed-By: SPIP");
564 564
 }
565 565
 if (!headers_sent() and _HEADER_COMPOSED_BY) {
566
-	header("Vary: Cookie, Accept-Encoding");
567
-	if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) {
568
-		include_spip('inc/filtres_mini');
569
-		header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . "config.txt"));
570
-	} else {
571
-		// header minimal
572
-		header(_HEADER_COMPOSED_BY . " @ www.spip.net");
573
-	}
566
+    header("Vary: Cookie, Accept-Encoding");
567
+    if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) {
568
+        include_spip('inc/filtres_mini');
569
+        header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . "config.txt"));
570
+    } else {
571
+        // header minimal
572
+        header(_HEADER_COMPOSED_BY . " @ www.spip.net");
573
+    }
574 574
 }
575 575
 
576 576
 $methode = (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : ((php_sapi_name() == 'cli') ? 'cli' : ''));
Please login to merge, or discard this patch.
Spacing   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -49,11 +49,11 @@  discard block
 block discarded – undo
49 49
 define('_DIR_RACINE', _DIR_RESTREINT ? '' : '../');
50 50
 
51 51
 /** chemin absolu vers la racine */
52
-define('_ROOT_RACINE', dirname(dirname(__FILE__)) . '/');
52
+define('_ROOT_RACINE', dirname(dirname(__FILE__)).'/');
53 53
 /** chemin absolu vers le repertoire de travail */
54
-define('_ROOT_CWD', getcwd() . '/');
54
+define('_ROOT_CWD', getcwd().'/');
55 55
 /** chemin absolu vers ecrire */
56
-define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT);
56
+define('_ROOT_RESTREINT', _ROOT_CWD._DIR_RESTREINT);
57 57
 
58 58
 // Icones
59 59
 if (!defined('_NOM_IMG_PACK')) {
@@ -61,17 +61,17 @@  discard block
 block discarded – undo
61 61
 	define('_NOM_IMG_PACK', 'images/');
62 62
 }
63 63
 /** le chemin http (relatif) vers les images standard */
64
-define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
64
+define('_DIR_IMG_PACK', (_DIR_RACINE.'prive/'._NOM_IMG_PACK));
65 65
 
66 66
 /** le chemin php (absolu) vers les images standard (pour hebergement centralise) */
67
-define('_ROOT_IMG_PACK', dirname(dirname(__FILE__)) . '/prive/' . _NOM_IMG_PACK);
67
+define('_ROOT_IMG_PACK', dirname(dirname(__FILE__)).'/prive/'._NOM_IMG_PACK);
68 68
 
69 69
 if (!defined('_JAVASCRIPT')) {
70 70
 	/** Nom du repertoire des  bibliotheques JavaScript */
71 71
 	define('_JAVASCRIPT', 'javascript/');
72 72
 } // utilisable avec #CHEMIN et find_in_path
73 73
 /** le nom du repertoire des  bibliotheques JavaScript du prive */
74
-define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
74
+define('_DIR_JAVASCRIPT', (_DIR_RACINE.'prive/'._JAVASCRIPT));
75 75
 
76 76
 # Le nom des 4 repertoires modifiables par les scripts lances par httpd
77 77
 # Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas)
@@ -101,8 +101,8 @@  discard block
 block discarded – undo
101 101
 }
102 102
 
103 103
 // Son emplacement absolu si on le trouve
104
-if (@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php')
105
-	or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php'))
104
+if (@file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php')
105
+	or (@file_exists($f = _ROOT_RESTREINT._NOM_CONFIG.'.php'))
106 106
 ) {
107 107
 	/** Emplacement absolu du fichier d'option */
108 108
 	define('_FILE_OPTIONS', $f);
@@ -125,7 +125,7 @@  discard block
 block discarded – undo
125 125
 
126 126
 // Inclure l'ecran de securite
127 127
 if (!defined('_ECRAN_SECURITE')
128
-	and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
128
+	and @file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES.'ecran_securite.php')
129 129
 ) {
130 130
 	include $f;
131 131
 }
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 			. 'MSIE 6\.0|'
145 145
 			// UA plus cibles
146 146
 			. '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
147
-			. ',i', (string)$_SERVER['HTTP_USER_AGENT'])
147
+			. ',i', (string) $_SERVER['HTTP_USER_AGENT'])
148 148
 	);
149 149
 }
150 150
 
@@ -266,7 +266,7 @@  discard block
 block discarded – undo
266 266
 //
267 267
 // Prendre en compte les entetes HTTP_X_FORWARDED_XX
268 268
 //
269
-if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){
269
+if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
270 270
 	if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
271 271
 		$_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST'];
272 272
 	}
@@ -274,10 +274,10 @@  discard block
 block discarded – undo
274 274
 		$_SERVER['HTTP_X_FORWARDED_PORT'] = 443;
275 275
 	}
276 276
 }
277
-if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])){
278
-	if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])){
277
+if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
278
+	if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) {
279 279
 		$_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
280
-		if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO']==='https'){
280
+		if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
281 281
 			$_SERVER['HTTPS'] = 'on';
282 282
 			if (isset($_SERVER['REQUEST_SCHEME'])) {
283 283
 				$_SERVER['REQUEST_SCHEME'] = 'https';
@@ -285,8 +285,8 @@  discard block
 block discarded – undo
285 285
 		}
286 286
 	}
287 287
 	$host = $_SERVER['HTTP_X_FORWARDED_HOST'];
288
-	if (strpos($host,',')!==false){
289
-		$h = explode(',',$host);
288
+	if (strpos($host, ',') !== false) {
289
+		$h = explode(',', $host);
290 290
 		$host = trim(reset($h));
291 291
 	}
292 292
 	// securite sur le contenu de l'entete
@@ -298,12 +298,12 @@  discard block
 block discarded – undo
298 298
 //
299 299
 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
300 300
 	$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
301
-	if (strpos($ip,',')!==false){
302
-		$ip = explode(',',$ip);
301
+	if (strpos($ip, ',') !== false) {
302
+		$ip = explode(',', $ip);
303 303
 		$ip = reset($ip);
304 304
 	}
305 305
 	// ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost
306
-	if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']==='127.0.0.1'){
306
+	if (isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
307 307
 		$_SERVER['REMOTE_ADDR'] = $ip;
308 308
 	}
309 309
 }
@@ -376,7 +376,7 @@  discard block
 block discarded – undo
376 376
 # la matrice standard (fichiers definissant les fonctions a inclure)
377 377
 $spip_matrice = array();
378 378
 # les plugins a activer
379
-$plugins = array();  // voir le contenu du repertoire /plugins/
379
+$plugins = array(); // voir le contenu du repertoire /plugins/
380 380
 # les surcharges de include_spip()
381 381
 $surcharges = array(); // format 'inc_truc' => '/plugins/chose/inc_truc2.php'
382 382
 
@@ -427,7 +427,7 @@  discard block
 block discarded – undo
427 427
 $spip_version_branche = "3.3.0-dev";
428 428
 // cette version dev accepte tous les plugins compatible avec la version ci-dessous
429 429
 // a supprimer en phase beta/rc/release
430
-define('_DEV_VERSION_SPIP_COMPAT',"3.2.99");
430
+define('_DEV_VERSION_SPIP_COMPAT', "3.2.99");
431 431
 // version des signatures de fonctions PHP
432 432
 // (= numero SVN de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes)
433 433
 $spip_version_code = 22653;
@@ -451,8 +451,8 @@  discard block
 block discarded – undo
451 451
 //
452 452
 // Charger les fonctions liees aux serveurs Http et Sql.
453 453
 //
454
-require_once _ROOT_RESTREINT . 'inc/utils.php';
455
-require_once _ROOT_RESTREINT . 'base/connect_sql.php';
454
+require_once _ROOT_RESTREINT.'inc/utils.php';
455
+require_once _ROOT_RESTREINT.'base/connect_sql.php';
456 456
 
457 457
 // Definition personnelles eventuelles
458 458
 
@@ -475,10 +475,10 @@  discard block
 block discarded – undo
475 475
 // ===> on execute en neutralisant les messages d'erreur
476 476
 
477 477
 spip_initialisation_core(
478
-	(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
479
-	(_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
480
-	(_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
481
-	(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
478
+	(_DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES),
479
+	(_DIR_RACINE._NOM_PERMANENTS_ACCESSIBLES),
480
+	(_DIR_RACINE._NOM_TEMPORAIRES_INACCESSIBLES),
481
+	(_DIR_RACINE._NOM_TEMPORAIRES_ACCESSIBLES)
482 482
 );
483 483
 
484 484
 
@@ -533,7 +533,7 @@  discard block
 block discarded – undo
533 533
 		// Si on est dans le site public, dire que qq s'en occupe
534 534
 		include_spip('inc/minipres');
535 535
 		utiliser_langue_visiteur();
536
-		echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . "</p>");
536
+		echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>"._T('info_travaux_texte')."</p>");
537 537
 		exit;
538 538
 	}
539 539
 	// autrement c'est une install ad hoc (spikini...), on sait pas faire
@@ -547,7 +547,7 @@  discard block
 block discarded – undo
547 547
 	if (!function_exists('session_set')) {
548 548
 		include_spip('inc/session');
549 549
 	}
550
-	$t = preg_replace(",\W,","_", $t);
550
+	$t = preg_replace(",\W,", "_", $t);
551 551
 	if ($v = _request($t)) {
552 552
 		session_set($t, $v);
553 553
 	}
@@ -566,12 +566,12 @@  discard block
 block discarded – undo
566 566
 	header("Vary: Cookie, Accept-Encoding");
567 567
 	if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) {
568 568
 		include_spip('inc/filtres_mini');
569
-		header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . "config.txt"));
569
+		header(_HEADER_COMPOSED_BY." $spip_version_affichee @ www.spip.net + ".url_absolue(_DIR_VAR."config.txt"));
570 570
 	} else {
571 571
 		// header minimal
572
-		header(_HEADER_COMPOSED_BY . " @ www.spip.net");
572
+		header(_HEADER_COMPOSED_BY." @ www.spip.net");
573 573
 	}
574 574
 }
575 575
 
576 576
 $methode = (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : ((php_sapi_name() == 'cli') ? 'cli' : ''));
577
-spip_log($methode . ' ' . self() . ' - ' . _FILE_CONNECT, _LOG_DEBUG);
577
+spip_log($methode.' '.self().' - '._FILE_CONNECT, _LOG_DEBUG);
Please login to merge, or discard this patch.