Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Header'ы или файл скачки

6.5K
18 июня 2005 года
viTTas
20 / / 02.04.2005
Листинг файла download.php:

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".
И попробуйте что-нибудь покачать.
8.7K
20 июня 2005 года
XXXX Pro
47 / / 20.06.2005
Что имеется в виду под "сам файл"? Они исходный текст PHP-скрипта скачивают? Если да, то тут надо с настройками сервера разбираться.
Если же они предлагают назвать скачиваемый файл download.php, а вместо него на самом деле скачивают нужный файл, то тут можно попробовать добавить в заголовок вот такое:
header("Content-Disposition: attachment; filename=".$result_file ["name"]);
И еще: проверь, не выводит ли твой download.php в конце что-нибудь типа пустой строки (если стоит ?> а за ним еще несколько пустых строк). А еще лушче, поставь после
header ("Location: http://" . $result_file ["path"]);
});
}
что-нибудь вроде halt();
12K
22 июня 2005 года
zerkms
3 / / 22.06.2005
для начала читать сюда:
http://phpfaq.ru/debug

далее:
если ручками отдавать так и не научились то читать про PEAR :: HTTP_download

статистика твоя будет не совсем корректная - т.к. ты используешь download.php только в качестве прокладки между запросом на скачку и самим скачиванием файла - что мешает клиенту передать "по трассе" прямую ссылку на файл??
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог