vladax, человек ясно и недвусмысленно просил авторизацию сессиями.
через foreach нумерованные массивы не выводят.
для проверки пароля в файле цикл вообще не нужен.
И вообще, все можно сделать проще. гораздо проще.
по-простому, и без кучи ошибок, HTTP авторизация выглядит так:
PHP:
$file="data.txt";
$fp=fopen($file, "r");
$auth_file=fread($fp, filesize($file));
fclose($fp);
if (!strstr($auth_file,$PHP_AUTH_USER.":".$PHP_AUTH_PW."\n")) {
header('WWW-Authenticate: Basic realm="Realm"');
header("HTTP/1.0 401 Unauthorized");
echo "Bad password";
exit;
}
Этот код лучше всего вынести в отдельный файл и ролдключать через require в самом начале защищаемых файлов.
Два замечания. строка в файле data.txt должна заканчиваться именно на "\n", а не на "\r\n";
сам файл, ОБЯЗАТЕЛЬНО должен лежать в каталоге, недоступном пользователю веб-сервера.
а еще для надежности желательно кодировать в этом файле пароли в md5, и сверять с MD5($PHP_AUTH_PW)