Project

General

Profile

1
<?php
2
function user2path($user) # multiple @ and nested . OK: a@b.c@url -> url?b.c.a
3
{ return implode(".", array_reverse(explode("@", $user))); }
4

    
5
if (!isset($_SERVER["PHP_AUTH_USER"])) # browser first omits Authorization
6
{
7
	header('WWW-Authenticate: Basic realm="please leave username/password blank or as filled in"');
8
}
9
else
10
{
11
	$subpath = user2path($_SERVER["PHP_AUTH_USER"]);
12
	header("Location: ".($_SERVER["PHP_AUTH_USER"] !== ""
13
			? ($_SERVER["QUERY_STRING"] !== ""
14
				? /*prepend to query string*/$_SERVER["SCRIPT_URL"]
15
					."?.".$subpath."&".rtrim($_SERVER["QUERY_STRING"], "&")
16
				: $_SERVER["REQUEST_URI"]/*ends in ? */.$subpath
17
			)
18
			: rtrim($_SERVER["REQUEST_URI"], "?") #user empty->just display page
19
		));
20
}
21
?>
(33-33/35)