Особенности механизма сеансов




Отчет по лабораторной работе №16

«Применение cookie и сеансов в PHP»

Вариант 3

 

Задание: Создать скрипты: 1-й - для установки коэффициентов системы из 2-х уравнений от 2-х переменных (значения не вводят через поля формы), 2-й - для нахождения решений системы, 3-й - для вывода результата. Использовать cookie или сессии

URL-адрес: https://172.23.64.64/ftp/10/1410177/Lab16/lab16_1.php

Цель:

1. Изучить механизм работы c cookie-файлами.

2. Изучить механизм работы сеансов и использования сеансовых переменных.

3. Применить полученные знания для написания сценариев на PHP.

 

Содержание отчета:

1. Титульный лист.

2. Теоретическая часть.

3. Обязательно указать номер варианта, текст индивидуального задания, тестовые данные.

4. Копии экрана, иллюстрирующие работу сценариев PHP.

5. Коды php-страниц, выполненных согласно варианту.

 

Теоретическая часть

Cookie – этот механизм первоначально задумывался как основной для обеспечения обмена данными между различными страницами. Однако следует помнить, что данные cookie сохраняются на компьютере клиента. Пользователь браузера может управлять настройками механизма cookie вплоть до полного его отключения (многие так и поступают). Это обстоятельство ограничивает использование cookie в разработках серьезных Web-приложений. Так, если приложение ориентировано на использование cookie, а пользователь отключил их, то приложение может работать некорректно. Например, в некоторых гостевых книгах добавление записей пользователей возможно, только если механизм cookie включен.

В РНР установка значений cookie-записей производится с помощью встроенной функции setcookie(), а их чтение — с помощью суперглобального массива $_COOKIE.

Функция setcookie(name, value, expires, path, domain, secur) примает следующие параметры: name — строка, содержащая имя cookie-записи (обязательный параметр)|;

value — строка, содержащая значение cookie;

expires — срок хранения cookie-записи как количество секунд; если отсутствует, то после завершения работы браузера cookie-запись удаляется; время жизни следует задавать с помощью функции time() или mktime(). Например, если необходимо установить время жизни cookie-записи 2 часа, начиная от момента ее создания, то значение данных параметра следует задать как time()+2*60*60;

path — строка, содержащая путь cookie-записи;

domain — строка, содержащая домен нужной cookie-записи;

secure — логическое значение (true или false), определяющее необходимость использования безопасного HTTP-соединения.

Для применения функции setcookie() обязательным является только первый параметр — имя cookie-записи. Для создания cookie-записи достаточно указать непустое значение второго параметра.

Для удаления cookie-записи достаточно установить для нее пустое значение:

setcookie ("mycookie");

setcookie ("mycookie", "");

Сеанс (сессия, session) в РНР — механизм, который позволяет обеспечить доступность данных, созданных на различных серверных страницах одного сайта, для других страниц в этом же сайте. Технология сеансов открывает возможности и преодолевает ограничения cookie по обмену данными между Web-страницами. Сеанс создается и закрывается. В интервале времени между этими событиями все РНР-сценарии, расположенные в разных файлах и подключенные к данному сеансу, имеют доступ к переменным, созданным в других сценариях этого же сайта.

Сеанс создается с помощью встроенной функции session_start() на каждой серверной странице, которую требуется подключить к сеансу. Если необходимо, чтобы все страницы имели доступ ко всем данным, сгенерированным на любой из них, то функцию session_start() следует вызвать на всех страницах.. Функция session_start() не имеет параметров, а возвращает всегда true. Вызов функции session_start() должен предшествовать выводу какой-либо информации в браузер.

 

Особенности механизма сеансов

Поддержка cookie включена. В этом случае глобальной переменной $PHPSESSID присваивается значение идентификатора сеанса; а cookie используется для передачи значения $PHPSESSID между сценариями (страницами).

Поддержка cookie отключена. Интерпретатор PHP создает константу, значением которой является "PHPSESSID=идентификатор_сеанса". Использование идентификатора сеанса определяется значением директивы session.use_trans_sid. По умолчанию это значением равно 0 (директива отключена). Чтобы включить данную директиву, необходимо в файле php.ini изменить соответствующую строку: session.use_trans_sid=1. При включенной директиве можно создавать сценарии, не зависящие от настройки браузера по применению cookie. Рассмотрим случаи различных значений директивы session.use_trans_sid:

