history_back и метод POST (и XML)

evgeniy

Guest
history_back и метод POST (и XML)

Ситуация:
есть скрипт find.php получает данные от формы методом пост и возвращает XML.
на этом XML пользователь жмет кнопку далее и передаются следующие данные этому же скрипту и он опять же возвращает другой XML.
Так в чем собс-но проблема:
когда пользователь жмет кнопку НАЗАД в браузере,никакие данные(предыдущие данные формы) не передаются, хотя если использовать метод ГЕТ все работает ок.
Если кто сталкивался с подобным,подскажите плз в чем тут может быть дело...
:confused: :confused: :confused:
 

evgeniy

Guest
да без прожки понятно,в смысле я могу в пхп смотреть что приходит.
думаю нужно пояснить, к примеру
find.php возвращает такую форму(но в хмл)
<FORM METHOD=POST ACTION="find.php">
<INPUT TYPE=HIDDEN NAME =LAST VALUE="1">
</form>


параметр LAST каждй раз меняет значение.но если к примеру на юзер кликает НАЗАД(хистори бэк) в браузер по идее должен отправить пред.данные формы.
то есть к примеру на шаге 1 LAST=1 на шаге 2 LAST=2
тогда если юзер кликает после второго шага Хистори Бэк(НАЗАД) тогда должна в браузер загрузиться форма которую загружал браузер после первого шага(то есть ЛАСТ=1)
но он тупо вызывает find.php и не передает параметров,типа формы внутри вообще не было.
думаю это как то связано с XML.
 

cray

Guest
Извини меня, но это не XML :)
<FORM METHOD=POST ACTION="find.php">
<INPUT TYPE=HIDDEN NAME =LAST VALUE="1">
</form>
(в том смысле, что разметка у тебя немного не верная)
И все же посмотри заголовки, после них должен быть твой ПОСТ-запрос (если браузер его отправляет).
 

evgeniy

Guest
это то что содержится в XML.
если ты знаком с XML то знаешь что он может содержать теги ХТМЛ.
браузер ничего не отправляет.он просто по нажатию хистори бэк вызывает find.php не отправляя при этом данные формы(собсно он даже предыдущую форму не создает)
а посмотреть то что приходит на сервер просто..достаточно переменные окружения глянуть..а в них ничего нет.
 

cray

Guest
Originally posted by evgeniy
это то что содержится в XML.
если ты знаком с XML то знаешь что он может содержать теги ХТМЛ.
Опять заблуждение. Это даже не XHTML. Если ты не понял о чем я, на XHTML (и, впрочем, на XML) твоя форма будет выглядеть так:
PHP:
<form method="post" action="find.php">
   <input type="hidden" name="last" value="1" />
</form>
Чувствуешь разницу?
Но это все левое...

а посмотреть то что приходит на сервер просто..достаточно переменные окружения глянуть..а в них ничего нет.
На всякий случай проверь еще HTTPLook'ом... Или тебе жалко прогу скачать?
 

evgeniy

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

evgeniy

Guest
ok! данные не передаются, но как в хтмл обычно возвращается предыдущая сгенерированая страничка.в случае хмл это не работает.:confused:
ну либо хистори бэк щагает только по ссылкам,значит он не может вовращать данные той формы,переданные постом.
 

Фанат

oncle terrible
Команда форума
но как в хтмл обычно возвращается предыдущая сгенерированая страничка
начнем с того, что в хтмл обычно, при возврате на страницу, на которую мы ходили методом ПОСТ, выдается не сгенерированная страничка, а неприятная надпись про то, хотим ли мы послать наши данные еще раз.
 

evgeniy

Guest
<?
if(!isSet($I))$I=0;else $I++;
echo $I;
echo "<FORM METHOD=POST ACTION='1.php'>";
echo "<INPUT TYPE=HIDDEN NAME=I VALUE=$I>";
echo "<INPUT TYPE=SUBMIT >";
echo "</FORM>";
?>
вот пример файлика 1.php
покликайте сабмит пару раз,а потом хистори бэк.
так вот в случае с хмл такое не ботает.то есть после хистори бэк $I будет =0

П.С. никакой неприятной мессаги кстати нету.
 

Фанат

oncle terrible
Команда форума
evgeniy
Ты скажи сначала, "в случае с хмл", у тебя браузер запрашивает подтверждение на отправку?
 

evgeniy

Guest
нет не запрашивает.браузер вообще не хранит то что возвращал хмл
 
Сверху