1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
<?php /* $Id: grab_globals.lib.php,v 2.5 2004/05/20 16:14:11 nijel Exp $ */ // vim: expandtab sw=4 ts=4 sts=4:
/** * This library grabs the names and values of the variables sent or posted to a * script in the $_* arrays and sets simple globals variables from them. It does * the same work for the $PHP_SELF, $HTTP_ACCEPT_LANGUAGE and * $HTTP_AUTHORIZATION variables. * * loic1 - 2001/25/11: use the new globals arrays defined with php 4.1+ */
function PMA_gpc_extract($array, &$target) { if (!is_array($array)) { return FALSE; } $is_magic_quotes = get_magic_quotes_gpc(); foreach ($array AS $key => $value) { if (is_array($value)) { // there could be a variable coming from a cookie of // another application, with the same name as this array unset($target[$key]);
PMA_gpc_extract($value, $target[$key]); } else if ($is_magic_quotes) { $target[$key] = stripslashes($value); } else { $target[$key] = $value; } } return TRUE; }
if (!empty($_GET)) { PMA_gpc_extract($_GET, $GLOBALS); } // end if
if (!empty($_POST)) { PMA_gpc_extract($_POST, $GLOBALS); } // end if
if (!empty($_FILES)) { foreach ($_FILES AS $name => $value) { $$name = $value['tmp_name']; ${$name . '_name'} = $value['name']; } } // end if
if (!empty($_SERVER)) { $server_vars = array('PHP_SELF', 'HTTP_ACCEPT_LANGUAGE', 'HTTP_AUTHORIZATION'); foreach ($server_vars as $current) { if (isset($_SERVER[$current])) { $$current = $_SERVER[$current]; } elseif (!isset($$current)) { $$current = ''; } } unset($server_vars, $current); } // end if
// Security fix: disallow accessing serious server files via "?goto=" if (isset($goto) && strpos(' ' . $goto, '/') > 0 && substr($goto, 0, 2) != './') { unset($goto); } // end if
?>
|