On Fri, January 20, 2006 8:24 am, David BERCOT wrote: > 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). Well, yeah. You kind of need to send the headers if: PHP_AUTH_USER is not set PHP_AUTH_USER is not valid user PHP_AUTH_PW is not set PHP_AUTH_PW is not valid So you've only done 25% of the job, so far. :-) Only if all four conditions are met is the user really valid. > I've tried : > $_SERVER["PHP_AUTH_USER"] = NULL; > without succes... $_SERVER should be treated as a "read-only" variable. NEVER stuff something into it. In this case, not only is it just a Bad Idea to stuff something in there, it's pointless. The *browser* sends the values for PHP_AUTH_USER and _PW on every single request, and PHP crams whatever the browser sends into $_SERVER. And whatever you put in there during your last script is long long long gone before any of this happens. But even if it was still there, it would get over-written by the browser->apache->php process. -- Like Music? http://l-i-e.com/artists.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php