problem with super global '$_REQUEST'
| From: | Dennis Gearon | Date: | Thu, 15 Jul 2004 22:00:15 +0000 |
| Subject: | problem with super global '$_REQUEST' | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-190641@lists.php.net to get a copy of this message | ||
I have a function in a class that unsets the superglobal $_REQUEST;
Well, it's supposed to, it doesn't do it. I'm on version 4.2.3 of PHP. This page:
http://us2.php.net/manual/en/language.variables.predefined.php#language.variables.superglobals
says that $_REQUEST is a super global as of version 4.1.0. Is there some bug I don't know about or am I doing something wrong?
Here's the code:
<?PHP
$_REQUEST["var1"]="\"><script>script stuff</script>";
$_REQUEST["var2"]="a_string_of_course";
$_REQUEST["arr1"]["elem1"]="<script>script stuff2</script>";
$_REQUEST["arr1"]["elem2"]="another_string_of_course";
if( !defined('TEST_UNSET') ){
define('TEST_UNSET', TRUE);
class abstract_environment{
var $_REQUEST;
function abstract_environment(){
$this->_REQUEST=$_REQUEST;
unset( $_REQUEST );
echo("unset was done");
$this->_clean_all_vars();
}
function _clean_all_vars(){
//ADD OTHER PROCESSING AS NEEDED
$this->_strip_tags_arr( $this->_REQUEST );
}
function _strip_tags_arr( &$arr_or_solo ){
if( isset($arr_or_solo) ){
if( !is_array($arr_or_solo) ){
$arr_or_solo= strip_tags($arr_or_solo);
} else {
reset ($arr_or_solo);
while (list($key, ) = each ($arr_or_solo)) {
if( isset($arr_or_solo[$key]) ){
if( is_array($arr_or_solo[$key]) ){
$this->_strip_tags_arr($arr_or_solo[$key]);
} else {
$arr_or_solo[$key] = strip_tags($arr_or_solo[$key]);
}
}
}
}
}
}
}
}
$abs_env=new abstract_environment;
echo "<pre>";
print_r($_REQUEST);
print_r( $abs_env );
echo "</pre>";
?>