Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: output + redirect
 
 автор: STEVER   (28.07.2009 в 23:24)   письмо автору
 
 

Задача заключается в следующем:
Необходимо перенаправить пользователя на другую страницу и дать файл на скачивание,
т.е.
1) header("Location: png.htc", FALSE, 302);
и
2) header("Content-disposition: attachment; filename=somefile.dat");
.......
echo file_get_contents('omefile.dat');
т.е. послать 2 хедера на 1 фактически 1 гет запрос страницы.

JavaScript использовать нельзя.

Это вообще реально сделать?

  Ответить  
 
 автор: yuk   (29.07.2009 в 00:58)   письмо автору
 
   для: STEVER   (28.07.2009 в 23:24)
 

На странице, с которой идет перенаправление - ставите первый header, отвечающий за переадресацию, а второй header - на той странице, куда пользователь был переброшен.

Вобще на одной странице можете размещать сколько угодно header-ов, главное - чтобы перед ними не было никакого вывода.

  Ответить  
 
 автор: Trianon   (29.07.2009 в 01:16)   письмо автору
 
   для: STEVER   (28.07.2009 в 23:24)
 

Вы вообще в курсе, что такое header и из чего он состоит?

к yuk тот же вопрос.

  Ответить  
 
 автор: STEVER   (29.07.2009 в 12:08)   письмо автору
 
   для: Trianon   (29.07.2009 в 01:16)
 

>что такое header
приблизительно.
на сколько я понимаю вопрос - это часть HTTP сообщения, которая несет в себе сервисные данные.

>из чего он состоит
там довльно много полей. В чем вопрос?

  Ответить  
 
 автор: Trianon   (29.07.2009 в 12:20)   письмо автору
 
   для: STEVER   (29.07.2009 в 12:08)
 

заголовок - это начальная часть либо http-запроса либо отклика http-запроса.

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


Кроме того, поле заголовка Location: приводит к порождению еще одного http-запроса.
Разбираться с которым нужно совершенно независимо от первого.

  Ответить  
 
 автор: STEVER   (29.07.2009 в 17:14)   письмо автору
 
   для: Trianon   (29.07.2009 в 12:20)
 

Trianon,
давно я не был на форуме. Мне казалось раньше твои ответы были более краткие и меткие. Понимаю, ты наверное на столько устал от тупых вопросов, что уже даже не хочется отвечать по делу.
Если тебя смутила предыдущая формулировка: возможно ли как-то послать второй гет запрос, не заставляя пользователя жать на ссылку. (JS нет)

  Ответить  
 
 автор: Trianon   (30.07.2009 в 13:33)   письмо автору
 
   для: STEVER   (29.07.2009 в 17:14)
 

>Если тебя смутила предыдущая формулировка: возможно ли как-то послать второй гет запрос, не заставляя пользователя жать на ссылку. (JS нет)

Я вот это написал?
Кроме того, поле заголовка Location: приводит к порождению еще одного http-запроса.
Вот как еще нужно сформулировать?

  Ответить  
 
 автор: yuk   (29.07.2009 в 18:19)   письмо автору
 
   для: Trianon   (29.07.2009 в 12:20)
 

Если говорить о header, как о заголовке - да, он один.
Если говорить о header, как о функции - то вызовов этих может быть много. Конечно, в этом случае надо бы писать - header().

для STEVER
>>возможно ли как-то послать второй гет запрос, не заставляя пользователя жать на ссылку

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

Только не совсем понимаю смысл первой страницы, с которой идет переадресация. Почему нельзя прямо в ней определить, какой файл нужен для скачивания, и в зависимости от этого послать нужный заголовок?

Что касается ответов Trianon-a - у одного парня спросили, какая у него мечта в жизни, и он ответил - моя мечта, чтобы люди научились думать. Похоже, у Trianon-a тоже есть такая мечта :)

  Ответить  
 
 автор: Trianon   (29.07.2009 в 20:54)   письмо автору
 
   для: yuk   (29.07.2009 в 18:19)
 

>Что касается ответов Trianon-a - у одного парня спросили, какая у него мечта в жизни, и он ответил - моя мечта, чтобы люди научились думать. Похоже, у Trianon-a тоже есть такая мечта :)

У меня - здесь - поскромнее. У меня - хотя бы чтоб те, которые программы пишут.

  Ответить  
 
 автор: STEVER   (30.07.2009 в 12:19)   письмо автору
 
   для: Trianon   (29.07.2009 в 20:54)
 

решение нашлось следующее:
<meta http-equiv="refresh" content="0; url='.$downloadURL.'">
благодарю всех принимающих участие в обсуждении

Trianon,
желаю чтобы исполнилась твоя мечта)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования