Добрый день.
Начал изучать PHP, делаю пробный сайт на локальной машине и возникла такая проблема.
Все разделы обрабатывает один скрипт - script.php, структура его такая:
- подключается шапка (include)
- подключается центральное меню(include)
- подключается левое меню(include)
Затем идет центр в котором собственно и отображаются разделы сайта в зависимости от действий пользователя.
Проблема с гостевой книгой, т.е. при добавлении записи, пользователь нажимает "Добавить", запись добавляется но если после этого нажать "обновить" в браузере сообщение опять добавляется.
Пробовал использовать Header() и в основном скрипте и в скрипте который добавляет сообщение, но интерпритатор ругается на то, что его выводу предшествует вывод в браузер текста(если я правильно понял). Или может я его не в том месте использую.
Спасибо.
Игорь_Vasinsky
6.11.2012 - 14:19
заголовок посылается до любого вывода (html, echo, print)
замени на аналог с JS document.location.href = 'url';
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
6.11.2012 - 14:23
Rumych
нужно делать обработку POST запроса до того как начал выводить контент.
А где именно использовать код JS?
killer8080
6.11.2012 - 15:40
Цитата (Rumych @ 6.11.2012 - 14:36) |
А где именно использовать код JS? |
Не стоит этого делать, лучше измени логику работы скрипта.
Может попробовать обрабатывать гостевую отдельным скриптом?
Я имею ввиду независимо от основного.
Игорь_Vasinsky
6.11.2012 - 15:51
killer8080
вишь, щас расжёвывать всё придёться.
ты весь html отпусти под обработчик php
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
6.11.2012 - 15:58
Цитата (Игорь_Vasinsky @ 6.11.2012 - 14:51) |
killer8080 вишь, щас расжёвывать всё придёться. |
А что делать
RumychТвоя ошибка в том, что вначале выводишь часть контента, а только потом, в середине вспоминаешь что нужно обработать пост запрос, и что то записать в бд. Меняй логику, вначале проверяешь пришли ли данные, если да, то делаешь их обработку, кидаешь хедером редирект, и останавливаешь скрипт. Всё! Зачем выводить контент, который никто не увидит, и гонять лишний трафик?
VELIK505
6.11.2012 - 17:21
Заголовки header надо отдавать до html и пробелы ни бум не должны попадать в код до header.
Как я понял ты делаешь редирект делай на мета тогда редирект
Хорошо буду исправлять.
Всем большое спасибо!
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.