Berkut:
объясни в чём-же дыра?
попытаюсь объяснить.
Ошибка №1 неинициализирована явно переменная $res
Ошибка №2 ты ошибочно думаешь, что $res нигде не фигурирует, но ничего не мешает заставить ее фигурировать.
Ошибка №3 что-то мне подсказывает, что у тебя register_globals=on
Еще раз попробуй вызвать свой скрипт, как тебе сказал FreeSpace, если у тебя register_globals=on, то у тебя в скрипте автоматически появляется переменная $res у которой значение равно единице, а значит что вот эта проверка не имеет никакого смысла, у тебя уже вначале $res=1:
if(trim($k)=="$PHP_AUTH_USER $PHP_AUTH_PW")
{$rez=1;}}
а как видно дальше, значение $res=1 - атвоматический пропуск в защищенную зону.
Как надо?
1. Надо в начале скрипта, поставить $res=0;
это называется явно инициализировать переменную и делать так всегда.
2. найти свой php.ini и поставить register_globals=off и track_vars = on
http://faq.phpclub.net/register_globals3. надо внимательно читать топик и слушать, что говорят люди, которые программируют на этом языке каждый день.
RomikChef, FreeSpace, я нигде не ошибся?