Ticket #104: xcache-admin-remove-magic-quotes-gpc.diff

File xcache-admin-remove-magic-quotes-gpc.diff, 2.0 KB (added by blueyed, 8 years ago)
  • edit.php

     
    66    die("missing name"); 
    77} 
    88 
     9 
     10/* 
     11 * Clean up the mess PHP has created with its funky quoting everything! 
     12 * This block has been taken from b2evolution's _param.funcs.php file. 
     13 */ 
     14if( get_magic_quotes_gpc() ) 
     15{ // That stupid PHP behaviour consisting of adding slashes everywhere is unfortunately on 
     16 
     17    if( in_array( strtolower(ini_get('magic_quotes_sybase')), array('on', '1', 'true', 'yes') ) ) 
     18    { // overrides "magic_quotes_gpc" and only replaces single quotes with themselves ( "'" => "''" ) 
     19        /** 
     20         * @ignore 
     21         */ 
     22        function remove_magic_quotes( $mixed ) 
     23        { 
     24            if( is_array( $mixed ) ) 
     25            { 
     26                foreach($mixed as $k => $v) 
     27                { 
     28                    $mixed[$k] = remove_magic_quotes( $v ); 
     29                } 
     30            } 
     31            elseif( is_string($mixed) ) 
     32            { 
     33                // echo 'Removing slashes '; 
     34                $mixed = str_replace( '\'\'', '\'', $mixed ); 
     35            } 
     36            return $mixed; 
     37        } 
     38    } 
     39    else 
     40    { 
     41        /** 
     42         * Remove quotes from input. 
     43         * This handles magic_quotes_gpc and magic_quotes_sybase PHP settings/variants. 
     44         * 
     45         * NOTE: you should not use it directly, but one of the param-functions! 
     46         * 
     47         * @param mixed string or array (function is recursive) 
     48         * @return mixed Value, with magic quotes removed 
     49         */ 
     50        function remove_magic_quotes( $mixed ) 
     51        { 
     52            if( is_array( $mixed ) ) 
     53            { 
     54                foreach($mixed as $k => $v) 
     55                { 
     56                    $mixed[$k] = remove_magic_quotes( $v ); 
     57                } 
     58            } 
     59            elseif( is_string($mixed) ) 
     60            { 
     61                // echo 'Removing slashes '; 
     62                $mixed = stripslashes( $mixed ); 
     63            } 
     64            return $mixed; 
     65        } 
     66    } 
     67} 
     68else 
     69{ 
     70    /** 
     71     * @ignore 
     72     */ 
     73    function remove_magic_quotes( $mixed ) 
     74    { 
     75        return $mixed; 
     76    } 
     77} 
     78 
     79 
     80 
    981$name = $_GET['name']; 
    1082// trigger auth 
    1183$vcnt = xcache_count(XC_TYPE_VAR); 
    1284 
    1385if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    14     xcache_set($name, $_POST['value']); 
     86    xcache_set($name, remove_magic_quotes($_POST['value'])); 
    1587    header("Location: xcache.php?type=" . XC_TYPE_VAR); 
    1688    exit; 
    1789}