Помогите пожалуйста разобраться!

sumshi
На сайте с 08.10.2011
Offline
40
527

Здравствуйте. Вообщем есть скрипт, через который я передаю файлы юзерам. Выглядит он так:

<?php
require('./wp-blog-header.php');
$time = 1;//Задержка в секундах
$name= $_GET["name"];
$link = 'http://mestosvadeb.ru/audio/' . $name;
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Загрузка файла</title>
<script type="text/javascript" language="javascript">
function countdownRedirect()
{
var TARG_ID = "count_red";
var e = document.getElementById(TARG_ID);
var cTicks = parseInt(e.innerHTML);
var timer = setInterval(function()
{
if( cTicks > 0 )
{
e.innerHTML = cTicks--;
}
else
{
clearInterval(timer);
location.replace("<?php echo $link; ?>");
}
}, 1000);
}
</script>
</head>
<body onload="countdownRedirect();">
<div style="display:block;border:1px solid orange;margin:20px 5px;padding:10px;">
<center>
Подождите, Пожалуйста.
</center>
</div>

<center>
<strong>Загрузка файла начнется через <span class="counter" id="count_red"><?php echo $time; ?></span> сек.</strong>
</center>
</body>
<body onload="countdownRedirect();">
<div style="display:block;border:1px solid orange;margin:20px 5px;padding:10px;">
<center>
Скоро начнется загрузка файла.
</center>
</html>

Мне нужно, чтобы по истечении секунд файл не автоматически скачивался, а скрипт выдавал ссылку на файл.

Или же, чтобы файл не воспроизводился, а скачивался с сайта. (Эта проблема только в хроме и манипуляции с .htaccess никак не изменили ситуацию.

Заранее всем благодарен.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

Заменить

location.replace("<?php echo $link; ?>");

На что-то типа:

document.getElementByID('idDiva').innerHTML = '<?php echo $link; ?>';

idDiva - это айди, который надо прописать диву или спану, для того, чтобы по истечении времени ДжаваСкрипт записал в этот блок ссылку.

Подпись))
sumshi
На сайте с 08.10.2011
Offline
40
#2
Милованов Ю.С:


idDiva - это айди, который надо прописать диву или спану, для того, чтобы по истечении времени ДжаваСкрипт записал в этот блок ссылку.

Вот этот момент не совсем понял. Можно поподробнее?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3


<?php
require('./wp-blog-header.php');
$time = 1;//Задержка в секундах
$name= $_GET["name"];
$link = 'http://mestosvadeb.ru/audio/' . $name;
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Загрузка файла</title>
<script type="text/javascript" language="javascript">
function countdownRedirect()
{
var TARG_ID = "count_red";
var e = document.getElementById(TARG_ID);
var cTicks = parseInt(e.innerHTML);
var timer = setInterval(function()
{
if( cTicks > 0 )
{
e.innerHTML = cTicks--;
}
else
{
clearInterval(timer);
document.getElementById('text').innerHTML = 'Ссылка на скачивание: <?php echo $link; ?>';
}
}, 1000);
}
</script>
</head>
<body onload="countdownRedirect();">
<div style="display:block;border:1px solid orange;margin:20px 5px;padding:10px;">
<center>
<span id="text">
Подождите, Пожалуйста. <strong>Загрузка файла начнется через <span class="counter" id="count_red"><?php echo $time; ?></span> сек.</strong>
</span>
</center>
</div>
</body>
</html>
sumshi
На сайте с 08.10.2011
Offline
40
#4

Спасибо. Но ссылка получается некликабельная и безанкорная. Как это исправить? http://mestosvadeb.ru/script.php

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#5

document.getElementById('text').innerHTML = 'Ссылка на скачивание: <a href="<?php echo $link; ?>">Анкор</a>';

sumshi
На сайте с 08.10.2011
Offline
40
#6

Милованов Ю.С, спасибо. Не первый раз выручаете.

sumshi
На сайте с 08.10.2011
Offline
40
#7

Еще один вопрос! Как сделать, чтобы юзер не мог скачать файл с моего сайта, скопировав адрес файла в браузерную строку? Тоесть она должна обязательно быть с моего сайта. Надеюсь кто-то поймет мой вопрос.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#8

Генерируем проверочный код, и где-то(в сессионую переменную, например) его сохраняем(это делаем в скрипте, который отдает ссылку по таймингу)


$_SESSION['checker'] = md5(time() .'SALT');

К ссылке добавляем этот код(в том же самом скрипте)

http://mestosvadeb.ru/audio/getter.php?check-code=$code

В папке audio создаем htaccess, в котором пишем правило, чтобы он кидал все запросы файлов из этой папки на обработчик getter.php, который также лежит в этой папке.

Файл getter.php


<?php
$checker = $_GET['check-code'];
if (isset($_SESSION['checker']) AND $_SESSION['checker'] == $checker)
{
//Читаем запрошеный файл
//Отдаем юзеру
unset($_SESSION['checker']);
}
else
{
echo 'Ушлый чё ле?';
}
?>

Код не тестил, но думаю, идея понятна.

дани мапов
На сайте с 06.09.2012
Offline
204
#9
sumshi:
Еще один вопрос! Как сделать, чтобы юзер не мог скачать файл с моего сайта, скопировав адрес файла в браузерную строку? Тоесть она должна обязательно быть с моего сайта. Надеюсь кто-то поймет мой вопрос.

/ru/forum/329747

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)

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