Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 01.06.2002, 23:27
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 1  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
По умолчанию несколько вопросов по <form>

1) Какой метод (GET и POST) лучше использовать для каких целей?..

2) атрибут enctype-data - для чего
спсб...

Старый 02.06.2002, 01:02
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 2  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
По умолчанию Re: несколько вопросов по <form>

Цитата:
Оригинал написал(а) metton
1) Какой метод (GET и POST) лучше использовать для каких целей?..
Случаи, когда в form уместен именно GET, весьма редки. Ибо такие формы имеют серьезные ограничения на размер передаваемых данных и -- сюрприз -- их ответ может кэшироваться. Следовательно, на одинаковый ввод они должны давать одинаковый разультат. Типичный пример -- поисковики.

Опять же из-за кэширования запрещается GET-формам модифицировать данные.

Цитата:

2) атрибут enctype-data - для чего
спсб...
Для указания способа кодирования передаваемых данных. Надеюсь, для тебя не секрет, что формы могут передавать только текстовые данные и для upload'а файлов, к примеру, пришлось извращаться.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 02.06.2002, 02:30
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 3  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
спасибо за ответ
из ответа на первый вопрос понял, что ГЕТ лучше вообще не использовать... так?

единственное не понял вот этой фразы:
"Следовательно, на одинаковый ввод они должны давать одинаковый результат."

из ответа на второй вопрос возникли ещё вопросы...
а какие существуют способы кодирования? (мож вопрос и глуп, но: это кодировка?)
а как же input file (насчёт извращения)?

спасибо...

Старый 02.06.2002, 03:15
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 4  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) metton
из ответа на первый вопрос понял, что ГЕТ лучше вообще не использовать... так?
Неверно. Нужно использовать там, где его особенности являются плюсами, а не минусами.

Цитата:

единственное не понял вот этой фразы:
"Следовательно, на одинаковый ввод они должны давать одинаковый результат."
Есть два основных правила кэширования:

1. Нельзя кэшировать то, что пришло в ответ на POST.
2. Можно кэшировать то, чо пришло в ответ на GET. При этом ключом является, разумеется, URL. Применительно к форме -- то, что в нее ввели.

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

В случае POST -- обращение к серверу будет в любом случае.

А теперь -- пример. Форма, в которой два поля: название проданного товара и его количество. Обработчик формы на сервере должен внести эти данные в БД.

В случае POST-формы это будет работать корректно всегда. В случае же GET-формы если ввести несколько раз одно и то же сочетание товар-количество, то каждый раз будет выдано сообщение об успешном добавлении, тогда как в реальнойсти может оказаться, что обращение к серверу было всего одно и два транзакции просто потеряны.

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

Если для любого пользователя поиск возвращает одно и то же -- будет экономия ресурсов сервера. Иначе -- будет крутой глюк.

Цитата:

из ответа на второй вопрос возникли ещё вопросы...
а какие существуют способы кодирования?
Реально используются две:

1. URL-кодирование (латинские буквы, цифры и некоторые символы передаются как есть, пробел заменяется на '+', а все остальное -- на hex-код с префиксом '%').

2. mime (формат, часто используемый в e-mail).

Цитата:

а как же input file (насчёт извращения)?
Вот как раз файлы и передают в mime-- в формате, допускающем несколько блоков и различные виды кодирования (обычно -- base64).
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++


Последний раз редактировалось Crazy; 02.06.2002 в 03:16.
Старый 02.06.2002, 03:53
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 5  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
опять же спасибо
и опять же возникают новые вопросы...
в каких именно случаях ГЕТ имеет плюсы?
и как пречисленные тобой спосбы кодирования называются (что именно нужно прописывать в enctype)
спсб...

Старый 02.06.2002, 04:13
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 6  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) metton
опять же спасибо
и опять же возникают новые вопросы...
в каких именно случаях ГЕТ имеет плюсы?
Дык я ж написал: типичное применение -- поиск.

Цитата:
и как пречисленные тобой спосбы кодирования называются (что именно нужно прописывать в enctype)
Поскольку URL-кодирование используется по-умолчанию, то только при upload'е файлов нужно указать enctype="multipart/form-data". В остальных случаях -- вообще не указывать. Разумеется, для GET эта опция особого смыла не имеет.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 03.06.2002, 20:26
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 7  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
2Crazy
а всё-тки, для чего же тогда input file ?

Старый 03.06.2002, 20:31
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 8  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Чтобы браузер догадался, что ты ввел в поле не сами пересылаемые данные, а всего лишь имя файла. Заодно -- и кнопка "Browse" добавит.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 03.06.2002, 20:37
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 9  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
а как же через простой text выбрать файл на диске?

Старый 03.06.2002, 20:47
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 10  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Никак. А при чем здесь "простой текст"?
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Создать новую тему   Часовой пояс GMT +4, время: 09:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.