PHP+Web-сервер

1.

PHP, Cookies и т.д.
vk.com/web_dev_courses
web.dev.courses.dp.ua/ort/

2.

PHP+Web-сервер
Одна из возможностей web-сервера – поддержка сеанса работы с пользователем.
Cookie-файлы
Данные о пользователе хранятся в
бразуере и передаются серверу при
каждом обращении.
Данные подвержены
подделке.
хищению,
Сессии (session)
Данные о пользователе хранятся на
сервере, бразуер передаёт серверу
лишь идентификатор сессии (к
которой привязаны данные).
Данные не подвержены хищению,
подделке.
Идентификатор сессии хранится в
cookie-файле или в URL.
Оба варианта поддержки сеанса работы с пользователем следует рассматривать
как временное хранение данных о пользователе. И исходить из того, что эти
данные могут быть утеряны в любой момент времени.
2

3.

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

4.

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

5.

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

6.

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

7.

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

8.

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

9.

Кодировка
windows-cp1251 ?
utf-8 ???
KOI-8R ??
Когда браузер открывает файл с файловой системы (т.е. не через вебсервер), то возможностей узнать кодировку файла, у браузера, не много:
либо получить информацию из самого файла, либо попытаться угадать.
Пути получения данных кодировки на основе данных из самого файла.
9

10.

Кодировка
charset=utf-8
Когда браузер получает файл от веб-сервера, то у сервера есть
возможность приоритетно указать кодировку тех файлов которые
передаются сервером.
кодировка от сервера == кодировка файла == кодировка документа
Кодировка сервера, файла и документа должны совпадать, иначе возникает
ситуация неоднозначности, принятие решения остаётся за браузером. 10

11.

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

12.

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

13.

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

14.

HTTP запрос, HTTP ответ
Любые символы до начала «php-тега» заставляют сервер
оформить и отправить заголовок пользователю. Тем
самым лишая возможности добавить в него что-то.
14

15.

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

16.

HTTP запрос, HTTP ответ
Файл без BOM
Файл c BOM
Любые символы до начала «php-тега» заставляют сервер
оформить и отправить заголовок пользователю. Тем
самым лишая возможности добавить в него что-то.
16

17.

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

18.

HTTP запрос, HTTP ответ
Ладно, сохраняем файл в формате без ВОМ.
Почему?
Потому что сервер «утверждает» что это файл в кодировке
1251, хотя на самом деле он в utf-8. Возникает
18
неоднозначность, поведение браузера нерегалментировано.

19.

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

20.

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

21.

Что делать?

22.

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

23.

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

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
25

26.

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

27.

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

28.

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

29.

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

30.

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

31.

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

32.

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

33.

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

34.

PHP
http://www.w3schools.com/php/
34
English     Русский Правила