Контроль ресурсов

Ямерт

The Old One
Контроль ресурсов

Привет!

Ситуация такая: у меня портал с фильмами и мультами, пока free-for-all, но скоро ресурсы будут платными.

На данный момент все линки на портале идут напрямую к видеоресурсам (.ASF). В связи с грядущими изменениями хочу, чтобы линки шли на PHP-скрипт, который бы проверял текущую сессию на активность и пр. вещи, а уж затем принимал решение, что делать - допустить усера к вожделённому ресурсу, или выкинуть на логин-форму.

Так вот, я пока не знаю точно, как мне осуществить запуск фильма, если это понадобится. Не уплоад, а именно запуск, как если бы он попал на прямой линк с фильмом. Ясное дело, через header, но не знаю, как именно.

Более того, слышал о том, что есть примочки, легко позволяющие перехватить header'i, а я, понятно, совсем бы не хотел, чтобы стало известно, откуда запущен фильм. :)

Соответственно, встает вопрос о том, можно ли эту проблему решить с помощью моего любимого PHP.


Ребята, если кто-то занимался подобным вопросом - помогите, пожалуйста! ;)
 

arte

Guest
Re: Контроль ресурсов

Автор оригинала: Ямерт
Привет!
Ситуация такая: у меня портал с фильмами и мультами, пока free-for-all, но скоро ресурсы будут платными.
На данный момент все линки на портале идут напрямую к видеоресурсам (.ASF). В связи с грядущими изменениями хочу, чтобы линки шли на PHP-скрипт, который бы проверял текущую сессию на активность и пр. вещи, а уж затем принимал решение, что делать - допустить усера к вожделённому ресурсу, или выкинуть на логин-форму.
Так вот, я пока не знаю точно, как мне осуществить запуск фильма, если это понадобится. Не уплоад, а именно запуск, как если бы он попал на прямой линк с фильмом. Ясное дело, через header, но не знаю, как именно.
Более того, слышал о том, что есть примочки, легко позволяющие перехватить header'i, а я, понятно, совсем бы не хотел, чтобы стало известно, откуда запущен фильм. :)
Соответственно, встает вопрос о том, можно ли эту проблему решить с помощью моего любимого PHP.
Ребята, если кто-то занимался подобным вопросом - помогите, пожалуйста! ;)
В общем идея такая. Вместо прямого линка на файл у тебя стоит линк на скажем file.php в котором ты проверяешь всякое гавно потипу откуда узер пришел, сессион ИД и так далее. И если всё ок, то в хеадере пишется редирект прямиком на этот файл.

типа так: header("http://123.1231.23.123/files/file123.mov");

Кстати я не вижу способа показать узеру файл и при этом скрыть уж совсем откуда же этот файл появился. Во всяком случае от меня пока защиты я не видел. Ну а 99.8% узеров даже и не поймут как это сделано.
 

dr.vint

Guest
можно сделать ссылки типа

filemanager.php/video.asf

и этот самый filemanager проверял юзера и выдавал видео

но если делать нормально то придется реализовать функциональность веб сервера по обработке http запросов

но можно и по тупому что нибудь типа

$data = fread()
print $data;

если интересно могу подробнее собщить
 

Ямерт

The Old One
Я решил сделать именно "по-тупому":
<?
header ("Content-type: application/vnd.ms-asf");
header ("Content-disposition: inline");

$fp = fopen ("mms://host.server.lv/film.asf", "r");

for ($i=0; !feof($fp); $i++)
{
$buff = fread($fp,1000000);
echo $buff;
}

fclose($fp);
?>

Но вместо открывания файла броузер предлагает его сохранить (или "open from current location", что фактически означает скачать его в Temporary Int. Files (у меня Win2K), и смотреть оттуда)!

Может, хедер другой надо?

2 Dr.vint : Конечно, т.к. для меня это весьма важно!
 

dr.vint

Guest
насчет хедеров не знаю, подсмотри где нибудь

2 вопроса меня интересуют
зачем тебе его открывать через mms:// а не просто как файл

и

считывать может имеет смысл более мелкими порциями
чем по 1000000, а то ж памяти, имхо, никакой не хватит


самый главный недостаток такого метода - это отсутствие докачки а ее реализация достаточно гиморна
 

Alien

Новичок
Автор оригинала: dr.vint
самый главный недостаток такого метода - это отсутствие докачки а ее реализация достаточно гиморна
http://www.ietf.org/rfc/rfc2616.txt и в путь.
А иначе этот ресурс довольно скоро превратится в бесплатный файл-сервер для халявщиков :)

Есть другой вариант - хранить файлы в директории защищенной через http authorization , но тогда у тебя уже другие проблемы возникнут :)
 

mesh

Guest
Объясни пожалуйста как ты будешь определять отадавать или нет фильм юзеру? Трудно что ли бо предложить не зная ответа на этот вопрос.
 

dr.vint

Guest
Юзер проходит авторизацию
после чего ему предлагается ссылка
download.php/какая нибудь уникальная лабуда/film.asf
и вот по этой лабуде определять юзера

немножко фантазии в общем
 

[VS]

Guest
Автор оригинала: dr.vint
считывать может имеет смысл более мелкими порциями
чем по 1000000, а то ж памяти, имхо, никакой не хватит
а еще лучше открыть мануал и прочитать про функцию
PHP:
readfile
 

[VS]

Guest
Автор оригинала: Ямерт
$fp = fopen (&quot;mms://host.server.lv/film.asf&quot;, &quot;r&quot;);
PHP не предназначен для работы с потоковым видео. и про протокол mms PHP ничего не знает.
 

Ямерт

The Old One
Друзья, спасибо за все эти советы, но я просто написал пример по чтению файла абсолютно не задаваясь целью делать скрипт именно в таком виде :) Не в том суть.

Главная проблема в том, что когда файл подается таким образом, браузер предлагает его "Открыть/Сохранить", а не запускет его в видеоплэйере (к примеру, в Windows Media Player). :/
 

kvn

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

Главная проблема в том, что когда файл подается таким образом, браузер предлагает его &quot;Открыть/Сохранить&quot;, а не запускет его в видеоплэйере (к примеру, в Windows Media Player). :/
Header надо ему послать..нужный..
 

Ямерт

The Old One
Хмм...не знаю, можно ли тут помочь хэдэрами.
Как я заметил, здесь броузеры реагируют по-разному.
Дело в том, что мой IE 5.5 файл, поданный таким образом, открывает, а Opera 6 предлагает сохранить.
 

Alien

Новичок
Не спасут тебя хедеры.
Есть же менеджеры докачек.
Скажем, netvamprire его успешно выкачает.
 

boka

Guest
Как вам такой вариант
Юзер авторизуется, ему предлагается файл rh35jh3kjk023lklk5/video.asf
где rh35jh3kjk023lklk5 - случайный код.
В базе данных прописывается соответствие этого случайного кода логину юзера. Юзер качает файл.
А механизм сокрытия реального расположения файла и замены его на случайное число можно реализовать при помощи mod_rewrite.
 

Ямерт

The Old One
Автор оригинала: Альен
Не спасут тебя хедеры.
Есть же менеджеры докачек.
Скажем, netvamprire его успешно выкачает.
Нда, похоже, проблема решения не имеет....
Спасибо за информацию!
 

boka

Guest
Что значит решения не имеет...
Мой вариант не подошел что ли?
 

Ямерт

The Old One
boka, тут как раз вся фишка в том, чтобы НЕ ДАТЬ юзеру качать файл, а разрешить только слушать/смотреть.
 

boka

Guest
аа, я то подумал, что необходимо не дать размещать линки на других сайтах :)
 
Сверху