unset внутри foreach для $_POST

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
alexblade
Ты делаешь неправильную логику в приложении. Если данные не нужны, не надо их использовать, а не очищать суперглобальные массивы. Это понятно? Чтобы при нажатии F5 не передавался опять запрос с постом есть header('location:...');
 

alekciy

Новичок
Если можно поподробней, если зацепил эту тему.
У тебя есть URI на который браузер отправил POST данные. c0dex предлагает через заловок Location перейти, к примеру, на тот же URI. Тогда по F5 ни каких POST данных оправлено не будет, т.к. браузер перезайдет на адрес уже GET-ом.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
форма отправила данные на какой-то адрес, там логика отработала и сделала тебе редирект.
 

Фанат

oncle terrible
Команда форума
так а никто его и не пытается сделать не массиовм.
читать ответы надо внимательно.
Еслит что-то не понял - перечитать всю ветку.
речь не о том, чтобы что-то "сделать массивом", а о проверке, есть ли массив вообще. Которую ты делаешь в своем коде.
Тебе на это сказали, что проверка смысла не имеет - массив $_POST есть всегда.
И на пустоту проверять тоже не надо - с этой проверкой справится сам foreach
Речь не про ансет, а про IF. Который в данном случае не нужен (безотносительно к бессмысленности всего кода целиком).
 

alexblade

Новичок
с этой проверкой справится сам foreach
ПОСТ есть всегда это аксиома. но если нет ни одной переменой от формы в нем то мой easyphp несмотря на то что он есть всегда ругался на неопределную переменую. на wamp не ругается и можно без if (понятно что конфиги можно настроить как хочешь но я использовал по умолчанию). т.е. я понимаю что сам форыч справится но в конкретной ситуации вот надобыло использовать проверку. а так да вы правы.

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

Фанат, главно чтоб вы понимали я не спорить свами пришел а понять для себя и узнать чтото новое. но если форумчяне (в целом) будут неконструктивно издеваться это мало чем поможет для меня - пониманию сути проблемы.
 

Фанат

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

Поэтому для начала убедись, что
1. easyphp на foreach не ругается.
2. Очистка массива $_POST, что ручная, что в цикле, от проблем при рефреше не помогает.
после этого перечитай топик.
и если после этого ещё останутся вопросы - можно будет их задать здесь.
 

alexblade

Новичок
1 изик ругался потомуто я и проверку поставил (изначально порверки _не было_). не вопрос перепроверю еще раз после больничного.
2 как правило да, согласен, причем дело не в скрипте. начинаю юзать хедер посмотрим что получится
 

alexblade

Новичок
если юзать хедер, как передать пользователю результат обработки данных - только сесиями ?
 

Фанат

oncle terrible
Команда форума
Зависит от данных.
Если метод POST применялся правильно, то запросить данные из базы.
Если данных в базе нет, надо юзать метод GET
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Тема вообще мне не понятна. ТС ни разу не объяснил, что он там за копросистему пишет, ни примера, нифига. Как можно просто так начать использовать хедер, если нет ничерта понимания куда и как его прилепить? И надо ли вообще?

PS: наболело
 

alexblade

Новичок
ФАНАТ ну например для отправки письма базы избыточны. я заюзал сесси для POST (другая сторона медали гета). спасибо.

c0dex , сами же говорили чтобы решить вопрос с F5 нужен хедер. ну вот его и применил вместо первоночального ансета пост переменых.

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

Фанат

oncle terrible
Команда форума
Согласен, чтобы сообщить об успешной отправке почты, сессии (и ещё аякс) - самый удачный вариант.
 

Beavis

Banned
если юзать хедер, как передать пользователю результат обработки данных - только сесиями ?
создаешь класс FlashMessage
в нем всего 2 метода: get и set (их можно сделать статическими, set записывает переменную в сессию, а get достает её оттуда и удаляет)
перед отправкой заголовка на редирект запоминаешь сообщение, которое надо отобразить, а на странице, куда редиректишь пользователя, достаешь сообщение и отображаешь его
 
Сверху