Вернуться   SEO форум - оптимизация и продвижение сайтов > Web разработки > Программирование

Важная информация
Программирование - PHP, MySQL, JavaScript, CSS, HTML верстка и т.д.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 16.06.2011, 15:13   #1
 
Аватар для bazan
 
Сообщений: 150
FR (активность): 3,879

Доп. информация
Сообщение Автор темы Как удалить POST переменные

Ребята, кто знает, поскажите...
Например есть форма отправки сообщений, переменные из формы передаются на эту же php страницу и письмо, собственно, отправляется. Но если перезагрузить эту страницу, то письмо отпрявляется еще раз и так до бесконечности...
Т.е. мне нужно очистить POST без переагрузки. Функцией unset($_POST); не получается.
Подскажите, кто чем пользуется.
bazan вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 16.06.2011, 17:56   #2
 
Аватар для newinseo
 
Сообщений: 295
FR (активность): 8,496

Доп. информация
По умолчанию Re: Как удалить POST переменные

Я после отправления делал редирект на другую страницу header("Location: http://site.com/thankyoupage/"); Или можно через переменные в сессии/куки запомнить, что сообщение было отправлено и больше не надо..
newinseo вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
bazan (16.06.2011), Umka (16.06.2011)
Старый 16.06.2011, 20:13   #3
 
Аватар для handyhost
 
Сообщений: 8
FR (активность): 156

Доп. информация
По умолчанию Re: Как удалить POST переменные

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


handyhost.ru - Удобный хостинг!
handyhost вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
Umka (16.06.2011)
Старый 16.06.2011, 23:33   #4
 
Аватар для bazan
 
Сообщений: 150
FR (активность): 3,879

Доп. информация
По умолчанию Автор темы Re: Как удалить POST переменные

Да, редирект отнимает время. Я так и делал, но хочется развиваться дальше...
newinseo,
Цитата:
Или можно через переменные в сессии/куки запомнить, что сообщение было отправлено и больше не надо..
Можно попросить тебя расписать по подробнее про этот варинт...

Идея хорошая. Вот посмотри пожалуйста, например:

<?php
$cook=$_COOKIE['send'];
if($_POST['name'] AND empty($cook))
{
...Используем переменную $_POST['name'] и
записываем куки setcookie('send', true, '0', '/')...
}
else{Выводим сообщение о том что переменная $_POST['name'] же была использована}
?>

Не могу понять в каком месте удалять эту запрещяющюю куку - $cook, что бы можно было использовать ноую полученную переменную $_POST['name'] от этого же пользователя...
bazan вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 17.06.2011, 00:18   #5
 
Аватар для cthulchu
 
Сообщений: 3,708
FR (активность): 120,615

Доп. информация
По умолчанию Re: Как удалить POST переменные

с куками не плохой вариант. мы реализовывали отправку не на мыло, а в бд, так после каждой отправки идет выборка по бд и сверка одного довольно вариабельного поля, чтобы не слали какую-то тривиальную чушь, заодно, - спасает от обновления страницы.
cthulchu вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 17.06.2011, 10:55   #6
 
Аватар для newinseo
 
Сообщений: 295
FR (активность): 8,496

Доп. информация
По умолчанию Re: Как удалить POST переменные

bazan, с виду все ок.. Если не работает, пишите, вечером попробую, или может кто еще исправит..

Куки можно задать время, через которое оно будет устаревшим setcookie('send', 'true', time()+3600); - через час броузер должен удалить куки. Если ставить 0 - то куки удалится в конце сессии.
Оффтоп:
Посмотрите тут подробнее http://php.net/manual/en/function.setcookie.php

Ну или можно еще хранить время отправления и проверять, как давно было прошлое сообщение.
newinseo вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Ответ

Метки
php, post, переменные, удалить

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции
Внимание!
Этой теме более 3991 дней. Вы можете оставить сообщение здесь. Но, обращаем внимание. Возможно, рациональней создать новую тему (найти свежее обсуждение)?


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить домен .tk? irinax Домены 4 20.05.2011 14:25
Как удалить внешнюю ссылку? sandazh Программирование 4 08.02.2011 15:43
Post Manager – бесплатная программа для контроля купленых ссылок seo_panda Софт оптимизатора, SEO утилиты 0 20.01.2011 02:19
Как удалить страицы дубли? nikvan Индексация сайта 8 02.10.2010 01:42
Как удалить сайт из индекса? wshurik Google 5 29.08.2009 11:43

Текущее время: 23:22. Часовой пояс GMT +3.