David BERCOT wrote:
Hi, I use this program to force a user to authenticate : if (!isset($_SERVER["PHP_AUTH_USER"])) { header("WWW-Authenticate: Basic realm=\"Intranet SDSED\""); header("HTTP/1.1 401 Unauthorized"); } Everything is ok except a detail : if the user makes a mistake (for example, a bad password), the variable $_SERVER["PHP_AUTH_USER"] is initialised. So, if he wants to do again the above test, another identification won't happen (because $_SERVER["PHP_AUTH_USER"] is already set). I've tried : $_SERVER["PHP_AUTH_USER"] = NULL; without succes... Do you have a clue ?
there is also $_SERVER["PHP_AUTH_PWD"] which you can check. and rather than just checking whether $_SERVER["PHP_AUTH_USER"] is set why not also check that the contained value is something valid? you can start by checking that $_SERVER["PHP_AUTH_USER"] is not empty: if (!isset($_SERVER["PHP_AUTH_USER"]) || empty($_SERVER["PHP_AUTH_USER"])) { // send headers } or (pseudocode): if (!isset($_SERVER["PHP_AUTH_USER"]) || empty($_SERVER["PHP_AUTH_USER"]) || !isValidUserName($_SERVER["PHP_AUTH_USER"])) { // send headers }
Thank you very much. David.
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php