|
|
|
| Просмотрел кучу постов, но так и не могу разобраться.
Допустим скрипт обрабатывает данные, посланные post методом и создает файл.
В результате выводим сообщение типа "Спасибо, имя файла: ....".
Разумеется, при обновлении браузера, создаться еще один файл, что надо исключить.
Вопрос: Если я использую перенаправление на другую страницу отправкой заголовка header("Location: index.php"), как index.php может узнать имя созданого файла.
Сразу скажу: header("Location: index.php?ИмяФайла=Файл") не подходит. | |
|
|
|
|
|
|
|
для: Gust
(26.06.2007 в 12:55)
| | почему не подходит | |
|
|
|
|
|
|
|
для: bronenos
(26.06.2007 в 14:16)
| | это как одно из условий. Меня просто интересует, как можно при редиректе передать результаты исполнения 'активного' скрипта - это может быть и имя файла и довольно значительный отчет. А в урле есть ограничения, да не хочется 'светить' эти данные в урле. | |
|
|
|
|
|
|
|
для: bronenos
(26.06.2007 в 14:16)
| | т.е. можно как-то добится того что конструкция типа
If ($_POST['есть_данные']) {
//создаем файл
//формируем и выводим отчет
}else{
//показываем форму для запонения
};
|
не срабатывала при обновлении браузера (разумеется после отправки формы), но выводила результаты | |
|
|
|
|
|
|
|
для: bronenos
(26.06.2007 в 14:16)
| | ? | |
|
|
|
|
|
|
|
для: Gust
(26.06.2007 в 12:55)
| | а если попробывать при получени данных открывать ссессию, туда все нужное сохранять, обрабатывать принятые данные, а потом переход header("Location: index.php"), там тоже сессию открываешь, читаешь все нужные данные и выводишь сообщение типа "Спасибо, имя файла: ....". | |
|
|
|
|
|
|
|
для: victoor
(26.06.2007 в 21:00)
| | в одной из похожих тем (не могу найти, поск че-то на форуме перестал работать: Error: Can't create/write to file '/tmp/mysql/#sql_8ee_0.MYI' (Errcode: 2)) (только там создавался не файл, а производилась запись в базу mysql) я предложил во избежание повторной записи предварительно проверять ее наличие в базе (по переданным данным)
Меня поправили, назвав это предложение костылем (и в принципе я с этим согласен).
Сессии наверно помогли бы в этом вопросе, но, по-моему, это тоже где-то в области костылей. Могу сам предложить использовать вместо сессий запись и чтение данных в базе mysql (мне это ближе).
Я полагал, что без усложнения такой, на мой взгляд, изящной конструкции скрипта не обойтись, но интересны способы минимального усложнения, исключающие повторные обновления, но при этом позволяющие вывести отчет о совершенных действиях (привык информировать юзеров о происходящем :).
И еще, может не в тему, но хочется узнать мнение о костылях - нужны ли они, когда нет коляски (подчас дорогой и громоздкой)? | |
|
|
|
|
|
|
|
для: Gust
(27.06.2007 в 07:56)
| |
session_start();
if(!session_is_register("session_name"))
{
If ($_POST['есть_данные'])
{
//создаем файл
//формируем и выводим отчет
session_register("session_name");
}else{
//показываем форму для запонения;
}
}else{
// выводим отчет;
}
|
| |
|
|
|