Отдача роликов во флеш плеер через PHP, правильно ли?

Тема в разделе "Как сделать...", создана пользователем Ilekor, 29 янв 2011.

  1. Ilekor

    Ilekor Постоялец

    Регистр.:
    8 май 2009
    Сообщения:
    144
    Симпатии:
    34
    Народ, нужна ваша помощь. Пишу скрипт для защиты прямых ссылок на видео, что бы не тырили видео файлы на свои сайты.

    Так вот собственно вопрос, правильно ли написан скрипт, потому что загрузка во флеш плеер идет, но может оборватся например на пол фильма и при нажатии на плей фильм начинается заново. Прошу подкорректировать что не так в скрипте.

    сначала я проверяю, наш ли это пользователь смотрит или с другого сайта и если файл существует тогда отдаем пользователю фильм, а иначе отдаем рекламный ролик. Проверки я не выкладывал так как не это важно. А важна сама отдача ролика в плеер.
    PHP:
    $file "papka_video/".$flv;
    $file_real $file;
                
    $extension strtolower(substr(strrchr($file"."), 1));
                switch(
    $extension){
                    case 
    "flv"$type "flv-application/octet-stream"; break;
                    case 
    "mp4"$type "video/mp4"; break;
                    default: 
    $type "application/force-download"; break;
                }
    // Fix IE bug [0]
    $header_file = (strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE')) ? preg_replace('/\./''%2e'$filesubstr_count($file'.') - 1) : $file;
    // Prepare headers
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public"false);
    header("Content-Description: File Transfer");
    header("Content-Type: " $type);
    header("Accept-Ranges: bytes");
    header("Content-Disposition: attachment; filename=\"video.flv\";");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: " filesize($file_real));
    // Send file for download
    if ($stream fopen($file_real'rb')){
    while(!
    feof($stream) && connection_status() == 0){
    //reset time limit for big files
    set_time_limit(0);
    print(
    fread($stream,1024*8));
    flush();
    }
    fclose($stream);
    }
     
  2. modelsonline

    modelsonline Постоялец

    Регистр.:
    18 окт 2010
    Сообщения:
    103
    Симпатии:
    9
    самопись какая-то? Во всех движках через лайти реализовано.