PHP, Forms, Cookies. Формы, валидация и обработка данных презентация

Содержание

Слайд 2

Формы, валидация и обработка данных

index.php

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

Слайд 3

Формы, валидация и обработка данных

file.php

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

Слайд 4

Формы, валидация и обработка данных

www.aaa.dp.ua/file.php?user_name=....

Слайд 5

Кодирование спецсимволов в URL при их передаче

Передача параметров в URL

Слайд 6

Передача параметров в URL

Передача параметров файлу, через URL

– спецсимвол, говорящий, что в этом

месте заканчивается адрес файла, и начинается перечень параметров.

– спецсимвол разделяющий имя параметра и его значение.

– спецсимвол разделяющий пары (имя параметра и его значение) друг от друга.

?

=

&

Основные спецсимволы при передаче параметров в URL

Слайд 7

Кодирование и декодирование параметров происходит
автоматически, в большинстве случаев.

Но...

JS

PHP

encodeURIComponent(url)

decodeURIComponent(url)

urlencode($url)

urldecode($url)

Функции которые позволяют принудительно кодировать/декодировать

строку в формат URL запроса.

"hi all! what's up?" =>
hi%20all!%20what's%20up%3F =>
"hi all! what's up?"

Кодирование/декодирование параметров в URL

Слайд 8

Формы, запросы

GET

POST

Параметры передаются в открытом виде, в строке URL.

Параметры передаются неявно, в теле

HTTP запроса.

Длинна строки параметров ограничена (255 байт, ограничение связано с совместимостью).

Объём передаваемых параметров неограничен (зависит от настроек сервера).

Является методом по умолчанию.

Слайд 9

Параметры, GET

Параметры передаются в заголовке запроса.

Слайд 10

Формы, параметры

Слайд 11

Формы, запросы

GET

POST

Получить параметры переданный формой можно с помощью соответствующего ассоциативного массива который PHP

формирует после того как разберёт запрос браузера.

REQUEST

Ассоциативный массив $_REQUEST объединяет в себе данные массивов $_GET и $_POST.

Слайд 12

Формы, параметры

Альтернативный пример

file.php

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

Слайд 13

Формы, параметры

Ручная передача параметров (безопасность)

Слайд 14

PHP+Web-сервер

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

Cookie-файлы

Сессии (session)

Идентификатор сессии хранится

в cookie-файле или в URL.

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

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

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

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

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

Слайд 15

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

index.php

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

Слайд 16

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

Слайд 17

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

Слайд 18

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

Слайд 19

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

Кодировка

Слайд 20

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

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

windows-cp1251 ?

utf-8 ???

KOI-8R ??

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

Кодировка

Слайд 21

Кодировка

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

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

charset=utf-8

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

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

Слайд 22

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

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

добавить в него что-то в уже нельзя.

Слайд 23

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

1.

2.

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

Слайд 24

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

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

Слайд 25

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

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

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

Слайд 26

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

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

Слайд 27

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

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

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

Файл без BOM

Файл c BOM

Слайд 28

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

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

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

Слайд 29

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

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

Почему?

Потому что сервер «утверждает»

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

Слайд 30

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

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

Слайд 31

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

Слайд 32

Что делать?

Слайд 33

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

index.php

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

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

Имя файла: PHP,-Forms,-Cookies.-Формы,-валидация-и-обработка-данных.pptx
Количество просмотров: 26
Количество скачиваний: 0