Далее вставьте имя пользователя, адрес электронной почты, текущий IP-адрес,
системное время и (случайно сгенерированный) пароль в таблицу usemames
базы данных сайта. Затем вызовите встроенную функцию maii(), которая отпра — вит пароль по указанному посетителем адресу.
При входе посетителя на сайт сценарий входа будет выполнять поиск в таб — лице usemames введенных имени пользователя и пароля. Если сценарий нахо —
дит имя пользователя и пароль в таблице базы данных, он «активизирует» учет- ную запись члена сайта. В нашем примере (не показанный здесь, но
содержащийся в PHP-сценарии страницы chptiOTipiOLogin. php), сценарий вхо —
да на сайт для активации учетной записи сохраняет системное время в столбце
iast coiumn записи в таблице имен пользователей.
Web-страницы с формами и PHP-сценариями, описанными в этом совете, на —
ходятся в файле chptiOTipio. zip, который можно выгрузить из сайта издатель —
ства РУССКОЯЗЫЧНОЙ редакции ЭТОЙ КНИГИ (http://www. diasoft. kiev. ua).
Использование РНР и MySQL для организации парольного доступа к Web-сайту
В совете «Использование РНР и дискового файла для организации парольного
доступа к Web-сайту» выше в этой главе вы научились организовывать ограничен — ный доступ (т. е. доступ только для зарегистрированных членов) к Web-сайту с
помощью РНР и текстового файла, который содержит пары имя пользователя/ пароль и хранится на жестком диске Web-сервера. К сожалению, помещение списка авторизированных пользователей сайта в текстовый файл обладает не — сколькими недостатками:
53 6 / ‘ Глава 10. РНР4
• При каждом добавлении в файл новой пары имя пользователя/пароль уве- личивается время входа посетителя на сайт. С увеличением размера файла поиск совпадающей пары в файле будет выполняться все дольше и дольше.
• Удаление и редактирование пар имя пользователя/пароль в текстовом фай —
ле выполняется вручную, что представляет собой довольно-таки утомитель — ный процесс, связанный с потенциальными ошибками. Как результат, можно случайно изменить формат записей в файле доступа, что не позво — лит сценарию входа на сайт использовать файл для аутентификации посе — тителей.
• Сетевые пользователи (например, системный администратор и другие пользователи с привилегированными учетными записями) могут по ошиб —
ке удалить файл доступа при выполнении очередной «чистки» каталогов с
целью высвобождения дискового пространства (таким образом, в принципе исключив доступ посетителей на сайт). Или эти пользователи могут про —
сто просмотреть содержимое файла и узнать полный список пользователей вашего сайта и их паролей.
За счет хранения пар имя пользователя/пароль в базе данных SQL вы может исключить все описанные выше недостатки. Все пользователи, авторизированные для работы с таблицей доступа, работают с ней через СУБД. Поэтому никто не сможет изменить формат строк в файле доступа при вставке, удалении или ре — дактировании пар имя пользователя/пароль. Более того, вы имеете возможность контролировать операции пользователей путем открытия доступа для одних пользователей «только для вставки», в то время как для других — для «вставки», «удаления», «просмотра» и/или «редактирования». И, кроме того, независимо от количества зарегистрированных пользователей (будь их 10 или 10 000) РНР-сце- нарию потребуется одно и тоже (незначительное) время на сравнения пары имя пользователя/пароль для посетителя сайта.