PHP_AUTH_USER is populated by PHP from values that are continually provided by the browser in the headers. They will exist if the user sees a browser popup asking for a username and password to access whatever it is they are trying to access.
Wikipedia has good things to say about basic authentication: http://en.wikipedia.org/wiki/Basic_authentication_scheme
For your purposes it won't quite work unless you want your users logging in twice.
First, this only will work with Internet Explorer. The settings for Local Intranet zone must be as lenient as possible, and allow scripting of activex controls. This has to be done on every machine you want to grant this access to.
You will have to use Javascript to load the value and somehow pass it to the server (maybe Ajax):
<script type="text/javascript">
var wshobj = new ActiveXObject("WScript.Network");
var username = wshobj.UserName;
</script>
username will then have the info you need.
As far as I know, there is absolutely no guaranteed way to do it server side. This is the best workaround I could come across, and is kind of considered a hack.
Good luck.