информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
а я не очень понимаю, как это после отправки хедера... 21.08.04 01:15  Число просмотров: 1825
Автор: tdes@ Статус: Незарегистрированный пользователь
<"чистая" ссылка> <обсуждение закрыто>
а я не очень понимаю, как это после отправки хедера Location, то есть после серверного редиректа и изменения метода загрузки на GET, появляется харрактерное только методу POST предупреждение о повторном сабмите формы ???
<web building>
Обновление страницы после отправки формы 21.08.04 00:32  
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Проблема такая: у меня на сервере достаточно большой поток комментариев и обычно пользователь сразу после отправки сообщения жмёт кнопку "Обновить" дабы посмотреть что там ещё кто написал. Что-то вроде чата получается. Но, браузер выводит пользователю вопрос "Повторить отправку формы?" и это не хорошо. Что бы с этим бороться, я в выводимой CGI странице прописываю <body onload='javascript:location.href="URI";'>. Рефреш тут не поможет, так как опять же будет вопрос об отправке формы. Однако у моего способа есть серьёзный недостаток - кнопка назад не работает, а она при моей организации сайта очень нужна (на главной лежат все новые поступления, а зажать shift для просмотра не все умеют). Да и тормозит такой способ - браузер разрывает соединение и для обновления страницы после поста посылает запрос ещё раз.

По совету dl использовал HTTP-заголовок "Location", но это тоже не помогло. На уровне протокола всё проходит как надо - как появляется директива "Location" браузер GET'ом запрашивает требуемую страницу, однако при нажатии на "Обновить" опять вылезает вопрос. В общем случае указанный способ работает, но не у меня, так как сама организация скрипта достаточно мудрёная. А именно:

Сам скрипт называется index.cgi и в .htaccess фигурирует в DirectoryIndex. Адрес до какой-то конкретной статьи выглядит как .../?n, где n - некоторое число. Скрипт if'ом разделён на две части - для запросов GET и POST. В случае GET он просто выводит страницу со статьёй, в которой имеется форма отправки комментария, у которой "ACTION=#". Менять ACTION я не могу опять же из-за идиотской организации - форма выводится не из CGI, а из файла со статьёй (комментарии дописываются в конец файла после формы). Таким образом, браузер отправляет комментарий по адресу .../?n#, а решетка игнорируется (единственный положительный момент во всей истории). В случае POST выводится то что я уже описывал - рефреш.

Вот, в общем-то, и всё. Менять организацию сервера мне нельзя - слишком много контента накопилось, так что придётся как-то плясать от того что есть. Сам, конечно, понимаю, что понаставил себе граблей - но что делать. Не думал что сайт быстро станет известным. Надеялся, что до его плотного заселения пользователями успею сделать всё по-нормальному. Блин.

Заранее благодарен.
А какой Location ты используешь - 301 или 302? 21.08.04 02:44  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Фуф, заработало. Спасибо. Заработало как с 301, так и с 302 - просто до этого я их жёстко не прописывал, а оказалось что надо. 21.08.04 13:14  
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
а я не очень понимаю, как это после отправки хедера... 21.08.04 01:15  
Автор: tdes@ Статус: Незарегистрированный пользователь
<"чистая" ссылка> <обсуждение закрыто>
а я не очень понимаю, как это после отправки хедера Location, то есть после серверного редиректа и изменения метода загрузки на GET, появляется харрактерное только методу POST предупреждение о повторном сабмите формы ???
Я не уверен что поведение юзер-агента при нажатии кнопки... 21.08.04 02:18  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
> а я не очень понимаю, как это после отправки хедера
> Location, то есть после серверного редиректа и изменения
> метода загрузки на GET, появляется харрактерное только
> методу POST предупреждение о повторном сабмите формы ???

Я не уверен что поведение юзер-агента при нажатии кнопки "Refresh" документировано в RFC
[upd] ссылка inside 21.08.04 01:29  
Автор: Heller <Heller> Статус: Elderman
Отредактировано 21.08.04 01:54  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Да я и сам-то не очень понимаю, почему так происходит. Видимо, тараканы IE (у меня стоит 6.0 - я его не обновляю)

Ссылка на скрипт с Location: http://heller.ru/authors/test2/?1
Если интересно посмотреть как это реализовано на данный момент - то можно открыть любую страницу сайта. Ссылка которую только что привёл глючит жутко (выводит ошибки JavaScript) - сваял на скорую руку, просто что бы показать суть проблемы.

Сразу предупреждаю, что на сайте обилие нецензурной лексики (в том числе и по ссылке). Но, в конце концов, сайты разные нужны.. {скромно потупив взгляд и краснея}
-------------------------
[upd]
Кстати говоря, пустые комментарии не принимаюся. Это на тот случай, если мало ли :-)
И ещё было бы интересно узнать - на всех ли браузерах имеется такая проблема или только на IE.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach