Автор Тема: Flash back  (Прочитано 13424 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Кошка

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://priton.ru
Flash back
« : 14 Августа 2003, 12:46:53 »
В общем такая проблема

есть форма в файле index.php
.... METHOD="post" ACTION="index.php" ....

форма постит мессадж.
если после submit\'a будучи на файле index.php
мы делаем решреш то выскакивает окошко что типо
подтверждения отправки уже отправленных данных.
как от этого избавится ?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Flash back
« Ответ #1 : 14 Августа 2003, 12:55:53 »
index.php:
<?
if(
$_SERVER[\'REQUEST_METHOD\'] == \'POST\') {
   // здесь обрабатіваешь ПОСТ-запрос
   ....
   // в самом конце делаешь редирект на самого себя
   header("Location: http://your.server.ru/index.php");
   exit;
}

// далее твой скрипт для ГЕТ-запросов
?>

то есть после обработки пост-запросов нужно делать редирект либо на другой файл либо на этот же скрипт
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Кошка

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://priton.ru
Flash back
« Ответ #2 : 16 Августа 2003, 20:28:04 »
Спасибо !

Но вот беда хидер работает если его тока в ссссамом начале странице пихать ;(

а так вот что выдает

Warning: Cannot modify header information - headers already sent by


как же быть ?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #3 : 16 Августа 2003, 21:13:12 »
"пихать" в самом начале страницы.
какая проблема с этим?
у тебя весь сайт по дурацкой моде в один файл запихан, что ли?
ну тогда в нем, в этом файле и делай хидер.

а если нормально сделано, файл самостоятельный, никуда не инклюдится, то какая проблема код с хидером разместить выше всего?

Тем более, что дело не в высоте, а в ВЫВОДЕ. хидер может быть хоть в самом низу - главное, чтобы до него ничего в браузер не выводилось.

Подсказка: тег , хоть в браузере его и не видно, браузеру, тем не менее, отдается.

Более подробное разжевывание читать здесь:
http://faq.phpclub.net/headers

Оффлайн Кошка

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://priton.ru
Flash back
« Ответ #4 : 19 Августа 2003, 22:50:07 »
RomikChef

да да у меня именно такая ситуация шта весь индекс кишит инклюдами.

насчет "дурацкой моде" несогластна !
очень удобно, компактно и понятно




так что вопрос все еще неразрешен

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Flash back
« Ответ #5 : 20 Августа 2003, 00:04:02 »
если тебе скрипт переписывать влом, то просто поставь в начало самое скрипта (первой строкой):
ob_start();

Хотя имхо это неправильная организация работы скрипта, но работать будет (наверное)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #6 : 20 Августа 2003, 00:20:32 »
меня поражают такие людию
сталкиваются с проблемами, и при этом утверждают - Нет, мне удобно!.

А индивидуальный title ты моджешь сделать своим страницам?
а управление кэшированием?
а куки?

Оффлайн Кошка

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://priton.ru
Flash back
« Ответ #7 : 20 Августа 2003, 01:23:11 »
в чем проблема индивидуального тайтла ?

index?menu=soft
<? echo($soft); ?>


куки - неперевариваю :)
а кеширование - ненавижу ! ;)



да кстати спасибо такая конструкция работает !





if ($_SERVER[\'REQUEST_METHOD\']==\'POST\')  {


 header("Location: http://www..ru/bd/index.php");  

}

?>

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Flash back
« Ответ #8 : 20 Августа 2003, 02:29:49 »
Цитировать
index?menu=soft
<? echo($soft); ?>
хмм... не знаю, как именно ты это реализовала, но может быть дыра в скрипте.

Цитировать
куки - неперевариваю
а кеширование - ненавижу !
а программирование - терпеть не могу :D
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Кошка

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://priton.ru
Flash back
« Ответ #9 : 20 Августа 2003, 02:47:06 »
Макс

поподробней насчет дыры в скрипте. я что то тебя непоняла :)



Все хорошо в меру.
до последнего стараюсь не использовать надстройки различные типа mysql, cookes. Зачем если всегда можно обойтись чистым php и возможно получится проще и быстрее. Хотя как показывает практика если тебе что то ненравится это значит что ты еще в это это как следует не въехал :)

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Flash back
« Ответ #10 : 20 Августа 2003, 05:40:08 »
Цитировать
Кошка:
если тебе что то ненравится это значит что ты еще в это это как следует не въехал

:) Железно.
MySQL называть надстройкой вообще дикость, хотя тоже как-то писал поиск по базе данных, которая хранилась в текстовом файле, а поля в строках разделялись какими-то специальными крючечками. И очень цеплялся за мысль о том, что, пока строк в этом файле меньше ста - все хорошо. Когда потом добрался таки до MySQL, плакал над главой о построении запросов.

По поводу твоей ситуации советую все-таки продумать структуру и все переделать. Подумай, насколько масштабируемо это твое удобство?

Я бы собственно отправку сообщения вынес в отдельный скрипт, это точно. При чем он вообще не должен ничего выводить. Он должен:
  а) принять переменные POST
  б) обработать принятые данные (письмо, например, слепить и отправить)
  в) вернуться куда надо (все тем же хедером)
При этом файлик этот (например, send.php) может обрабатывать подобные запросы с разных страниц и возвращаться на соответствующие страницы.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #11 : 20 Августа 2003, 10:36:51 »
Цитировать
Кошка:
index?menu=soft
<? echo($soft); ?>

Нельзя ли этот кусочек поподробнее?
откуда берется этот софт?
что ж ты, милочка кейс свой любимый здесь забыла?
В том виде, как ты это здесь написала, это должно быть

if ($menu=\'soft\') {
  $soft="blablabla";
?>
<? echo($soft); ?>
?>
}
и так для каждой страницы.
Чудненькая конструкция.

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

Оффлайн MrGreeN

  • просто зелёный
  • Постоялец
  • ***
  • Сообщений: 195
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #12 : 20 Августа 2003, 12:27:12 »
Макс
Можно немного поподробнее насчёт ob_start, вернее как  тут ,буферизация может  помочь?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #13 : 20 Августа 2003, 12:46:20 »
MrGreeN
прочти внимательно вот здесь http://faq.phpclub.net/headers
и постарайся ответить сам, как буферизация ВЫВОДА В БРАУЗЕР может помочь

Оффлайн MrGreeN

  • просто зелёный
  • Постоялец
  • ***
  • Сообщений: 195
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #14 : 20 Августа 2003, 13:50:12 »
Буферизация на стороне сервера? Значит хранение всех переменных пока не очистим? Следовательно это альтернатива сессионому механизму?
Круто...
Хотя я включил это в код чего-то не сильно это помогает, как выводился запрос на повторную отправку данных так и выводиться...
А можно ссылочку на источники  с примерами(желательно с работающими) избавления от этого неудобства (касательно ob_start и повторной отправки данных) ?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28