Главная

Контакты

Спички

Другие работы 1 2 3 4

 

В последнее время всё чаще при скачивании фильмов, или файлов сталкиваюсь с временными ссылками. Зачем это делается? Во первых что бы другие сайты не размещали ссылки на файлы, которые распространяются на вашем сайте. Во вторых, таким образом, файлы можно защитить от массового скачивания, с одного IP. Или из подсети.

Возможно вы давно задумались о создании такого скрипта, либо о его покупке. Но толи цена кусается, то ли вам некогда придумывать свой скрипт. По этому, в этой статье я решил написать, о том как в течении 5-10 минут можно написать скрипт, для генерации временных ссылок.

В качестве хранения файлов и временных ссылок, будем использовать БД MySQL. Я не буду вводить вас в основы работы с БД MySQL. Не буду говорить о том, что это такое. Об этом написано не мало статей, предполагается что вы и так знаете, что это, и как с ним работать.

Начинаем разрабатывать БД. Я предлагаю самую простую структуру БД, я не создаю полноценный скрипт, а просто объясняю вам как это сделать.

Давайте представим, что у вас есть сайт на котором вы выкладываете ссылки на фильмы. У вас есть таблица по хранению данных о фильмах, допустим структура будет такой:

CREATE TABLE film (id int(30) auto_increment,
name text(255) NOT NULL,
date datetime DEFAULT '0000-00-00 00:00:00',
genre text(100) NOT NULL,
description text NOT NULL,
author text(20) NOT NULL,
file_name text(255),
size int(30) NOT NULL,
mime_tip text(80) NOT NULL,
PRIMARY KEY (id));

id – это порядковый номер записи.
name – Название фильма
date - Дата добавления
genre - Жанр
description - Описание
author – Кто добавил
file_name – Оригинальное имя файла
size – Размер файла(храним в Битах).
mime_tip - тип загружаемого файла

Это наша первая таблица, ниже представлена структура второй таблицы, где мы будем хранить временные ссылки.

CREATE TABLE download (id int(255) auto_increment,
f_id int(30) NOT NULL,
links text(100) NOT NULL,
data_start text NOT NULL,
PRIMARY KEY (id));

id - Порядковый номер записи.
f_id – Это порядковый номер файла(получаем из таблицы film, по этому полю будем устанавливать связь)
links – Тут мы храним нашу временную ссылку.
data_start – Дата создания ссылки.

Так, с БД определились.

Теперь создаём новую БД, заносим туда наши таблицы, и делаем 3 записи в первую таблицу, предпологается что у вас уже есть скрипт по загрузке файлов на сервер, или что то в этом роде. По этому этот этап мы пропускаем.
Запросы для таблицы film:

INSERT INTO film (name,date,genre,description,author,file_name,size) VALUES ('Фильм №1',NOW(),'Аниме','Описание первого фильма','Админ','anime.avi','776609408');
INSERT INTO film (name,date,genre,description,author,file_name,size) VALUES ('Фильм №2',NOW(),'Комедия','Описание второго фильма','Админ','kom.vob','1008192384');
INSERT INTO film (name,date,genre,description,author,file_name,size) VALUES ('Фильм №3',NOW(),'Ужасы','Описание третьего фильма','Админ','strax.avi','87809408');

Приступаем к созданию файла конфигурации. Создаём файл и называем его config.php

<?php

$host="localhost"; //Путь к MySQL
$user="root"; // логин пользователя
$password="password"; // пароль
$db_name="db_102"; // Имя БД

$url = "http://localhost/test/link"; //Путь к скрипту
$time_end = "259200"; // Время жизни ссылки, указываем в секундах. Сейчас 3 суток.
$downloads = "films/catalog/downloads"; //Путь где у нас хранятся файлы. (можно указать больше)

mysql_connect($host,$user,$password) or die (mysql_error()); //Конектимся с БД
mysql_select_db($db_name) or die (mysql_error());
mysql_query('SET NAMES cp1251;'); // Если траблы при выборке, явно задаём кодировку.

?>

Теперь создаём файл index.php. Его код буду давать по частям с описанием. Первой строкой подключаем наш файл config.php

include("config.php");

Делаем полную выборку из БД.

$query=mysql_query("SELECT * FROM film ORDER BY date DESC") or die (mysql_error());

while($rows=mysql_fetch_array($query)) {
$date = date("d-m-Y h:i:s", strtotime($rows['date']));
echo"<table width="80%" align="center" cellpadding="0" cellspasing="0" class="table">
<tr><td wid>Название : <b>{$rows['name']}</b><br> Дата добавления : <b>{$date}</b> </td><td align="right"><a href="index.php?download={$rows['id']}&film={$rows['file_name']}"> Скачать </a> Размер файла : <b>{$rows['size']}</b></td></tr>
<tr><td colspan="2" class="content">Жанр : <b>{$rows['genre']}</b><BR><BR>{$rows['description']}<BR><BR><p align="right">Добавил : <b>{$rows['author']}</b></p></td></tr>
</table><BR>";

}

 

© 2007 ABV-Design. Раскрутка сайта ООО "СЕО"

карта