1. session.use_trans_sid =1. Идентификатор сеанса при отключенной поддержке cookie пересылается посредством элементов, в которых указан URL-адрес. При переходе на другую страницу с помощью ссылки, функции header() или формы с методом GET идентификатор сеанса добавляется к URL-адресу и виден в адресной строке браузера, что иногда нежелательно. Следует иметь в виду, что идентификатор сеанса добавляется к URL-адресам, соответствующим одному и тому же сайту. Если в URL-адресе содержится имя сервера, то к такому URL-адресу идентификатор сеанса не будет добавлен. Например, при использовании ссылки <а href="nextpage.html> идентификатор будет добавлен к адресу, а при использовании ссылки <а href=https://myserver.ru/nextpage.php - нет: Однако можно использовать передачу идентификатора сеанса в скрытых полях формы с методом POST, при котором идентификатор сеанса не добавляется к URL-адресу: <input type=hidden name='PHPSESSID' value='$PHPSESSID'>

2. session.use_trans_sid =0. Идентификатор сеанса при отключенной
поддержке cookie не пересылается. При необходимости разработчик приложения делает это самостоятельно, используя константу SID. Поскольку эта константа имеет значение вида "PHPSESSID=идентификатор_сеанса", то можно просто добавить ее к URL-адресу, например, <а href="mainpage.php?<?php echo SID?>">Главная страница</а>. Однако в этом случае идентификатор сеанса, видимый в адресной строке браузера, может быть использован злоумышленниками в неблаговидных целях.

Выполнение задания

Вариант 3.

 

Создать скрипты: 1-й - для установки коэффициентов системы из 2-х уравнений от 2-х переменных (значения не вводят через поля формы), 2-й - для нахождения решений системы, 3-й - для вывода результата. Использовать cookie или сессии

Копии экрана с работающим приложением:

 

 

Рис.1.Скрипт 1

 

 

 

Рис.2. Скрипт 2

 

 

Рис.3. Скрипт 3

 

 

Листинг программного кода:

lab16 _1.php: (Скрипт на языке PHP)

<?php

setcookie("a1", 3);

setcookie("c1", 15);

setcookie("a2", 4);

setcookie("b2", 3);

setcookie("c2", 2);

echo "<h2>Лабораторная работа №16</h2>";

echo "<br><b>Задание: 3.</b>";

echo "Создать скрипты: 1-й - для установки коэффициентов системы из 2-х уравнений от 2-х переменных (значения не вводят через поля формы), 2-й - для нахождения решений системы, 3-й - для вывода результата. Использовать cookie или сессии";

echo "<br><b>Выполнила: </b>";

echo "Белова Алена";

echo "<br><br><br>Установлены коэффициенты для системы уравнений";

echo "<br>1-е уравнение: 3y=15";

echo "<br>2-е уравнение: 4x+3=2y";

echo "<br><br><a href=lab16_2.php>Следующий скрипт</a>";

?>

 

lab16 _2.php: (Скрипт на языке PHP)

<?php

if ((isset($_COOKIE['a1'])) && (isset($_COOKIE['c1'])))

{

$a1=$_COOKIE['a1'];

$c1=$_COOKIE['c1'];

}

$y=$c1/$a1;

if ((isset($_COOKIE['a2'])) && (isset($_COOKIE['b2'])) && (isset($_COOKIE['c2'])))

{

$a2=$_COOKIE['a2'];

$a2=$_COOKIE['b2'];

$c2=$_COOKIE['c2'];

}

$x=($c2*$y-$b2)/$a2;

setcookie("x", $x);

setcookie("y", $y);

echo "<br><br>Здесь были произведены вычисления";

echo "<br><br><a href=lab16_3.php>Следующий скрипт</a>";

?>

 

lab16 _3.php: (Скрипт на языке PHP)

<?php

if ((isset($_COOKIE['x'])) && (isset($_COOKIE['y'])))

{

echo "<br>Переменная x = ";

echo $_COOKIE['x'];

echo "<br>Переменная y = ";

echo $_COOKIE['y'];

}

?>

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: