Гостевая книга , refresh...

  • Автор темы Crypton
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.

Crypton

Guest
а как сделать БЕЗ перенаправления? Браузер же явно где то хранит данные что текущая страница получена после POST-запроса.
 

Фанат

oncle terrible
Команда форума
может, и хранит.
но при чём здесь браузер?
и что ты хочешь браузеру сказать?
 

Crypton

Guest
а сказать ему я хочу чтоб он не парил меня при нажатии F5 к примеру "не удается обновить страницу без повторной отправки данных...................... и т.п."

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

Jaizer

Новичок
обычное условие на post поставить+добавить header
никто никого не убьет...
 

Фанат

oncle terrible
Команда форума
когда кажется - креститься надо.
приведёшь одного такого убитого - тогда и поговорим.
заодно не забудь нам рассказать, чем же конкретно его убило.
 

Crypton

Guest
хех... меня всегда радовала способность 90% программеров уходить от темы методом подколок и т.п.....

как мне кажется правильнее просто НЕ отвечать если не знаешь...

хотя не хочу никого задеть...
 

Фанат

oncle terrible
Команда форума
меня всегда радовала способность 100% ламеров уходить от темы, если они не поняли, что им сказали.

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

-~{}~ 09.09.05 20:09:

Да, фантазию о том, что тот, кто тебе ответил, не знает ответа на вопрос - тоже надо забыть.
Это сильно поможет тебе в будущем.
Если ты не понял ответа - надо переспросить.
 

Crypton

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

а по теме... ситуация чисто гипотетическая... придумывать как может возникнуть ситуация что нельзя перенаправить страницу после POSTа не могу... да и как мне кажется (перекрестился :) ) не имеет значения...

просто... тупо хочу понять как можно "заставить браузер забыть" о том что страница после POST-запроса... чтобы по F5 не было никаких повторных отправок данных....

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

Фанат

oncle terrible
Команда форума
откуда здесь возьмётся повторная отправка?
 

Crypton

Guest
может и не возьмется... но вопрос не столько в этом а в том как убрать сам диалог с "повтор" "отмена" после F5
 

Фанат

oncle terrible
Команда форума
как убрать диалог тебе написали ещё в той теме, в которую ты влез в самом начале.
ещё вопросы будут?
 

Crypton

Guest
Автор оригинала: Фанат
после обработки формы, отправленной методом POST, тебе необходимо перенаправить скрипт методом GET спомощью заголовка Location
куда угодно, хоть бы на себя самого
header("Location:".$_SERVER['PHP_SELF']);

Таким образом, браузер "забудет", что он запрашивал что-то методом ПОСТ и не будет задавать вопросов

Я отвечал на этот вопрос час назад.
но чукча ведь не читатель, правда?
взято оттуда... все что там ниже идет решение вопроса почему у автора не работало "header("Location:".$_SERVER['PHP_SELF']);".... объясните где тут описан вариант БЕЗ перенаправления? я наверное совсем туплю?
 

Фанат

oncle terrible
Команда форума
стоп.
если у тебя проблемы с памятью - обращайся к доктору.
вот последний вопрос, который ты задал:
вопрос не столько в этом а в том как убрать сам диалог с "повтор" "отмена" после F5
покажи мне - где здесь слово перенаправление?
 

Crypton

Guest
кхм.... ну чтож... тогда так....
забыли все что писали выше...

ВОПРОС:
ситуация чисто гипотетическая... придумать как может возникнуть ситуация что нельзя перенаправить страницу после POSTа не могу... да и как мне кажется (перекрестился ) не имеет значения...

просто... тупо хочу понять как можно "заставить браузер забыть" о том что страница после POST-запроса... чтобы по F5 не было никаких диалогов с "повтор" "отмена", вариант с перенаправлением не подходит....
 

Фанат

oncle terrible
Команда форума
Ну что ж.
подведём итог нашей дискуссии.
мы развеяли глупые заблуждения про мертвецов с кислых каналов
мы выяснили, что вопрос не имеет практической ценности, а имеет чисто теоретическую. Из разряда "Зачем мне холодильник, если я не курю".
мы выяснили, что практический вопрос решается стандартными средствами - локейшеном.

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

Crypton

Guest
никаких примеров подобного диалога с браузером я не знаю..... потому то и задаю вопрос: как это браузеру сказать?
 

Фанат

oncle terrible
Команда форума
Это не беда.
вот тебе стандарт, описывающий все варианты диалогов:
http://lib.ru/WEBMASTER/rfc2068/
я не сомневаюсь, что ты с лёгкостью найдёшь там ответ на свой вопрос =)
 

Crypton

Guest
убита куча времени а ответа нет... :(

но все равно спасибо....
 

Фанат

oncle terrible
Команда форума
как это ответа нет?
ответ есть. в диалоге браузера и сервера таких слов не предусмотрено.
Зато пользы - немеряно! Ты хотя бы немного понял (я надеюсь), как общаются браузер с сервером и обратно.
 

SlavikSG

Новичок
Наверное все новички в PHP начинают с "Гостевых книг". Начал и я, разумеется. Сделал. Простейшую, конечно! Но я ведь еще только учусь. :)

Дык вот, натолкнулся на проблему, как запретить браузеру повторно отправлять данные из формы после нажатия в браузере на кнопку Refresh (Обновить). Поюзал поиск форума и нашел эту тему. Понял решение проблемы, но мне это, к сожалению, не помогло. :(

Примерный алгоритм моей "Гостевой книги" такой:
1. Вывожу пустые поля формы для ввода данных
(в форме параметр action указывает на этот же самый PHP-файл с моей гостевой, чтобы не городить кучу файлов, То есть, все должно работать в одном файле)

2. Делаю проверку, если c формы данные вводились и была нажата копка "Записать":
if ($_SERVER['REQUEST_METHOD']=='POST') {...}

3. Проверяю и записываю данные в файл Гостевой

4. Прописываю, КАК ПОСОВЕТОВАЛИ В ЭТОЙ ТЕМЕ, команду:
Header("Location:".$_SERVER['PHP_SELF']);

5. Читаю, форматирую и вывожу на страницу данные из Гостевой книги.

Книга размещена тут:
http://www.slaviksg.tu1.ru/guestbook/index.php
(Другого места для пробы сил в инете не нашел. Вроде там халявно и есть поддержка PHP и MySQL)

Когда я тестирую все это хозяйство, то на строке где прописана команда:
Header("Location:".$_SERVER['PHP_SELF']);
Браузер выдает эту ошибку:
"Warning: Cannot modify header information - headers already sent by (output started at /home/tu1.ru/s/sl/slaviksg/htdocs/www/guestbook/index.php:11) in /home/tu1.ru/s/sl/slaviksg/htdocs/www/guestbook/index.php on line 129"

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

Не пойму в чем дело. Не пойму почему выдает эту ошибку. Может есть какой-то другой способ не посылать повторно данные в Гостевую после нажатия кнопки "Обновить"? Подскажите новичку, плиииз!!1
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху