Как организовать редипрект после скачивания файла

CC
На сайте с 12.05.2009
Offline
20
883

Всем привет!

Есть страница с формой. По нажатию кнопки скачать происходит сабмит формы и вызывается пхп-скрипт, который отдает файл

header...

header...

header...

while(!feof())....

здесь все работает. Необходимо, после того как весь файл будет загружен, первоначальную страницу с формой средиректить на другую страницу (например /ThankYou.html)

Как это организовать?

Спасибо

Ветышев
На сайте с 12.03.2008
Offline
128
#1

<?php

$url = "/ThankYou.html";
header ("Location: $url");
?>

или же


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="JavaScript1.1" type="text/javascript">
<!--
location.replace("http://www.new.site/page.html"); // текущая страница будет заменена в history на новую — важно в плане юзабилити
//-->
</script>
<noscript>
<meta http-equiv="Refresh" content="0; URL=http://www.new.site/page.html"> <!-- для тех нескольких процентов «сёрферов», которые отключили JavaScript -->
</noscript>
</head>
<body>
Мы перебрались на <a href="http://www.new.site/page.html">новое местечко</a>.
</body>
</html>

http://htmlcoder.visions.ru/HTML/?9

Перенос сайтов на WordPress (/ru/forum/1007912)
CC
На сайте с 12.05.2009
Offline
20
#2

это понятно, но так не работает.

Вернее сама конструкция, которую Вы привели, конечно же, работает, но она не срабатывает если ее вставить после цикла отдачи файла.

while (!feof($file) and !connection_status()){

......

}

$red_url = "/ThankYou.php";

header("Location: $red_url"); // Не срабатывает

вроде и поянтно почему не работает. Как организовать чтобы работало не понятно пока

J
На сайте с 02.02.2009
Offline
53
#3

Конечно не сработает. Потому что контент-то уже отдался и header не сработает.

Я не уверен, - но может быть сработает ob_start - но есть подозрение что скачка тогда криво сработает.

Как вариант - использовать фреймы. В одном фрейме - загрузка файла, второй файл ждёт onLoad первого и редиректит. Соответственно, фрейм можно сделать невидимым. iframe не подойдёт.

CC
На сайте с 12.05.2009
Offline
20
#4

спасибо за мысли.

хм, задача то вроде типовая, неужели для нее типового паттерна не существует?

kil
На сайте с 03.04.2006
Offline
84
kil
#5

Первое, что приходит на ум - загрузка файла через iframe и редирект с помощью js.

J
На сайте с 02.02.2009
Offline
53
#6
CapCap2:
спасибо за мысли.

хм, задача то вроде типовая, неужели для нее типового паттерна не существует?

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

Сам буду признателен услышать другое решение - задача не типовая как бы - то есть логика нетиповая.

CC
На сайте с 12.05.2009
Offline
20
#7

спасибо.

Буду копать фреймы

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий