Самоучитель по креативному веб-дизайну. Книга 4, стр.21

После ввода посетителем его имени пользователя и пароля в поля формы входа на сайт и нажатия кнопки «Войти» PHP-сценарий, аналогичный приве- денному ниже, устанавливает соединение с базой данных MySQL и определяет, присутствует ли введенные пользователем имя и пароль в списке авторизирован- ных пользователей и паролей:





$db_host = «localhost»;

$db_user = «root»;

$db_pass = «»;

$dbjname = «hwdtt» ;

// Установить соединение с СУБД MySQL

$link = mysql connect($db_host, $db_user, $db_pass;

// Выбрать базу данных с таблицей siteAccessList

mysql_select db ($db name, $link) ;

// Сформировать запрос и передать его на выполнение СУБД

$query = «SELECT username FROM siteAccessList » .

«WHERE username = \»$username\» «. «AND password = \»$password\»";

$result = mysql query ($query, $link) ;

// Определить количество строк в результатах запроса. Если пара

// имя/пароль присутствует в файле, результаты запроса будут содержать

//в точности 1 строку. В противном случае функция mysql num_jrows ()

// обнаружит, что запрос вернул ноль (0) строк.

if (mysql_num_rows ($result) == 0)

header («Location: ChptlOTipllAccessDenied. php»);

else

header («Location: ChptlOTipllLoginSuccessful. php»);

?>

После вызова функции mysqi_connect() для регистрации на сервере MySQL

сценарий вызывает функцию mysqi_seiect_db(), которая выбирает базу данных,

Содержащую СПИСОК ЧЛеНОВ Сайта (В Приведенном Примере ЭТО SiteAccessList). Далее сценарий формирует запрос (т. е. SQL-оператор SELECT), который указыва —

ет СУБД вернуть строки таблицы, содержащие пару имя пользователя/пароль, совпадающие с именем и паролем, введенным посетителем в форме входа на

сайт. После вызова в сценарии функции mysqqi_query о, передающей запрос на исполнение СУБД, СУБД выполняет запрос и помещает список строк с совпада — ющими парами имя пользователя/пароль в выходной буфер.

Функция mysqi num_rows() определяет количество строк, возвращаемых

СУБД в результате выполнения SQL-оператора SELECT, переданного ей функцией

538 Глава 10. РНР4





mysql query () . ЕСЛИ фуНКЦИЯ mysqljrmm_rows () В Операторе if-els e ВОЗВраща —

ет значение «1″ , посетитель имеет право доступа на сайт. В противном случае,

если функция возвращает значение «0м, сценарий запрещает доступ посетителя

к содержимому сайта, доступного только для зарегистрированных членов сайта,

поскольку введенная посетителем пара имя пользователя/пароль отсутствует в списке авторизированных пользователей сайта.

Web-страница с формой входа на сайт и PHP-страница с сценарием входа на

сайт, описанные в этом совете, находятся в файле chptiOTipii. zip, который можно выгрузить из сайта издательства русскоязычной редакции этой книги

(http://www. diasoft. kiev. ua).



Исключение возможности изменения посетителями значений переменных с помощью URL-аргументов

Для передачи результатов заполнения формы PHP-сценарию можно пользо —

ваться методами GET или POST. Как вы узнали из главы 3, метод POST приво — дит к тому, что Web-браузер передает результаты формы Web-серверу в теле HTTP-запроса, в то время как метод GET помещает результаты формы в URL-ад — рес, по которому Web-сервер должен передать результаты формы. К сожалению, возможность передачи значений переменных PHP-сценарию путем присоедине —

ния пар имя/значение в конец URL-адреса PHP-страницы (как это делает метод GET) представляет собой потенциальную угрозу безопасности. Посетители могут изменить значения переменных, которые вы не хотите менять.

Предположим, например, что сайт имеет страницу входа, которая требует от

посетителя ввода пары имя пользователя/пароль. После ввода корректных значе — ний сценарий входа устанавливает PHP-сеанс и присваивает переменной, ска —

жем, с именем $s_username, имя, которое посетитель ввел для получения досту —

па к сайту. До входа на сайт переменная $s_usemame не содержит значения (т. е.

не определена), поэтому для предотвращения несанкционированного доступа в разделы сайта, доступные только для членов сайта, можно воспользоваться опе- ратором if, аналогичным показанному в следующем примере:





session_start() ;

i f (!isset($s_username))

{

header(«Location: http://www. NVBizNet. com/HWDTT/

LoginScreen. htm»);

exit ;

{

?>



К сожалению, если посетитель введет в адресной строке браузера URL-адрес

страницы, которая находится в разделе сайта, доступном только для зарегистри- рованных членов, как показано ниже, PHP-процессор установит значение пере —

менной $s_username равным «Konrad»:



http://www. NVBizNet. com/HWDTT/Loggedln. php? s username=Konrad

Глава 10. РНР4 53 9





Поскольку при проверке в начале PHP-страницы переменная $s_usemame бу —

дет содержать значение, посетитель получит возможность открыть страницу, не — смотря на то, что он не регистрировался на сайте.



ПРАКТИКУМ

Для исключения возможности установки посетителями значений сеансовых пере — менных (а, следовательно, и исключения возможности обхода процесса входа на сайт) все результаты формы должны передаваться с помощью метода POST. При

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 24.02.2011">Руководство по actionscript. часть 7, стр. 006
  • 29.07.2010">Начало начал
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 058
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 042
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.149
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 048
  • 17.03.2011">Руководство по actionscript. часть 3, стр. 001
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 059
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 069
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 111
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.41
  • 28.02.2011">Руководство по actionscript. часть 5, стр. 138
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 114
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.59
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 125
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...