Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скачивание файла с подменой URL
 
 автор: Nevi   (21.07.2008 в 05:19)   письмо автору
 
 

Подскажите пожалуйста , как делают на сайтах скачивание mp3 мелодий например чтобы ссылка была не прямая
http://www.site.ru/my.mp3
а "кривая"
http://www.site.ru/script.php?hash=билеберда-которая-каждый-раз-меняется-чтобы-не-скачали-напрямую-и-не-узнали-настоящий-URL

и неплохо бы - если сразу бы счетчик был сколько раз скачали этот файл

помогите

   
 
 автор: morkovkin   (21.07.2008 в 06:23)   письмо автору
 
   для: Nevi   (21.07.2008 в 05:19)
 

Чтобы отдавать файлы по "кривым" ссылкам, нужно писать скрипт, в котором и будет всё обрабатываться, и файлы будут отдаваться через скрипт. Разумнее всего работать совместно с БД. Например, тот пример, что Вы привели: есть hash это значение идёт в бд, в бд проверяется годен ли ещё файл для скачивания, если да, то бд отдаёт содержащую в себе нормальную ссылку скрипту и через скрипт начинается отдача файла. Для пользователя этого не видно, и таким образом не видно, откуда скачивается файл.

   
 
 автор: tuder   (21.07.2008 в 06:55)   письмо автору
 
   для: Nevi   (21.07.2008 в 05:19)
 

Вот тот самый скрипт. Конечно, надо затачивать под себя.

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta http-equiv="pragma" content ="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<?php

$url
="OldGames";

if (isset(
$location)) {
//если location не пуста
   
$realoc=$_GET["location"];
   
$location="files/".$location;
   
$date=time();
// тут у меня подключение к базе и определение данных клиента
   
if (is_file($location)) {$isset=1;} else {$isset=0;}
// Записывакем в базу статистику по скачиваему файлу
   
$query="insert into `statdl` (date, ip, browser, referer, filename, isset, url) VALUES (".$date.", '".$REMOTE_ADDR."', '".$HTTP_USER_AGENT."', '".$HTTP_REFERER."', '".$realoc."', '".$isset."', '".$url."')";
   
$result=mysql_query($query);
}
if (isset(
$location) and is_file($location)) {
   echo 
"<meta http-equiv='refresh' content='3; url=$location'>";
?>
<title>Download</title>
</head>
<body>
<?
   
echo "<p align=center>Если загрузка не начнется через несколько секунд - <a href='$location'> нажмите эту ссылку</a></p>";
   echo 
"<p align=center><a href=\"javascript:opener.location.reload(bReloadSource = true);window.close(self)\">Закрыть окно</a></p>";
} else {
//если файла не существует
   
$location="";
   echo 
"<body onload=\"window.close\">\n";
   echo 
"<center><font color='red'>Файл не найден!</font></center>";
}

?>
</body>
</html>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования