Информатика технологии программирования Java

Полупроводниковые материалы http://fislub.ru/

Машиностроительное черчение
Выполнение сечений
Правила выполнения технических чертежей
Виды аксонометpических пpоекций
Эскиз детали
Нанесение размеров на чертежах
Чтение сборочных чертежей
Основные способы проецирования
Сопротивление материалов
Сопромат задачи
Сопротивление материалов примеры
Кинематика примеры решения задач
Статика примеры решения задач
Физика, электротехника
Электротехника
Электромагнетизм
Расчет режимов трехфазных цепей
Расчет электрических цепей постоянного и переменного тока
Методы расчета электрических цепей
Примеры  решения типовых задач по электротехнике
Физика оптика Курс лекций
Примеры решения задач по классической физике
Примеры решения задач контрольной работы по физике
Физика решение задач
Молекулярная физика и термодинамика
Курс лекций по атомной физике
Ядерная модель атома
Квантовая механика
Рентгеновские спектры
Первый газовый лазер
Металлы, диэлектрики и полупроводники по зонной теории.
Полупроводниковые диоды и триоды (транзисторы)
Радиоактивное излучение и его виды
Ядерные реакция

Понятие о ядерной энергетике

Информатика
Лекции Java
Язык JavaScript
Интернет
Язык PHP
Архитектура ПК
Высшая математика
Вычисление интегралов и рядов
Примеры вычисления интеграла
Примеры выполнения контрольной работы по математике
комплексные числа
Последовательности
Предел функции
Непрерывные функции
Дифференциальное исчисление
Формула Тейлора
Определенныеинтегралы
Двойной интеграл
Тройные интеграл
Криволинейные интегралы
Элементы теории поля
Интегралы от параметра
Элементы тензорного
исчисления
Примеры решения задач
Теория множеств
Построения графика функции
Элементарная математика
Интегралы
Кратные интегралы
Векторный анализ
Аналитическая геометрия
Интегральное исчисление
Дифферинциальные урав.
Элементарная математика
Математический анализ
Мат. анализа часть 3
Комплексные числа
 

 

Введение

 

Глава 1. Встроенные типы данных, операции над ними

Глава 2. Объектно-ориентированное программирование в Java

 

Глава 3. Пакеты и интерфейсы

Глава 4. Классы-оболочки

Глава 5. Работа со строками

Глава 6. Классы-коллекции

Глава 7. Классы-утилиты

Глава 8. Принципы построения графического интерфейса

Листинг 12.1a. secret_info.html (html, txt)

Если оставить оба эти файла как есть, то любой посетитель, кликнув на ссылку "Для Пети", попадет на секретную страничку. Чтобы этого избежать, нужно добавить промежуточный скрипт, который будет проверять, действительно ли Петя хочет попасть на секретную страничку. И сделать так, чтобы главный файл ссылался не сразу на 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 (html, txt)

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

<?

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 (html, txt)

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

 

 

Глава 9. Графические примитивы

Глава 10. Основные компоненты

Глава 15. Изображения и звук

.

  • Глава 16. Обработка исключительных ситуаций

  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java

Глава 20.

Механизм сессий

Cессии - это механизм, который позволяет создавать и использовать переменные, сохраняющие свое значение в течение всего времени работы пользователя с сайтом.

Эти переменные для каждого пользователя имеют различные значения и могут использоваться на любой странице сайта до выхода пользователя из системы. При этом каждый раз, заходя на сайт, пользователь получает новые значения переменных, позволяющие идентифицировать его в течение этого сеанса или сессии работы с сайтом. Отсюда и название механизма - сессии.

Задача идентификации пользователя решается путем присвоения каждому пользователю уникального номера, так называемого идентификатора сессии (SID, Session IDentifier). Он генерируется PHP в тот момент, когда пользователь заходит на сайт, и уничтожается, когда пользователь уходит с сайта, и представляет собой строку из 32 символов (например, ac4f4a45bdc893434c95dcaffb1c1811). Этот идентификатор передается на сервер вместе с каждым запросом клиента и возвращается обратно вместе с ответом сервера.

Существует несколько способов передачи идентификатора сессии:

С помощью cookies.

