GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — 2.2 ( 8999d4...f4c653 )
by Vermeulen
02:34
created

global.php ➔ verifTypeData()   D

Complexity

Conditions 10
Paths 16

Size

Total Lines 42
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
cc 10
eloc 17
c 2
b 0
f 1
nc 16
nop 1
dl 0
loc 42
rs 4.8196

How to fix   Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
/**
3
 * Toutes les fonctions de base utilisé un peu partout dans les scripts
4
 * @author Vermeulen Maxime <[email protected]>
5
 * @package bfw
6
 */
7
8
/**
9
 * Permet d'hasher un mot de passe
10
 * 
11
 * @param string $val : le mot de passe en clair
12
 * 
13
 * @return string le mot de passe hashé
14
 */
15
function hashage($val)
16
{
17
    return substr(hash('sha256', md5($val)), 0, 32);
18
}
19
20
/**
21
 * Permet de sécuriser une variable
22
 * 
23
 * @param mixed $string       : la variable à sécuriser (les types string, nombre et array sont géré)
24
 * @param bool  $html         : (default: false) mettre à true pour que la variable ne subisse pas un htmlentities()
25
 * @param bool  $null_cslashe : (default: false) mettre à true si on agit sur le nom d'une variable car par exemple "cou_cou" devient "cou\_cou"
26
 * 
27
 * @return mixed
28
 */
29
function secure($string, $html = false, $null_cslashe = false)
30
{
31
    /*
32
      A propos de $null_cslashes ;
33
      A désactivé si on le fait sur le nom de variable, car sur un nom comme coucou ça passe, sur cou_cou, ça devient cou\_cou ^^
34
      (peut être génant sur un nom de variable dans le cas par exemple de $_POST['coucou'] ou $_POST['cou_cou'] pour l'exemple au-dessus)
35
     */
36
37
    if(is_array($string)) //Au cas où la valeur à vérifier soit un array (peut arriver avec les POST)
38
    {
39
        foreach($string as $key => $val)
40
        {
41
            //Dans le cas où après si $key est modifié, alors la valeur pour 
42
            //la clé non sécurisé existerais toujours et la sécurisation 
43
            //ne servirais à rien.
44
            unset($string[$key]);
45
46
            $key = secure($key, true, $null_cslashe);
47
            $val = secure($val, $html, $null_cslashe);
48
49
            $string[$key] = $val;
50
        }
51
52
        return $string;
53
    }
54
55
56
    // On regarde si le type de string est un nombre entier (int)
57
    if(ctype_digit($string))
58
    {
59
        $string = intval($string);
60
        return $string;
61
    }
62
63
    // Pour tous les autres types
64
    global $DB;
65
66
    $optHtmlentities = ENT_COMPAT;
67
    //commenté car problème de notice si php < 5.4
68
    //if(defined(ENT_HTML401)) {$optHtmlentities .= ' | '.ENT_HTML401;} //à partir de php5.4
69
70
    if($html === false)
71
    {
72
        $string = htmlentities($string, $optHtmlentities, 'UTF-8');
73
    }
74
75
    if(function_exists('DB_protect'))
76
    {
77
        $string = DB_protect($string);
78
    }
79
80
    if($null_cslashe === false)
81
    {
82
        $string = addcslashes($string, '%_');
83
    }
84
85
    return $string;
86
}
87
88
/**
89
 * Fonction de création de cookie
90
 * 
91
 * @param string $name : le nom du cookie
92
 * @param string $val  : la valeur du cookie
93
 */
94
function create_cookie($name, $val)
95
{
96
    $two_weeks = time() + 2 * 7 * 24 * 3600; //Durée d'existance du cookie
97
    @setcookie($name, $val, $two_weeks);
0 ignored issues
show
Security Best Practice introduced by
It seems like you do not handle an error condition here. This can introduce security issues, and is generally not recommended.

If you suppress an error, we recommend checking for the error condition explicitly:

// For example instead of
@mkdir($dir);

// Better use
if (@mkdir($dir) === false) {
    throw new \RuntimeException('The directory '.$dir.' could not be created.');
}
Loading history...
98
}
99
100
/**
101
 * Fonction nl2br refait. Celle de php AJOUTE <br/> APRES les \n, il ne les remplace pas.
102
 * 
103
 * @param string $str : le texte à convertir
104
 * 
105
 * @return string : le texte converti
106
 */
107
function nl2br_replace($str)
108
{
109
    return str_replace("\n", '<br>', $str);
110
}
111
112
/**
113
 * Permet de rediriger une page
114
 * 
115
 * @param string $page : la page vers laquelle rediriger
116
 */
117
function redirection($page)
118
{
119
    header('Location: '.$page);
120
    exit;
121
}
122
123
/**
124
 * Sécurise la valeur du post demandé et la renvoie
125
 * 
126
 * @param string $key      : La donnée post demandée
127
 * @param mixed  $default  : (default: null) La valeur par défault qui sera retourné si le get existe pas. Null si pas indiqué
128
 * @param bool   $html     : (default: false) Savoir si on applique l'htmlentities (false pour oui, true pour non)
129
 * 
130
 * @return string : La valeur demandé sécurisé
131
 */
132
function post($key, $default = null, $html = false)
133
{
134
    if(!isset($_POST[$key]))
135
    {
136
        return $default;
137
    }
138
139
    $post = $_POST[$key];
140
141
    if(is_string($post))
142
    {
143
        $post = trim($post);
144
    }
145
146
    return secure($post, $html);
147
}
148
149
/**
150
 * Sécurise la valeur du get demandé et la renvoie
151
 * 
152
 * @param string $key     : La donnée get demandée
153
 * @param mixed  $default : (default: null) La valeur par défault qui sera retourné si le get existe pas. Null si pas indiqué
154
 * 
155
 * @return string : La valeur demandé sécurisé
156
 */
