PHP/MySQL | Возвращаясь очередной раз к вопросу
Тема закрыта by
DELETED
Причина: ушёл за бубном
Причина: ушёл за бубном


DELETED
Автор
17 мая 2017, в 16:52
Delete
То есть обработать страницу сверху вниз один раз и забыть про запросы.
unset($_POST) не пашет, массив пустой, но по F5 происходит отправка неизвестно чего-то и выводится сообщение, что мы пытаемся отправить повторно запросы
Есть ли фиксы нормальные, чтобы не долбить страницу редиректами на саму себя по REQUEST_URI и не использовать ob_start() при повторной отправке заголовков, установке сессий и кукисов?
________
посл. ред. 17.05.2017 в 17:00; всего 4 раз(а); by Вилы_Выкидные
Код должен быть конструктивным. Отправка заголовков - очень сильная штука. Главный фикс - использовать их правильно.
"не использовать ob_start()" - прямое решение - отказаться от процедурного стиля и перейти на разделение PHP кода от HTML, тогда таких вопросов не возникнет.
Ну а вообще на вопрос по теме - нет, единственный способ - перенаправить пользователя по http-заголовку, т.е. использовать header()
"не использовать ob_start()" - прямое решение - отказаться от процедурного стиля и перейти на разделение PHP кода от HTML, тогда таких вопросов не возникнет.
Ну а вообще на вопрос по теме - нет, единственный способ - перенаправить пользователя по http-заголовку, т.е. использовать header()

DELETED
Автор
17 мая 2017, в 17:37
Delete
Dizzy221 (17.05.2017 в 17:18)
Код должен быть конструктивным. Отправка заголовков - очень сильная штука. Главный фикс - использовать их правильно.
"не использовать ob_start()" - прямое решение - отказаться от процедурного стиля и перейти на разделение PHP кода от HTML, тогда таких вопросов не возникнет.
Ну а вообще на вопрос по теме - нет, единственный способ - перенаправить пользователя по http-заголовку, т.е. использовать header()
Код должен быть конструктивным. Отправка заголовков - очень сильная штука. Главный фикс - использовать их правильно.
"не использовать ob_start()" - прямое решение - отказаться от процедурного стиля и перейти на разделение PHP кода от HTML, тогда таких вопросов не возникнет.
Ну а вообще на вопрос по теме - нет, единственный способ - перенаправить пользователя по http-заголовку, т.е. использовать header()
схема сайта
инклуд системника
исполняемый код, принимающий запросы
инклуд заголовков
разметка страницы, вывод данных
Результаты:
при обновлении страницы браузером получаем сообщение о попытке повторной отправки запросов, даже если используем после обработки unset($_POST) - не понятно, что отправляется, так как массив пустой .45.
при использовании REQUEST_URI в момент установки сессий или кукисов получаем ошибку повторной отправки заголовков - не понятно, что отправляется, если исполняемый код находится до вывода заголовков

при использовании ob_start() + REQUEST_URI проблемЫ исчезаЮт
Почему нельзя использовать ob_start() + ob_clean(), если такой функционал предусмотрен?
Кукисы и сессии проявляются после перезагрузки страницы, то есть получается редиректа на саму себя не избежать при их использовании.
Какой можно сделать вывод? Использовать отправку запросов в отдельный модуль, не подключенный к странице вывода с редиректом с него обратно?
________
посл. ред. 17.05.2017 в 18:03; всего 2 раз(а); by Вилы_Выкидные
Вилы_Выкидные, после отправки формы, если обработчик ее успешно принял, необходимо выполнить редирект на нужную страницу.
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа

DELETED
Автор
17 мая 2017, в 18:05
Delete
Dizzy221 (17.05.2017 в 18:03)
Вилы_Выкидные, после отправки формы, если обработчик ее успешно принял, необходимо выполнить редирект на нужную страницу.
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа
Вилы_Выкидные, после отправки формы, если обработчик ее успешно принял, необходимо выполнить редирект на нужную страницу.
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа
нужной страницей является исходная страница
Вилы_Выкидные, header("Location: ".$_SERVER["REQUEST_URI"]);
И это стандартное и элегантное решение, которое можно и нужно использовать
________
посл. ред. 17.05.2017 в 18:08; всего 1 раз(а); by Dizzy221
И это стандартное и элегантное решение, которое можно и нужно использовать
________
посл. ред. 17.05.2017 в 18:08; всего 1 раз(а); by Dizzy221

DELETED
17 мая 2017, в 18:08
Delete
Вилы_Выкидные (17.05.2017 в 18:05)
Dizzy221 (17.05.2017 в 18:03)
Вилы_Выкидные, после отправки формы, если обработчик ее успешно принял, необходимо выполнить редирект на нужную страницу.
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа
нужной страницей является исходная страница
Dizzy221 (17.05.2017 в 18:03)
Вилы_Выкидные, после отправки формы, если обработчик ее успешно принял, необходимо выполнить редирект на нужную страницу.
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа
нужной страницей является исходная страница
без редиректа никак, браузер всегда будет повторно отправлять

DELETED
Автор
17 мая 2017, в 18:10
Delete
Dizzy221 (17.05.2017 в 18:08)
Вилы_Выкидные, header("Location: ".$_SERVER["REQUEST_URI"]);
Вилы_Выкидные, header("Location: ".$_SERVER["REQUEST_URI"]);
будет повторная отправка заголовков при установке сессий или кукисов

вы не читаете тему

DELETED
Автор
17 мая 2017, в 18:11
Delete
shadrvlad (17.05.2017 в 18:08)
Вилы_Выкидные (17.05.2017 в 18:05)
Dizzy221 (17.05.2017 в 18:03)
Вилы_Выкидные, после отправки формы, если обработчик ее успешно принял, необходимо выполнить редирект на нужную страницу.
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа
нужной страницей является исходная страница
без редиректа никак, браузер всегда будет повторно отправлять
Вилы_Выкидные (17.05.2017 в 18:05)
Dizzy221 (17.05.2017 в 18:03)
Вилы_Выкидные, после отправки формы, если обработчик ее успешно принял, необходимо выполнить редирект на нужную страницу.
unset($_POST) - совершенно бесполезен.
Это глобальная HTTP переменная, а не просто массив с данными. Именно поэтому для ее очищения нужно отправить другой заголовок http, с помощью редиректа
нужной страницей является исходная страница
без редиректа никак, браузер всегда будет повторно отправлять
Ну что, тогда юзаем ob_start() - ob_clean() ???

DELETED
17 мая 2017, в 18:14
Delete
------

Скачиваний: 65