PHP+Web-сервер

Содержание

Слайд 2

PHP+Web-сервер Одна из возможностей web-сервера – поддержка сеанса работы с пользователем.

PHP+Web-сервер

Одна из возможностей web-сервера – поддержка сеанса работы с пользователем.

Cookie-файлы

Сессии (session)

Идентификатор

сессии хранится в cookie-файле или в URL.

Данные о пользователе хранятся на сервере, бразуер передаёт серверу лишь идентификатор сессии (к которой привязаны данные).

Данные о пользователе хранятся в бразуере и передаются серверу при каждом обращении.

Данные подвержены хищению, подделке.

Данные не подвержены хищению, подделке.

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

Слайд 3

PHP+Web-сервер, cookie-файлы index.php DENWER => /home/aaa.dp.ua/www

PHP+Web-сервер, cookie-файлы

index.php

DENWER => /home/aaa.dp.ua/www

Слайд 4

Cookie-файлы (упрощенный пример) index.php DENWER => /home/aaa.dp.ua/www

Cookie-файлы (упрощенный пример)

index.php

DENWER => /home/aaa.dp.ua/www

Слайд 5

PHP+Web-сервер, cookie-файлы

PHP+Web-сервер, cookie-файлы

Слайд 6

PHP+Web-сервер, cookie-файлы

PHP+Web-сервер, cookie-файлы

Слайд 7

Опять проблемы с кодировкой

Опять проблемы с кодировкой

Слайд 8

Устанавливали спец. маркер UTF-8 BOM, чтобы браузер понял в какой кодировке файл. Кодировка

Устанавливали спец. маркер UTF-8 BOM, чтобы
браузер понял в какой кодировке

файл.

Кодировка

Слайд 9

Когда браузер открывает файл с файловой системы (т.е. не через веб-сервер),

Когда браузер открывает файл с файловой системы (т.е. не через веб-сервер),

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

windows-cp1251 ?

utf-8 ???

KOI-8R ??

Пути получения данных кодировки на основе данных из самого файла.

Кодировка

Слайд 10

Кодировка Когда браузер получает файл от веб-сервера, то у сервера есть

Кодировка

Когда браузер получает файл от веб-сервера, то у сервера есть возможность

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

charset=utf-8

кодировка от сервера == кодировка файла == кодировка документа

Кодировка сервера, файла и документа должны совпадать, иначе возникает ситуация неоднозначности, принятие решения остаётся за браузером.

Слайд 11

HTTP запрос, HTTP ответ Заголовки передаются клиенту до отправки содержимого. Если

HTTP запрос, HTTP ответ

Заголовки передаются клиенту до отправки содержимого. Если заголовок

уже отправлен добавить в него что-то в уже нельзя.
Слайд 12

HTTP запрос, HTTP ответ 1. 2. Сначала передаётся заголовок, потом передаётся тело документа.

HTTP запрос, HTTP ответ

1.

2.

Сначала передаётся заголовок, потом передаётся тело документа.

Слайд 13

HTTP запрос, HTTP ответ Cookie передаётся в заголовке.

HTTP запрос, HTTP ответ

Cookie передаётся в заголовке.

Слайд 14

HTTP запрос, HTTP ответ Любые символы до начала «php-тега» заставляют сервер

HTTP запрос, HTTP ответ

Любые символы до начала «php-тега» заставляют сервер оформить

и отправить заголовок пользователю. Тем самым лишая возможности добавить в него что-то.
Слайд 15

HTTP запрос, HTTP ответ Почему возникли проблемы c примером???

HTTP запрос, HTTP ответ

Почему возникли проблемы c примером???

Слайд 16

HTTP запрос, HTTP ответ Любые символы до начала «php-тега» заставляют сервер

HTTP запрос, HTTP ответ

Любые символы до начала «php-тега» заставляют сервер оформить

и отправить заголовок пользователю. Тем самым лишая возможности добавить в него что-то.

Файл без BOM

Файл c BOM

Слайд 17

HTTP запрос, HTTP ответ Сообщение об ошибке, заключающейся в том, что

HTTP запрос, HTTP ответ

Сообщение об ошибке, заключающейся в том, что первый

байты файла переданы клиенту, и теперь внести в заголовок данные о cookie уже нельзя.
Слайд 18

HTTP запрос, HTTP ответ Ладно, сохраняем файл в формате без ВОМ.

HTTP запрос, HTTP ответ

Ладно, сохраняем файл в формате без ВОМ.

Почему?

Потому что

сервер «утверждает» что это файл в кодировке 1251, хотя на самом деле он в utf-8. Возникает неоднозначность, поведение браузера нерегалментировано.
Слайд 19

HTTP запрос, HTTP ответ Необходимо указать серверу, какую кодировку необходимо писать в заголовке ответа.

HTTP запрос, HTTP ответ

Необходимо указать серверу, какую кодировку необходимо писать в

заголовке ответа.
Слайд 20

HTTP запрос, HTTP ответ

HTTP запрос, HTTP ответ

Слайд 21

Что делать?

Что делать?

Слайд 22

PHP+Web-сервер, cookie-файлы index.php DENWER => /home/aaa.dp.ua/www Сохранит в кодировке UTF-8 без метки BOM!!!

PHP+Web-сервер, cookie-файлы

index.php

DENWER => /home/aaa.dp.ua/www

Сохранит в кодировке UTF-8 без метки BOM!!!

Слайд 23

PHP+Web-сервер, cookie-файлы index.php DENWER => /home/aaa.dp.ua/www Сохранит в кодировке UTF-8 без метки BOM!!!

PHP+Web-сервер, cookie-файлы

index.php

DENWER => /home/aaa.dp.ua/www

Сохранит в кодировке UTF-8 без метки BOM!!!

Слайд 24

Сборка файлов

Сборка файлов

Слайд 25

Сборка файлов index.php DENWER => /home/aaa.dp.ua/www file_1.php DENWER => /home/aaa.dp.ua/www file_2.php DENWER => /home/aaa.dp.ua/www

Сборка файлов

index.php

DENWER => /home/aaa.dp.ua/www

file_1.php

DENWER => /home/aaa.dp.ua/www

file_2.php

DENWER => /home/aaa.dp.ua/www

Слайд 26

Сборка файлов Структура файлов

Сборка файлов

Структура файлов

Слайд 27

Сборка файлов После подключения всех других файлов file_1.php file_2.php

Сборка файлов

После подключения всех других файлов

file_1.php

file_2.php

Слайд 28

Сборка файлов

Сборка файлов

Слайд 29

Сборка файлов (второй вариант) index.php DENWER => /home/aaa.dp.ua/www file.php DENWER => /home/aaa.dp.ua/www

Сборка файлов (второй вариант)

index.php

DENWER => /home/aaa.dp.ua/www

file.php

DENWER => /home/aaa.dp.ua/www

Слайд 30

Сборка файлов (второй вариант) file.php После подключения файла

Сборка файлов (второй вариант)

file.php

После подключения файла

Слайд 31

Сборка файлов (второй вариант)

Сборка файлов (второй вариант)

Слайд 32

Простейший чат index.php DENWER => /home/aaa.dp.ua/www

Простейший чат

index.php

DENWER => /home/aaa.dp.ua/www

Слайд 33

Простейший чат+ (самообновляющийся) index.php DENWER => /home/aaa.dp.ua/www

Простейший чат+ (самообновляющийся)

index.php

DENWER => /home/aaa.dp.ua/www