forked from extern/egroupware
142 lines
2.9 KiB
PHP
142 lines
2.9 KiB
PHP
<?php
|
|
function reg_var($varname, $method = 'any', $valuetype = 'alphanumeric',$default_value='',$register=True)
|
|
{
|
|
if($method == 'any')
|
|
{
|
|
$method = Array('POST','GET','COOKIE','SERVER','GLOBAL','DEFAULT');
|
|
}
|
|
elseif(!is_array($method))
|
|
{
|
|
$method = Array($method);
|
|
}
|
|
$cnt = count($method);
|
|
for($i=0;$i<$cnt;$i++)
|
|
{
|
|
switch(strtoupper($method[$i]))
|
|
{
|
|
case 'DEFAULT':
|
|
if($default_value)
|
|
{
|
|
$value = $default_value;
|
|
$i = $cnt+1; /* Found what we were looking for, now we end the loop */
|
|
}
|
|
break;
|
|
case 'GLOBAL':
|
|
if(@isset($GLOBALS[$varname]))
|
|
{
|
|
$value = $GLOBALS[$varname];
|
|
$i = $cnt+1;
|
|
}
|
|
break;
|
|
case 'POST':
|
|
case 'GET':
|
|
case 'COOKIE':
|
|
case 'SERVER':
|
|
if(phpversion() >= '4.2.0')
|
|
{
|
|
$meth = '_'.strtoupper($method[$i]);
|
|
}
|
|
else
|
|
{
|
|
$meth = 'HTTP_'.strtoupper($method[$i]).'_VARS';
|
|
}
|
|
if(@isset($GLOBALS[$meth][$varname]))
|
|
{
|
|
$value = $GLOBALS[$meth][$varname];
|
|
$i = $cnt+1;
|
|
}
|
|
break;
|
|
default:
|
|
if(@isset($GLOBALS[strtoupper($method[$i])][$varname]))
|
|
{
|
|
$value = $GLOBALS[strtoupper($method[$i])][$varname];
|
|
$i = $cnt+1;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (@!isset($value))
|
|
{
|
|
$value = $default_value;
|
|
}
|
|
|
|
if (@!is_array($value))
|
|
{
|
|
if ($value == '')
|
|
{
|
|
$result = $value;
|
|
}
|
|
else
|
|
{
|
|
if (sanitize($value,$valuetype) == 1)
|
|
{
|
|
$result = $value;
|
|
}
|
|
else
|
|
{
|
|
$result = $default_value;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
reset($value);
|
|
while(list($k, $v) = each($value))
|
|
{
|
|
if ($v == '')
|
|
{
|
|
$result[$k] = $v;
|
|
}
|
|
else
|
|
{
|
|
if (is_array($valuetype))
|
|
{
|
|
$vt = $valuetype[$k];
|
|
}
|
|
else
|
|
{
|
|
$vt = $valuetype;
|
|
}
|
|
|
|
if (sanitize($v,$vt) == 1)
|
|
{
|
|
$result[$k] = $v;
|
|
}
|
|
else
|
|
{
|
|
if (is_array($default_value))
|
|
{
|
|
$result[$k] = $default_value[$k];
|
|
}
|
|
else
|
|
{
|
|
$result[$k] = $default_value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if($register)
|
|
{
|
|
$GLOBALS['phpgw_info'][$GLOBALS['phpgw_info']['flags']['currentapp']][$varname] = $result;
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/*!
|
|
@function get_var
|
|
@abstract retrieve a value from either a POST, GET, COOKIE, SERVER or from a class variable.
|
|
@author skeeter
|
|
@discussion This function is used to retrieve a value from a user defined order of methods.
|
|
@syntax get_var('id',array('HTTP_POST_VARS'||'POST','HTTP_GET_VARS'||'GET','HTTP_COOKIE_VARS'||'COOKIE','GLOBAL','DEFAULT'));
|
|
@example $this->id = get_var('id',array('HTTP_POST_VARS'||'POST','HTTP_GET_VARS'||'GET','HTTP_COOKIE_VARS'||'COOKIE','GLOBAL','DEFAULT'));
|
|
@param $variable name
|
|
@param $method ordered array of methods to search for supplied variable
|
|
@param $default_value (optional)
|
|
*/
|
|
function get_var($variable,$method='any',$default_value='')
|
|
{
|
|
return reg_var($variable,$method,'any',$default_value,False);
|
|
}
|