Правильно введенные имя и пароль открывают пользователю доступ к каталогам сервера. Этот принцип аутентификации обычно называется схемой «запрос/ответ». Запросом является приглашение к вводу имени и пароля, а ответом - введенные данные. Если введенная комбинация верна, пользователю предоставляется доступ к защищенным каталогам.
Как правило, для ввода имени и пароля применяются диалоговые окна, активизируемые вызовом функции header( ).
Следующим шагом после подготовки интерфейса для ввода является обработка имени пользователя и пароля. В РНР имя и пароль хранятся в двух глобальных переменных, $PHP_AUTH_USER (имя) и $PHP_AUTH_PW (пароль). В простейшей, но недостаточно гибкой схеме ограничения доступа к странице имя пользователя и пароль жестко кодируются в сценарии:
if ((!isset ($PHP_AUTH_USER)) || (!isset ($PHP_AUTH_PW)) ||
Пример, чтение аутентификационных данных из текстового файла (authenticate.txt). В каждой строке файла содержится отдельная пара «имя:пароль»; в процессе проверки программа последовательно читает и проверяет все строки файла:
Пример программы аутентификации пользователя c аутентификацион-ными данными в демонстрационной таблицей (user_authenticate) в базе данных (useMnfo) с полями: userid, username, password.
if (!isset($PHP_AUTH_USER))
{ header( 'WWW-Authenticate: Basic realm="Secret Family Recipes'");
header('HTTP/1.0 401 Unauthorized'); exit;
}
else
{ mysql_connect ("host", "user", "password")
or exit ("Ошибка при подключении!"); // Создать содинение с базой данных MySQL
mysql_select_db ("useMnfo")or exit ("Ошибка при открытии базы данных!");
// Обратиться к таблице user_authenticate для поиска совпадающей строки
$query = "select userid from user_authenticate whereusername = '$PHP_AUTH_USER' and