Cookies были созданы специально как метод однозначной идентификации клиентов и представляют собой расширение протокола HTTP. В этом случае идентификатор сессии сохраняется во временном файле на компьютере клиента, пославшего запрос. Метод, несомненно, хорош, но многие пользователи отключают поддержку cookies на своем компьютере из-за проблем с безопасностью.

С помощью параметров командной строки.

В этом случае идентификатор сессии автоматически встраивается во все запросы (URL), передаваемые серверу, и хранится на стороне сервера.

Например: адрес http://green.nsu.ru/test.php превращается в адрес

Этот способ передачи идентификатора используется автоматически, если у браузера, отправившего запрос, выключены cookies. Он достаточно надежный - передавать параметры в командной строке можно всегда. С другой стороны, идентификатор сессии можно подглядеть, воспользоваться сохраненным вариантом в строке браузера или подделать. Хотя, конечно, все эти проблемы либо надуманны либо их можно решить. Например, кто сможет запомнить строку из 32 различных символов? А если правильно организовать работу с сессиями (вовремя их уничтожать), то даже сохранившийся в браузере номер сессии ничего не даст. К вопросам безопасности мы еще вернемся в конце лекции.

Кроме перечисленных вариантов передачи идентификатора сессии, известно еще несколько, но мы их рассматривать не будем ввиду их сложности.

Настройка сессий

Прежде чем начать работать с сессиями, следует разобраться в том, как корректно настраивать их обработку интерпретатором PHP. Сама работа с сессиями в PHP поддерживается по умолчанию. Это значит, что устанавливать никаких дополнительных элементов не нужно. А вот знать, что записано в настройках этого модуля, полезно, чтобы избежать ошибок при работе с ним.

Настройки PHP, в том числе и для работы с сессиями, прописываются в файле php.ini. Обратимся к этому файлу.

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

Параметр session.save_path в php.ini, определяет, где на сервере будут храниться данные сессии. Из-за него чаще всего возникают проблемы для Windows-серверов, потому что по умолчанию значение session.save_path установлено в /tmp. И если в корневой директории сервера такой папки нет, то при запуске сессий будет выдаваться ошибка.

Сервер может обрабатывать большое количество сессий одновременно, и все их временные файлы будут храниться в директории, заданной параметром session.save_path. Если система плохо работает с папками большого размера, то удобно использовать поддиректории. Для этого, кроме названия папки, в значение параметра добавляют еще и число, определяющее глубину вложенности поддиректорий в этой папке: N;/dir. Это значение нужно обязательно взять в кавычки, поскольку точка с запятой является одним из символов комментариев в файле настроек PHP. Все директории и поддиректории для хранения данных сессии нужно создать самостоятельно.

Например: 2;/Temp определяет, что переменные сессий будут храниться в папках вида c:\Temp\0\a\, c:\Temp\0\b\ и т.п.

Хранение данных на стороне клиента осуществляется с помощью cookies. Работу PHP с cookies можно настроить, в частности, с помощью параметров session.use_cookies, session.cookie_lifetime и т.п.

Параметр session.use_cookies определяет, использовать ли cookies при работе с сессиями. По умолчанию эта опция включена (т.е. принимает значение "1").

Параметр session.cookie_lifetime задает длительность жизни cookies в секундах. По умолчанию это "0", т.е. данные в cookies считаются правильными до закрытия окна браузера.

Кроме этих параметров, полезными могут оказаться session.name, определяющий имя сессии, session.auto_start, позволяющий автоматически запускать сессии, session.serialize_handler, задающий способ кодировки данных сессии, и параметр session.cache_expire, определяющий, через сколько минут устаревает документ в кэше.

Имя сессии session.name по умолчанию устанавливается как PHPSESSID и используется в cookies как имя переменной, в которой хранится идентификатор сессии. Автоматический запуск сессий по умолчанию отключен, но его можно задать, сделав значение session.auto_start равным "1". Для кодирования данных сессии по умолчанию используется php. Устаревание данных, сохраненных в кэше, происходит через 180 минут.

Существует еще множество настроек, с которыми можно познакомиться в документации или непосредственно в файле настроек php.ini. На наш взгляд, знакомства с перечисленными выше параметрами достаточно для работы с сессиями в PHP. Так что приступим.

Требования, предъявляемые к современным вычислительным сетям
Высшая математика Лекции, конспекты, курсовые, примеры решения задач