Posted on: 05/21/04 08:05am
By: Euan
/** * Search for the var $name in $_SESSION, $_POST, $_GET, * $_COOKIE, or $_SERVER and set it in provided var. * * If $search is not provided, or == SQ_INORDER, it will search * $_SESSION, then $_POST, then $_GET. Otherwise, * use one of the defined constants to look for * a var in one place specifically. * * Note: $search is an int value equal to one of the * constants defined above. * * example: * sqgetGlobalVar('username',$username,SQ_SESSION); * -- no quotes around last param! * * Returns FALSE if variable is not found. * Returns TRUE if it is. */ function sqgetGlobalVar($name, &$value, $search = SQ_INORDER) { if ( !check_php_version(4,1) ) { global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_SERVER_VARS, $HTTP_SESSION_VARS; $_COOKIE =& $HTTP_COOKIE_VARS; $_GET =& $HTTP_GET_VARS; $_POST =& $HTTP_POST_VARS; $_SERVER =& $HTTP_SERVER_VARS; $_SESSION =& $HTTP_SESSION_VARS; } /* NOTE: DO NOT enclose the constants in the switch statement with quotes. They are constant values, enclosing them in quotes will cause them to evaluate as strings. */ switch ($search) { /* we want the default case to be first here, so that if a valid value isn't specified, all three arrays will be searched. */ default: case SQ_INORDER: // check session, post, get case SQ_SESSION: if( isset($_SESSION[$name]) ) { $value = $_SESSION[$name]; return TRUE; } elseif ( $search == SQ_SESSION ) { break; } case SQ_FORM: // check post, get case SQ_POST: if( isset($_POST[$name]) ) { $value = $_POST[$name]; return TRUE; } elseif ( $search == SQ_POST ) { break; } case SQ_GET: if ( isset($_GET[$name]) ) { $value = $_GET[$name]; return TRUE; } /* NO IF HERE. FOR SQ_INORDER CASE, EXIT after GET */ break; case SQ_COOKIE: if ( isset($_COOKIE[$name]) ) { $value = $_COOKIE[$name]; return TRUE; } break; case SQ_SERVER: if ( isset($_SERVER[$name]) ) { $value = $_SERVER[$name]; return TRUE; } break; } return FALSE; }
Posted on: 05/21/04 08:20am
By: Blaine
/* Filter incoming variables and set them as globals */ $myvars = array('op','chklist','username','email'); ppGetData($myvars,true);
Posted on: 05/21/04 08:34am
By: Euan
Posted on: 05/21/04 09:37am
By: Blaine
/** * PortalParts Library Function to filter incomming variables and optional make GLOBAL * Author: Blaine Lang * * The function can be called with just one variable - an Array of variable names * It will check for POST and then GET and if the variable is found, * it is filtered and returned. * * Optionally, you can make the variable Global and specify GET or POST Vars as the source * * Example use: * $myvars = array('op','chklist','username','email'); * ppGetData($myvars,true); * * @param array $vars Array of variable name * @param boolean $setglobal Optional: Set true to make variables global * @param string $type Optional: Set to 'POST' or 'GET' * @return string Formated HTML containing site footer and optionally right blocks * */ function ppGetData($vars,$setglobal=false,$type='') { $return_data = array(); #setup common reference to SuperGlobals depending which array is needed if ($type == "GET" OR $type == "POST") { if ($type =="GET") { $SG_Array =& $_GET; } if ($type =="POST") { $SG_Array =& $_POST; } # loop through SuperGlobal data array and grab out data for allowed fields if found foreach($vars as $key) { if (array_key_exists($key,$SG_Array)) { $return_data[$key]=$SG_Array[$key]; } } } else { foreach ($vars as $key) { if (array_key_exists($key, $_POST)) { $return_data[$key] = $_POST[$key]; } elseif (array_key_exists($key, $_GET)) { $return_data[$key] = $_GET[$key]; } } } # loop through $vars array and apply the filter foreach($vars as $value) { $return_data[$value] = ppApplyFilter($return_data[$value]); } // Optionally set $GLOBALS or return the array if ($setglobal) { # loop through final data and define all the variables using the $GLOBALS array foreach ($return_data as $key=>$value) { $GLOBALS[$key]=$value; } } else { return $return_data; } }
Posted on: 05/21/04 11:50am
By: Euan