Обработка формы - использовать сессии, или нет?

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

в общем, конкретную реализацию надо все равно еще писать и отлаживать...
 
Автор оригинала: _RVK_
хотя и можно иногда обойтись без редиректа, но лучше все таки избежать сообщений "ваша страница устарела"?
Или есть ситуации когда этого сделать невозможно, следовательно и редирект ненужен?
Я согласен.
У меня раньше не было систематизированного подхода к решению такого базового вопроса, как "что делать после POST-a". Топик заставил задуматься и осознать, что я часто делал неправильно.
Принцип "всегда редирект" у меня вызвал сомнение, иногда он просто невозможен.
А вообще, спасибо всем за тему. Можно даже статью писать.

Фанат, я на самом деле хотел спросить, как технически люди предпочитают автоматизировать редирект - Javascript с задержкой, meta, или просто ссылка.
 
Gas,
ты имеешь ввиду, что ты используешь хедер location?

Я стал применять редиректы повсеместно после прочтения требования п. 9.5 о том, что в ответ на POST-запрос сервер не должен создавать ресурс, который может быть идентифицирован по URI.
Фактически, я это понимаю как требование для ресурсов, которые должны/могут быть доступны по GET/HEAD, не выдавать их сразу после POST-a, а только через редирект со временной страницы типа "операция успешна".
 
Принцип "всегда редирект" у меня вызвал сомнение, иногда он просто невозможен.
это очень странное и весьма глупое заблуждение.
Если человек на таком уровне не знает основы языка, то - ЗАПОМНИ - такого рода высказывания должны оформляться в другой форме: "у меня такая-то ситуация, в которой не получается сделать редирект. Поясните дураку - что я не понимаю, и как переделать, чтобы редирект сработал?"
я на самом деле хотел спросить, как технически люди предпочитают автоматизировать редирект
предпочтерия тут не при чем. вариант есть только один - выбирать не из чего
 
grigori
На самом деле! Редирект не должен быть заметен пользователю. Зачем заставлять его ждать когда загрузится страница, а после этого грузить ему новую? А то о чем говоришь ты предназначено для совсем других целей, и с обсуждаемым вопросом не имеет никакой связи.
 
<offtop>
Фанат
Недавно на этом форуме я, но уже успел заметить жесткость Ваших высказываний :)

P.S. Но, признаться, ни разу еще не видел, чтобы Вы были неправы :)
</offtop>

-~{}~ 23.02.05 00:28:

grigori

Такое ощущение, что вы пытаетесь что-то сделать с отправкой данных из формы в первый раз. Вам прямая дорога в ФАК этого сайта и в RFC. В ФАКе, кстати, про отправку данных методом POST, изложена весьма неплохая первичная идея, из которой можно почерпнуть корни для своего собственного решения.
 
Huckster
Но, признаться, ни разу еще не видел, чтобы Вы были неправы
Ну, за этим не заржавеет :-)
Зато, поверь, когда такое случается, падать очень больно. Особенно, если учесть то, что я, как бы, тоже привыкаю к тому, что не бываю неправ :-)
Причем самое смешное бывает, когда прикладывают в теме, которая, казалось бы, обсосана вдоль и поперек.

По поводу высказывания - ну убейте меня - не виду я в этом высказывании ничего жёсткого. Я сам именно так и высказываюсь. В смысле "подскажите дураку". Т.е. это же ведь совершенно нормальное поведение человека.
Я не хочу никого унизить. Мало знать - НЕ ПОЗОРНО! позорно как раз, при малых знаниях высказываться в таком вот безапелляционном тоне - "невозможен". Разве я неправ?
 
Фанат
Как ни крути, опять я согласен :)

вместо "невозможен", в этом случае нужно сказать "не знаю, как реализовать". И все будут довольны и возможно, подскажут, HOW.
 
Huckster,
"Трусливые остались дома, слабые погибли в пути, дошли победители" - не помню, чья фраза, но очень по делу.
Я ни в коем случае не против того, чтобы меня обломали. Это же способ ощутить, что надо меняться - бизнесу будет лучше.

_RVK_ - понял

Фанат,
у меня ситуация на browser.grik.net (сервис a-la anonymizer.com), в которой не получается сделать редирект после POST-a.
Например, логин на yahoo mail:
http://browser.grik.net/http://mail.yahoo.com/?.intl=us
Сервер принимает POST-запрос, передает его серверу yahoo по указанному клиентом адресу и выдает в браузер ответ, который получен от сервера.
Поясните дураку - что я не понимаю, и как переделать, чтобы редирект сработал?
 
grigori

Может, так - сервер принимает POST-запрос, заносит данные во временное хранилище, а затем делает редирект на другой скрипт, который в свою очередь (после успешной проверки) формирует новый POST-запрос из этих данных и передает его серверу yahoo по указанному... (далее по тексту)?

По большому счету, чем так уж отличается посылка запроса к внешнему серверу от привычной посылки запроса к базе данных? Или я что-то важное упустил?
 
grigori
Eсли это у тебя какой-то сервис, к которому обращение идёт не из броузера, то имхо редирект да, не обязателен.
Если же данные идут из броузера, то c помощью сессий это решается.
 
Два "но":

1. Запрос может быть объемным. Писать весь POST в сессию - нагрузка и потенциальная дырка (см. выше).
Сейчас все данные идут транзитом.

2. Если сервер, который предоставляет контент, выставляет редирект после POST-a, получится,
что у браузера будет два редиректа вместо одного.
Если автор контента выдает после POST-a заголовки запрета кеширования и умышленно хочет ограничить
возврат на страницу, вставлять редирект будет неправильно.
Плохого, на первый взгляд, ничего, но это так же неправильно, на мой взгляд, как не выставлять редирект после POST.
 
поясните дураку проблему анонимайзера подробнее.
почему надо делать редирект ДО того, как придет ответ с хоста?
какая проблема сделать редирект по адресу, который пришел 302 заголовокм в ответе хоста?
 
я и говорю - не надо, если редирект сервером предусмотрен - он будет,
но если 302го ответа и заголовка location не было - то редиректа нет и у анонимайзера
в данном случае мой сервер редирект после POST-a не делает, только дублирует редирект того сервера, с которым идет связь (или не делает)
 
чувак.
мы говорим о пхп-скриптах.
не надо сюда приплетать свою проксю.
 
Сверху