Язык программирования PHP

         

Авторизация доступа - часть 2


<html> <head><title>My home page</title></head> <body> Привет всем! Меня зовут Вася Петров и это моя домашняя страничка. <a href="secret_info.html">Для Пети</a> </body></html>

Листинг 12.1. Домашняя страничка Васи Петрова

и файл secret_info.html, который содержит секретную информацию, читать которую разрешено только Васиному другу Пете.

<html> <head><title>Secret info</title></head> <body> Здесь я хочу делиться секретами с другом Петей.</p> </body></html>

Листинг 12.1a. secret_info.html

Если оставить оба эти файла как есть, то любой посетитель, кликнув на ссылку "Для Пети", попадет на секретную страничку. Чтобы этого избежать, нужно добавить промежуточный скрипт, который будет проверять, действительно ли Петя хочет попасть на секретную страничку. И сделать так, чтобы главный файл ссылался не сразу на secret_info.html, а сначала на этот скрипт.

<html> <head><title>My home page</title></head> <body> <p>Привет всем! Меня зовут Вася Петров и это моя домашняя страничка. </p> <a href="authorize.php">Для Пети</a> </body> </html>

Листинг 12.1b. Index.html

Сам скрипт авторизации должен предоставлять форму для ввода логина и пароля, проверять их правильность и перенаправлять на секретную страничку, если проверка прошла успешно, и выдавать сообщение об ошибке в противном случае.

<? if (!isset($_GET['go'])){ // проверяем, отправлены ли данные формой echo "<form> // форма для авторизации //(ввода логина и пароля) Login: <input type=text name=login> Password: <input type=password name=passwd> <input type=submit name=go value=Go> </form>"; }else { // если форма заполнена, то сравниваем логин // и пароль с правильными логином и паролем if ($_GET['login']=="pit" && $_GET['passwd']=="123") { Header("Location: secret_info.html"); //и перенаправляем на секретную страницу }else echo "Неверный ввод, попробуйте еще раз<br>"; } ?>

Листинг 12.1c. authorize.php

Вроде бы все достаточно просто. Но допустим, у нас не одна секретная страничка, а несколько. Причем они связаны между собой перекрестными ссылками. Тогда возникает необходимость постоянно помнить пароль и логин посетителя сайта (если он таковой имеет). Чтобы решить эту проблему, можно в каждую страницу встроить скрипт, который будет передавать логин и пароль от страницы к странице в качестве скрытых параметров формы. Но такой способ не совсем безопасен: эти параметры можно перехватить и подделать. В PHP существует более удобный и безопасный метод решения проблемы хранения данных о посетителе в течение сеанса его работы с сайтом - это механизм сессий.




Содержание  Назад  Вперед






Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий