Header'ы или файл скачки
CODE
<?php
session_start ();
include ("includes/common.php");
if (session_is_registered ("allowed_user") && $HTTP_SESSION_VARS ["allowed_user"] == true) {
$query_file = mysql_query ("SELECT * FROM `files` WHERE (`id` = '" . $_REQUEST ["id"] . "')", $link);
$result_file = mysql_fetch_array ($query_file, MYSQL_ASSOC);
mysql_query ("UPDATE `files` SET `downloads` = `downloads` + 1 WHERE (`id` = '" . $_REQUEST ["id"] . "')", $link);
$query_new_id = mysql_query ("SELECT `id` FROM `stat` ORDER BY `id` DESC LIMIT 0, 1", $link);
$result_new_id = mysql_fetch_array ($query_new_id, MYSQL_ASSOC);
$new_id = $result_new_id ["id"] + 1;
mysql_query ("INSERT INTO `stat` (`id`, `who`, `what`, `when`) VALUES ('" . $new_id . "', '" . $HTTP_SESSION_VARS ["name"] . "', '" . $result_file ["name"] . "', '" . gmdate ("Y-m-d H:i:s") . "')");
header ("Location: http://" . $result_file ["path"]);
}
?>
Данный фал связывается с БД MySQL в файле common.php (он включается в файл инклюдом). Через id файла скрипт вычисляет путь к этому файлу и перемещает пользователя на этот файл (простите, что не по-русски написал ). Здесь же скрипт добавляет запись в статистику. Я хочу скачать файл, но тут начинаются проблемы, стандартые качалки IE, FireFox качают нормально, а вот FlashGet и ReGet качают сам файл download.php! Я ну никак не пойму почему скрипт не работает (если работает, то не исправно)!
Вот линка: ссылка.
Там он попросит логин и пароль, то там забейте на все поля "guest".
И попробуйте что-нибудь покачать.
Если же они предлагают назвать скачиваемый файл download.php, а вместо него на самом деле скачивают нужный файл, то тут можно попробовать добавить в заголовок вот такое:
header("Content-Disposition: attachment; filename=".$result_file ["name"]);
И еще: проверь, не выводит ли твой download.php в конце что-нибудь типа пустой строки (если стоит ?> а за ним еще несколько пустых строк). А еще лушче, поставь после
header ("Location: http://" . $result_file ["path"]);
});
}
что-нибудь вроде halt();
http://phpfaq.ru/debug
далее:
если ручками отдавать так и не научились то читать про PEAR :: HTTP_download
статистика твоя будет не совсем корректная - т.к. ты используешь download.php только в качестве прокладки между запросом на скачку и самим скачиванием файла - что мешает клиенту передать "по трассе" прямую ссылку на файл??