Не срабатывает скрипт формирования временных ссылок

Q
На сайте с 26.02.2012
Offline
1
706

В папке downloads лежит index.php и file.doc.

Скрипт не срабатывает, всегда формируется такая ссылка site.ru/downloads/index.php?fn=file.doc&key=%3C?=$secret;?%3E по которой ничего не скачивается.

Подскажите где ошибка в скрипте?

Содержимое index.php:

<?php

$timeout = 3600; // Один час

$filesdir = "downloads/"; // Слешь в конце

//

$secret = md5((int)(time() / $timeout)); //Всегда целое число, меняется раз в $timeout секунд;

if( isset($_GET['key']) ) {

if( ($_GET['key'] == $secret) && //проверка ключа

strlen($_GET['fn']) && file_exists($filesdir.$_GET['fn']) ) { //проверка файла

readfile($filesdir.$_GET['fn']);die; //читаем файл

} else {

header ( 'HTTP/1.1 404 Not Found' );//Файл не найден

die;

}

}

echo '<a href="?fn=file.doc&key=<?=$secret;?>">file.doc</a>'

?>

siv1987
На сайте с 02.04.2009
Offline
427
#1

echo "<a href='?fn=file.doc&key={$secret}'>file.doc</a>";

Q
На сайте с 26.02.2012
Offline
1
#2

Спасибо, но почему то файл не скачивается, а сразу открывается в браузере?

D
На сайте с 04.01.2008
Offline
46
#3
qwertystr:
Спасибо, но почему то файл не скачивается, а сразу открывается в браузере?

перед этой строкой

readfile($filesdir.$_GET['fn']);

добавьте

header('Content-type: application/msword');
Q
На сайте с 26.02.2012
Offline
1
#4

Спасибо, а как сделать чтобы скачивался xls?

вставлял

header('Content-type: application/ms-excel');

но скачивается index.php.

siv1987
На сайте с 02.04.2009
Offline
427
#5

http://www.htmlquick.com/reference/mime-types.html

header("Content-Disposition: attachment; filename=aaaa.xls");

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий