Отдача файла поcле регистрации и редирект на другую страницу

sergorum

Новичок
Отдача файла поcле регистрации и редирект на другую страницу

Возникла проблема, которую никак не получается решить самому.

Есть страница со ссылками на файлы. Если пользователь зарегистрирован, то при нажатии на ссылку ему отдается файл. Тут все просто. Если пользователь не зарегистрирован, то при нажатии на ту же ссылку он перенаправляется на страницу с регистрационной формой. Как только пользователь ввел правильный логин и пароль, он автоматически перенаправляется обратно на страницу, с которой ушел. На этой странице появляется текст, говорящий, что пользователь успешно зарегистрирован и через три секунды начнется скачивание требуемого файла. Ну и собственно появляется окошко на сохранение того самого файла, который он пытался скачать незарегистрированным.

Так как скачивание начиналось не на странице с логином, а на странице, в которую пользователь автоматически перенаправлялся после успешного логина, то, чтобы запустить даунлоад скрипт я использовал такую Javascript конструкцию:

PHP:
window.setTimeout("document.location.href='/download_files.php?action_file=<?=$_GET[action_file]?>'", 1500);
Долгое время все работало. Но чертов IE8 со стандартными сеттингами не открывает download_files.php, сообщая, что "желая помочь безопасности, заблокировал загрузку файлов". В общем, использование javascript для запуска download_files.php на IE8 накрылась. Конечно, если в меню в IE8 выбрать скачать заблокированный файл, скачивание начинается, но к сожалению это не выход.

Собственно вопрос, может кто-нибудь сталкивался с подобной проблемой и знает как сделать вот такую систему.
Т.е. надо по нажатию на кнопку "Войти" перенаправить пользователя на другую страницу и запустить скачивание файла. Или запустить скачивание файла и перейти на другую страницу.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
крупными буквами "ЕСЛИ СКАЧИВАНИЕ НЕ НАЧАЛОСЬ - НАЖМИ СЮДА"
 

sergorum

Новичок
Есть такие буквы. Но начальство долбит. Если бы этот гребаный експлорер просто не начинал скачивание это одно, но он говорит что заблокировал окно в целях безопасности. А все, что касается безопасности не очень здорово для имиджа компании.

И на сайте apple.com эта фигня вполне реализована и работает на IE8. Пытаюсь понять как и пока не нахожу выхода.
 

Фанат

oncle terrible
Команда форума
насколько я знаю, точно так же работает и 7 эксплорер.
так что проблема твоя не настолько новая, как тебе кажется.
на сайте apple.com эта фигня вполне реализована и работает на IE8
ну так пойди на сайт аппле ком и посмотри, как эта фигня реализована.
потом нам расскажешь.
 

sergorum

Новичок
На семерке жалоб не было. Завтра проверю ради интереса, но никаких предупреждений о потенциально опасности не появлялось. Может правда у меня настройки безопасности стояли ниже стандартных...
Я пытался связаться с разработчиками эппла, но контакта не получилось. Сайт реализован у них на WebObjects, хотя скорее всего это не имеет значения. Суть примерно такая. Жмешь на кнопку скачать. На IE появляется новое маленькое окошко, запускается диалог скачивания, маленькое окошко закрывается а в родительском открывается новая страница.
 

Фанат

oncle terrible
Команда форума
при чем здесь разработчики и WebObjects
все сайты в интернете реализованы на HTML и HTTP.
 

sergorum

Новичок
Я просто рассказал общую ситуацию. Понятно, что все реализовано на HTML и дальше вопрос только в том кто этот html формирует. А с разработчиками хотел поговорить потому как реально не хватает мозгов понять, как у них это реализовано. Наверное мозгов мало.
 

dimagolov

Новичок
sergorum, еще раз повторю для тебя. если есть какое-то поведение браузера на одном сайте, то ты можешь посмотреть ВСЕ что этот сайт передает браузеру и сделать так же само. скрыть от тебя какую-либо уличную магию невозможно, ты можешь посмотреть все (заголовки и хтмл), которые получает браузер.

-~{}~ 01.11.09 20:59:

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

Alexandre

PHPПенсионер
Т.е. надо по нажатию на кнопку "Войти" перенаправить пользователя на другую страницу и запустить скачивание файла.
header() - перенаправляет на др страницу,
вообще задача довольно таки тривиальная:
переходишь на другую стр и во втором окне JS: windows.open() начинаешь скачивание файла
сам остаешься на этой стр и файл скачивается.
 

dimagolov

Новичок
Beavis, meta refresh как раз дает "To help protect your security, IE blocked this site from download...."
 

Фанат

oncle terrible
Команда форума
и дальше вопрос только в том кто этот html формирует
ничего тебе не понятно.
как раз кто формирует HTML - это абсолютно без разницы.

рассказываю, как работает веб-сервер, для тех, кто до сих пор этого не знает:
Браузер не видит того, кто формирует хтмл. Никакого АСП, ПХП или ЖСП.
Браузер видит только HTML и HTTP
и реагировать может только на HTML и HTTP
и если он как-то реагирует, можно посмотреть на какой именно HTML и HTTP
 

dimagolov

Новичок
Есть концептуальная проблема. Если загрузка файла инициируется JS-ом, то IE параноит про безопасность. Единственная возможность обойти - заставлять юзера самому кликать на линк на файл. Лично я переделал попап-окно на создание линка, на который кликает пользователь.
 
Сверху