Well, $POST['username'] surely comes from a form with the POST method, as opposed to $username, which could be a variable of your own, a variable from the query string, a cookie etc, assuming you do:
extract($REQUEST);
An superglobal variable (i.e. one that is autoglobal) has a global scope regardless of the code block.
For example,
<?php
function hello() {
echo $_GET['hello'];
}
?>
will work to write the value of $hello from the querystring, but
<?php
function hello() {
echo $HTTP_GET_VARS['hello'];
}
?>
will not.
you must use
global $HTTP_GET_VARS;
or
global $HTTP_GET_VARS['hello'];
in the function, first.