Генерировать переход по ссылке

shustersh

Новичок
Генерировать переход по ссылке

Добрый день!
Такая проблема, может быть тривиальная...
Есть сайт, на котором расположена музыка. Есть скрипт list.php, который выводит список доступных для скачивания мелодий, при этом на каждую мелодию стоит гиперссылка на другой файлик load.php, в котором скрипт заносит данные о количестве скачиваний каждой мелодии для статистики и только потом выводит ссылку для скачивания самой мелодии. Т.е. грубо говоря нахожу на главной странице нужную мелодию, нажимаю скачать, перехожу на другую страницу, где написано "Скачать тут".
Можно ли обойтись без промежуточного файла, а сразу как только скрипт статистики отработал передать файл для закачки, а именно сгенерировать так, как буд-то был переход по гиперссылке.
Очень надеюсь на помощь
 

basboy

Новичок
header('Location: mp3/the_best_song.mp3');

-~{}~ 15.11.05 10:42:

Nirva
Извини, одноврменно писали...
 

zarus

Хитрожопый макак
Добавлю, что после вывода header нужно вызвать:
PHP:
die;
если не нужно, чтобы продолжалось выполнение скрипта.
В противном случае, скрипт выполнится до конца и только потом произойдет редирект.
Наступал пару раз на эти грабли.
 

basboy

Новичок
zarus
Справедливое замечание.
Но конечноже, если результатом выполнения скрипта в итоге всё равно будет редирект, то die не нужен.
shustersh
Вообще тебе только редиректа мало будет для скачивания.
Браузер начнёт сразу открывать его каким-нить приложением

Попробуй вот этот код:
PHP:
	header("Content-Type: application/force-download\r\n");
	header("Content-Transfer-Encoding: binary\r\n");
	header("Content-Length: ".filesize($dURL));
	header("Content-Disposition: attachment; filename=$dURL\r\n");
 

shustersh

Новичок
Автор оригинала: basboy
zarus
Справедливое замечание.
Но конечноже, если результатом выполнения скрипта в итоге всё равно будет редирект, то die не нужен.
shustersh
Вообще тебе только редиректа мало будет для скачивания.
Браузер начнёт сразу открывать его каким-нить приложением

Попробуй вот этот код:
PHP:
	header("Content-Type: application/force-download\r\n");
	header("Content-Transfer-Encoding: binary\r\n");
	header("Content-Length: ".filesize($dURL));
	header("Content-Disposition: attachment; filename=$dURL\r\n");
Сейчас скрипт выглядит в таком виде, у половины народа работает, у половины не хочет :( Пишет формат файла неизвестен. Так и не пойму в чем дело. переменные kat, nazv, format и id передаются.
<?php
include "../all/init.php"; //пароль и логин к MySQL

$minisql = "select * from `".$pict."` where `id`=$id";
$temp = mysql_query($minisql);
$f=mysql_fetch_array($temp);
$sql = "update `".$pict."` set `".$format."`= ($f[$format]+1) where `id`=$id";
mysql_query($sql);

mysql_close();
$file = "$kat/$nazv/$format/$numf.jpg";
$header = ("Location: $file");
header($header);
exit;
?>
 
Сверху