|
|
|
| Здравствуйте!
Пишу download-скрипт на сайте, использующий счетчик скачиваний. Посылаю
Header ("Location: $url");
|
, где $url - ссылка на файл архива. Браузер предлагает сохранить файл, т.е. делает все, как надо, но попутно с этим, открывается новая пустая страница в новой вкладке/окне. Как сделать так, чтобы это окно не открывалось, либо открываясь, сразу же исчезало? В первом варианте нужно посылать дополнительные заголовки? Подскажите, пожалуйста, как это делается у профессионалов. На многих сайтах все работает красиво и без дополнительных пустых окон/вкладок, которые потом с раздражением приходится закрывать. | |
|
|
|
|
|
|
|
для: JC_Piligrim
(21.06.2005 в 11:58)
| | Смысл такой: нужно в ссылке на загрузку файла указать текущую страницу, но с некоторым параметром index.php?down=file и по нему проверять, что это не просто открытие страницы, а загрузка файла
<?php
if(isset($_GET['down'])) header ("Location: $url");
?>
|
В этом случае посетитель будет оставаться на текущей странице | |
|
|
|
|
|
|
|
для: cheops
(21.06.2005 в 12:20)
| | Один ньюанс - скачивание возможно только при авторизации пользователя на сайте.
Я, наверное, пошел несколько извращенским путем, делая движок для сайта. =(
Дело вот в чем. Index.php устроен так:
<?php require_once('engine.php'); ?><html>
<head>...</head>
<body>
<?php echo $content; ?>
</body>
</html>
|
Т.е. к такому "недошаблону" в начале подключается движок, который подключает, в свою очередь, в зависимости от переданных скрипту параметров подключает текущие модули, которые уже что-либо делают. Немного своеобразное подобие фреймворка, в котором описаны сервисные функции, типа формирования ссылок, удобной работы с файлами и пр, константы, переменные... И поэтому приходится, когда пользователь щелкает по ссылке запускать внешний скрипт "get.php", который проверяет права доступа пользователя к файлу, и в случае успеха, перенаправляет пользователя на файл... В таком случае можно что-либо придумать с запретом новых окон, не изменяя существующей структуры? Меня все больше и больше одолевает сомнения, о возможности этого, но может быть, кто-нибудь с этим сталкивался, и знает, как преодолеть? | |
|
|
|
|
|
|
|
для: JC_Piligrim
(21.06.2005 в 12:52)
| | Хм... а почему get.php, может его тоже включить в страницу при помощи require_once()? А в случае успеха он будет не пересылать пользователя, а посылать ему HTTP-заголовок Location с URL файла, который требуется загрузить? | |
|
|
|
|
|
|
|
для: cheops
(21.06.2005 в 13:01)
| | Уже сделано! Спасибо, работает! Решил не мучиться, и сделал все в одном файле. | |
|
|
|