source: spip-zone/_core_/plugins/grenier/inc/php3.php @ 93641

Last change on this file since 93641 was 93641, checked in by marcimat@…, 5 years ago

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

File size: 3.2 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined('_ECRIRE_INC_VERSION')) return;
14
15// Gestion ou simulation du register_globals a 'On' (PHP < 4.1.x)
16// Code a l'agonie, heureusement.
17// NB: c'est une fonction de maniere a ne pas pourrir $GLOBALS
18// http://code.spip.net/@spip_register_globals
19function spip_register_globals($type = '') {
20
21        spip_log("spip_register_globals($type)");
22
23        // Liste des variables dont on refuse qu'elles puissent provenir du client
24        $refuse_gpc = array(
25                # inc-public
26                'fond', 'delais' /*,
27
28                # ecrire/inc_auth (ceux-ci sont bien verifies dans $_SERVER)
29                'REMOTE_USER',
30                'PHP_AUTH_USER', 'PHP_AUTH_PW'
31                */
32        );
33
34        // Liste des variables (contexte) dont on refuse qu'elles soient cookie
35        // (histoire que personne ne vienne fausser le cache)
36        $refuse_c = array(
37                # inc-calcul
38                'id_parent', 'id_rubrique', 'id_article',
39                'id_auteur', 'id_breve', 'id_forum', 'id_secteur',
40                'id_syndic', 'id_syndic_article', 'id_mot', 'id_groupe',
41                'id_document', 'date', 'lang',
42        // et celles relatives aux raccourcis (cf inc/texte)
43                'class_spip', 'class_spip_plus',
44                'toujours_paragrapher', 'ligne_horizontale',
45                'spip_raccourcis_typo',
46                'puce', 'puce_prive', 'puce_rtl', 'puce_prive_rtl',
47                'debut_intertitre', 'fin_intertitre',
48                'debut_gras', 'fin_gras', 'debut_italique', 'fin_italique',
49                'ouvre_note', 'ferme_note', 'les_notes', 'compt_note',
50                'ouvre_ref', 'ferme_ref'
51        );
52
53        // Si les variables sont passees en global par le serveur, il faut
54        // faire quelques verifications de base
55        if ($type) {
56                foreach ($refuse_gpc as $var) {
57                        if (isset($GLOBALS[$var])) {
58                                if (
59                                // demande par le client
60                                $_REQUEST[$var] !== null
61                                // et pas modifie par les fichiers d'appel
62                                and $GLOBALS[$var] == $_REQUEST[$var]
63                                ) // Alors on ne sait pas si c'est un hack
64                                        die("register_globals: $var interdite");
65                        }
66                }
67                foreach ($refuse_c as $var) {
68                        if (isset($GLOBALS[$var])) {
69                                if (
70                                isset($_COOKIE[$var])
71                                and $_COOKIE[$var] == $GLOBALS[$var]
72                                )
73                                        define('spip_interdire_cache', true);
74                        }
75                }
76        }
77
78        // sinon il faut les passer nous-memes, a l'exception des interdites.
79        // (A changer en une liste des variables admissibles...)
80        else {
81                foreach (array('_SERVER', '_COOKIE', '_POST', '_GET') as $_table) {
82                        foreach ($GLOBALS[$_table] as $var => $val) {
83                                if (!isset($GLOBALS[$var]) # indispensable securite
84                                and isset($GLOBALS[$_table][$var])
85                                and ($_table == '_SERVER' or !in_array($var, $refuse_gpc))
86                                and ($_table <> '_COOKIE' or !in_array($var, $refuse_c)))
87                                        $GLOBALS[$var] = $val;
88                        }
89                }
90        }
91
92}
Note: See TracBrowser for help on using the repository browser.