157
function get($key, $default = null)
158
{
159
    if(!isset($_GET[$key]))
160
    {
161
        return $default;
162
    }
163
164
    return secure(trim($_GET[$key]));
165
}
166
167
/**
168
 * Permet de savoir si le mail passé en paramètre est un e-mail valide ou non
169
 * 
170
 * @param string $mail : L'adresse e-mail à vérifier
171
 * 
172
 * @return integer : 
173
 */
174
function valid_mail($mail)
175
{
176
    return filter_var($mail, FILTER_VALIDATE_EMAIL);
177
}
178
179
/**
180
 * Affiche une page d'erreur
181
 * 
182
 * @param mixed $num        : Le n° d'erreur à afficher ou l'erreur au format texte
183
 * @param bool  $cleanCache : (default: true) Indique si le cache du tampon de sortie doit être vidé ou pas
184
 */
185
function ErrorView($num, $cleanCache = true)
186
{
187
    if($cleanCache)
188
    {
189
        ob_clean(); //On efface tout ce qui a pu être mis dans le buffer pour l'affichage
190
    }
191
192
    global $request, $path;
193
194
    //Envoi du status http
195
    if(function_exists('http_response_code')) //php >= 5.4
196
    {
197
        http_response_code($num);
198
    }
199
    else //php < 5.4
200
    {
201
        header(':', true, $num);
202
    }
203
204
    if(file_exists(path_controllers.'erreurs/'.$num.'.php'))
205
    {
206
        require_once(path_controllers.'erreurs/'.$num.'.php');
207
    }
208
    elseif (file_exists(path_controllers.'erreurs.php')) 
209
    {
210
        require_once(path_controllers.'erreurs.php');
211
    }
212
    else
213
    {
214
        echo 'Erreur '.$num;
215
    }
216
217
    exit;
218
}
219
220
/**
221
 * Permet de logger une information. En temps normal il s'agit d'écrire ligne par ligne.
222
 * Si le fichier indiqué n'existe pas, il est créé, sinon c'est ajouté à la fin du fichier.
223
 * 
224
 * @param string  $file : Le lien vers le fichier
225
 * @param string  $txt  : La ligne de texte à écrire
226
 * @param boolean $date : (default: true) Si à true, la date est ajouté au début de la ligne. Si false elle n'est pas mise.
227
 */
228
function logfile($file, $txt, $date = true)
229
{
230
    if($date === true)
231
    {
232
        $date    = new \BFW\Date();
233
        $dateTxt = $date->getJour()
234
                .'-'.$date->getMois()
235
                .'-'.$date->getAnnee()
236
                .' '.$date->getHeure()
237
                .':'.$date->getMinute()
238
                .':'.$date->getSeconde();
239
240
        $txt = '['.$dateTxt.'] '.$txt;
241
    }
242
243
    try
244
    {
245
        file_put_contents($file, rtrim($txt)."\n", FILE_APPEND);
246
    }
247
    catch(\Exception $e)
248
    {
249
        echo '<br/>Impossible d\'écrire dans le fichier : '.$file.'<br/>';
250
    }
251
}
252
253
/**
254
 * Vérifie le type d'un ensemble de variable
255
 * 
256
 * @param array $vars : Les variables à vérifier array(array('type' => 'monType', 'data' => 'mesData), array(...)...)
257
 * 
258
 * @return bool
259
 */
260
function verifTypeData($vars)
261
{
262
    if(!is_array($vars))
263
    {
264
        return false;
265
    }
266
267
    foreach($vars as $var)
268
    {
269
        if(!is_array($var))
270
        {
271
            return false;
272
        }
273
274
        if(!(!empty($var['type']) && isset($var['data'])))
275
        {
276
            return false;
277
        }
278
279
        if($var['type'] == 'int')
280
        {
281
            $var['type'] = 'integer';
282
        }
283
284
        if($var['type'] == 'float')
285
        {
286
            $var['type'] = 'double';
287
        }
288
289
        if(!is_string($var['type']))
290
        {
291
            return false;
292
        }
293
294
        if(gettype($var['data']) != $var['type'])
295
        {
296
            return false;
297
        }
298
    }
299
300
    return true;
301
}
302
303
/**
304
 * Retourne l'instance courrante du kernel. La créé si elle n'est pas trouvé.
305
 * 
306
 * @return \BFW\Kernel
307
 */
308
function getKernel()
309
{
310
    global $BFWKernel;
311
312
    if(!(isset($BFWKernel) && is_object($BFWKernel) && get_class($BFWKernel) == 'BFW\Kernel'))
313
    {
314
        $BFWKernel = new \BFW\Kernel;
315
    }
316
317
    return $BFWKernel;
318
}
319
320
/**
321
 * Détermine si la session est démarré
322
 * 
323
 * @link http://fr2.php.net/manual/fr/function.session-status.php#113468
324
 * 
325
 * @return bool
326
 */
327
function is_session_started()
328
{
329
    if(php_sapi_name() === 'cli')
330
    {
331
        return false;
332
    }
333
334
    if(PHP_VERSION_ID >= 50400) //PHP >= 5.4.0
335
    {
336
        if(session_status() === PHP_SESSION_ACTIVE)
337
        {
338
            return true;
339
        }
340
341
        return false;
342
    }
343
344
    if(session_id() !== '')
345
    {
346
        return true;
347
    }
348
349
    return false;
350
}
351