Вот пример сценария, в котором используется авторизация на основе заголовка WWW-Authenticate. Он состоит из двух страниц - на первой логин с паролем проверяются и в том случае, если они есть в файле паролей, то посетителю выводится форма для загрузки файла. На второй странице осуществляется загрузка файла.
Файл 1
<?php foreach (file("passw/passwr") as $k) { if (substr($k, 0, -2)=="$PHP_AUTH_USER $PHP_AUTH_PW") {$rez=1;} }
if ($rez!=1) { Header("WWW-Authenticate: Basic realm=\"Защищенная зона"\""); Header("HTTP/1.0 401 Unauthorized"); echo ("<p>Доступ закрыт!</p>"); exit; } ?> <FORM ENCTYPE="multipart/form-data" ACTION="Файл 2" METHOD=POST> Закачать файл:<INPUT NAME="zak" TYPE="file"> <INPUT TYPE="submit" VALUE="Закачать"> </FORM>
Файл 2
<?php foreach (file("passw/passwr") as $k) { if (substr($k, 0, -2)=="$PHP_AUTH_USER $PHP_AUTH_PW") { $rez=1; } }
if ($rez!=1) { echo ("<p>Доступ закрыт!</p>"); exit; }
if ($zak=="none") {echo ("Вы забыли указать файл...");} elseif (copy($zak, "папка для файлов/$zak_name")) {echo("Файл $zak_name загружен");} else { echo("Не удалось скопировать $zak_name");} ?>
Пояснения к сценарию загрузки файлов смотрите в предыдущей главе.