Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Location, $_POST и "обновить"!

13K
12 февраля 2007 года
4айник
40 / / 23.12.2006
Добрый вечер, господа ГУРУ!!!
В 1000-раз, наверное, для вас поднимается тема. Вы уж простите меня, ламера, но нужен детальный совет от вас!!!
Итак, расскажу вкратце..
...............
Есть страница, на ней - форма. Допустим, форма имеет два поля: ФАМИЛИЯ и E-MAIL... Смысл прост - отправить письмо на указанный в поле электронный адрес...
Т.е. что делает пользователь:
1. Вносит в поля свои фамилия и мыло
2. Нажимает кнопку отправить..

Данные передаются по POST!!!
РНР-код делает проверку и отправляет на указанное мыло письмо, типа ПРИВЕТ, ПЕТРОВ!! А на странице отображается сообщение, типа: "Уважаемый Петров! На ваше мыло [email]petrov@pentagon.us[/email] отправлено письмо!!! Прочитайте его!!!"
(Петров - это фамилия из поля формы..)

Всё работает - проблем никаких... ПОЧТИ никаких, если в браузере не нажимать кнопку ОБНОВИТЬ!! Если нажать, то ПЕТРОВУ опять отошлется письмо и т.д.

Что я предпринял: после того, как отправилось письмо ПЕТРОВУ, делаю автоматическую переадресацию на простейший файл ххх.php
header("Location: xxx.php");
Т.е., чтобы избежать повторной оправки на мыло через ОБНОВИТЬ!!!
В этом файле xxx.php - тест след.содержания: "Дорогой Юзверь! Прочти свое мыло"
Для красоты делаю:
header("Location: xxx.php?family=".$_GET['family']);

Но это не удобно, светить в адресной строке его фамилию, мыло.. А если и пароль придется передавать, то вообще, ацтой будет!!
Вообщем, решая проблему обновления страницы получилась проблема с методом передачи данных!!

И вот подошел я к вопросам:
1. Есть ли какие-нить приёмы, чтобы по header ("Location....") передать значения методом POST?!
2. если п.2 нельзя, то кто что посоветует, как лучше сделать...

З.Ы.: - не футбольте меня к РТФМ!!! Там я уже был - подробностей никаких нет..
Эта ссылка мне тоже не помогла (особенно пункт 3.2)http://www.codenet.ru/webmast/php/HTTP-POST.php
Заранее, спасибо вам, уважаемые ГУРУ
244
12 февраля 2007 года
UAS
2.0K / / 19.07.2006
Как вариант. Создаем таблицу в БД примерно такого содержания:
 
Код:
CREATE TABLE email(
email VARCHAR(40) NOT NULL,
text TEXT,
sended INT(12)
);

поле sended - это время отправки (думаю надо делать в формате получаемом функцией time() )

потом когда отправляешь соответсвуюште данные. если же юзверб нажимает обновить, то значит надо проверять отправлено ли письмо?? т.е. смотрим на существование такое записи. если существует, то сравниваем поле sended. Например такому-то юзверу одинаковое письмо можно отправлять раз в 2 минуты. Потом сравниваем прошло ли 2 минуты. Если нет, то говорим юзверю что типа хорош так часто отправлять то же письмо тому же адресату с тем же текстом.

2) Или можно через сессии сделать. Логика примерно так же, лишь реализация будет другая немного.

Лучше через сессии делать, быстрее и удобнее
271
12 февраля 2007 года
MrXaK
721 / / 31.12.2002
ну например ставь $_SESSION['time'] = time(); и проверяй сколько времени назад отправлялось письмо
13K
13 февраля 2007 года
4айник
40 / / 23.12.2006
ммм, про сессии наслышан...
вот если бы из вас кто-нить примерчик кода скинул - было бы лучше.. и я бы вас не долбал вопросами!!!!
З.Ы.: С базой данных такую весчь не хоцца проворачивать..... чую, нутром чую, что решение где-то на поверхности :)!!! Сам уже себе голову сломал!!!
256
13 февраля 2007 года
foxweb
1.0K / / 27.07.2005
удивляюсь способности некоторых граждан "ломать голову" о вещи, про которые в любом PHP-букваре написано. нафига ломать что-то, не спать ночами, отнимать время у гуру? взял спокойно, погуглил, открыл, почитал и никакой трагедии.

http://phpfaq.ru + ссылки в подписи
244
13 февраля 2007 года
UAS
2.0K / / 19.07.2006
Т.е. ты хочешь готовый код?? Хехе)) Ну и народ.. Им в теории все раскатали, а в код там же перенести недолго...
Или ты с time() не можешь понять?? Если хочешь чтоб помогли, то уж будь добр напиши все что надо, а потом мы тебе уже подредактируем или укажем куда что вставить или как проверить. А то как то ради простоенького писать все формы, обработки её - неохота...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог