/**
* Use this when you wish to output debug information only when $debug is
* true.
*
* @param string $msg The message to output.
* @version 1.0
* @see Error, ErrorHandler, HandleErrors
* @since 1.0
* @todo Alternative output locations.
* @todo Alternative verbosity levels.
* @example test_utility.php
*/
function Trace($msg)
{
global $debug;
if ($debug) echo $msg;
}
/**
* @param name string
* @param default = NULL mixed
* @return mixed
*/
function GetVar($name, $default = null)
{
global $HTTP_POST_FILES, $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_SERVER_VARS,
$HTTP_SESSION_VARS, $HTTP_COOKIE_VARS;
if (!empty($_FILES[$name])) { Trace("GetVar(): $name (File) -> {$_FILES[$name]}
\n"); return $_FILES[$name]; }
if (!empty($_POST[$name])) { Trace("GetVar(): $name (Post) -> {$_POST[$name]}
\n"); return $_POST[$name]; }
if (!empty($_GET[$name])) { Trace("GetVar(): $name (Get) -> {$_GET[$name]}
\n"); return $_GET[$name]; }
if (!empty($_SESSION[$name])) { Trace("GetVar(): $name (Session) -> {$_SESSION[$name]}
\n"); return $_SESSION[$name]; }
if (!empty($_COOKIE[$name])) { Trace("GetVar(): $name (Cookie) -> {$_COOKIE[$name]}
\n"); return $_COOKIE[$name]; }
if (!empty($_SERVER[$name])) { Trace("GetVar(): $name (Server) -> {$_SERVER[$name]}
\n"); return $_SERVER[$name]; }
if (isset($HTTP_POST_FILES[$name]) && strlen($HTTP_POST_FILES[$name]) > 0)
return $HTTP_POST_FILES[$name];
if (isset($HTTP_POST_VARS[$name]) && strlen($HTTP_POST_VARS[$name]) > 0)
return $HTTP_POST_VARS[$name];
if (isset($HTTP_GET_VARS[$name]) && strlen($HTTP_GET_VARS[$name]) > 0)
return $HTTP_GET_VARS[$name];
if (isset($HTTP_SESSION_VARS[$name]) && strlen($HTTP_SESSION_VARS[$name]) > 0)
return $HTTP_SESSION_VARS[$name];
if (isset($HTTP_COOKIE_VARS[$name]) && strlen($HTTP_COOKIE_VARS[$name]) > 0)
return $HTTP_COOKIE_VARS[$name];
if (isset($HTTP_SERVER_VARS[$name]) && strlen($HTTP_SERVER_VARS[$name]) > 0)
return $HTTP_SERVER_VARS[$name];
return $default;
}
/**
* Gets the webserver path for a given local filesystem directory.
*
* @param string $path
* @return string Translated path.
*/
function GetRelativePath($path)
{
$pt = GetVar('PATH_TRANSLATED', GetVar('ORIG_PATH_TRANSLATED'));
$sn = GetVar('SCRIPT_NAME');
$droot = str_replace('\\\\', '\\',
GetVar('DOCUMENT_ROOT', substr($pt, 0, strlen($sn) * -1)));
return substr($path, strlen($droot));
}