/home/mjc1/public_html/db_admin/libraries/grab_globals.lib.php


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'/') > && substr($goto02) != './') {
    unset(
$goto);
// end if

?>