За последние 24 часа нас посетили 17502 программиста и 1690 роботов. Сейчас ищут 992 программиста ...

Проблемма с видео

Тема в разделе "PHP и базы данных", создана пользователем Vangok, 4 окт 2010.

  1. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Здраствуйте, подскажите пожалуста что я делаю не так. Имеется таблица из 3 полей id, parrent_id и path. В поле path прописывается путь до видео файла, хочу чтобы в видео-плеер передавался только айдишник видеозаписи. Написал код, передаю ссылку с айдишнеком в видео-плеер, а он не хочет вопросизводиться, при этом если просто указать ему путь до файла то воспроизведение идет. Таблица набида до нельзя 25 записей с разными parrent_id. Поле parrent_id предназначено для того, чтобы по ссылке передавать данные в гет переменную, в данном случае эта переменная iden в ссылке index.php?page=comment&iden=.

    Вот код:
    Код (Text):
    1.  
    2. function menus($page) {
    3. $sql="SELECT * FROM mbase WHERE parrent_id=".$_GET["iden"];
    4. if (!$sql) mysql_error();
    5. $results=mysql_query($sql);
    6. if (mysql_num_rows($results)>0) {
    7.     while ($rowid=mysql_fetch_assoc($results)){
    8.         $ident=$rowid['iden'];
    9.         $path=$rowid['path'];
    10.         $rashir=array(".avi",".mkv",".mp3",".ogm",".mpeg",".m2p");
    11.         $name=basename($path);
    12.         //убираем расширения из названия файла
    13.         $stroka = str_replace($rashir,"",$name);
    14.         print("<a class='menu' href=\"index.php?page=comment&iden=".$_GET["iden"]."&player=$ident\" title=\"$stroka\">$stroka</a>");
    15.     }
    16. }
    17. else echo "Записи отсутствуют";
    18. }
    Вот так передаю данные в WMPlayer:
    Код (Text):
    1.  
    2. if (isset($_GET["player"])) {
    3.      fplayer($_GET["player"]);
    4. }
    Вот функция fplayer:
    Код (Text):
    1.  
    2. function fplayer($str)
    3. {
    4. ?>
    5.            <div align="center">
    6.                   <OBJECT ID="Player1" border="1" width="520" height="293" src="SOME URL.avi" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" standby="Loading Microsoft Windows Media Player components...">
    7.                   <PARAM NAME="URL" VALUE="[b]index.php?page=comment&iden=<?echo $_GET["iden"];?>&player=<?echo $str;?>[/b]">
    8.                   <PARAM NAME="width" VALUE="320">
    9.                   <PARAM NAME="height" VALUE="63">
    10.                   <PARAM NAME="stretchToFit" VALUE="1">
    11.                   <PARAM NAME="ShowControls" VALUE="1">
    12.                   <PARAM NAME="ShowTracker" VALUE="1">
    13.                   <PARAM NAME="ShowStatusBar" VALUE="1">
    14.                   <!--PARAM NAME="CurrentPosition" VALUE="1900"> <с какой секунды начинать воспроизведение-->
    15.                   <PARAM NAME="AutoStart" Value="0"><!--ждать нажатие на play -->
    16.                   <EMBED id="Player1" name="Player1" src=[b]"index.php?page=comment&iden=<?echo $_GET["iden"];?>&player=<?echo $str;?>" [/b] type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" ShowControls="1" ShowTracker="1" ShowStatusBar="1" VideoBorder3D="1" VideoBorderWidth="0" width="320" height="63" AutoStart="0" AnimationAtStart="1" TransparentAtStart="1" uiMode="none" StretchToFit="1"></embed>
    17.                   </OBJECT>
    18.            </div>
    19. <?}
     
  2. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    че ни кто не знает чтоли?
     
  3. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Народ помогите плиз!!!!!!!
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    в функции fplayer принимаешь айдишник и по нему из базы тащишь путь.

    описание у тебя дерьмовое, нихрена не понятно. потому никто и не отвечает
     
  5. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    А как тащить путь?
    запросом типа
    Код (Text):
    1. $sql = "SELECT path FROM mbase WHERE id=".$_GET["player"];
    2. mysql_query($sql);
     
  6. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    А вот как дальше быть?
     
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    $sql = "SELECT path FROM mbase WHERE id=".$_GET["player"];
    $query = mysql_query($sql);
    $query = mysql_fetch_row($query);
    $path = $query[0];

    затем в шаблон вставляешь

    <PARAM NAME="URL" VALUE="index.php?page=comment&iden=<?echo $_GET["iden"];?>&player=<?echo $path;?>">

    что-то вроде такого, но было бы лучше добавить проверки от ошибок и прочее.
    советую прочесть хотя бы 2-3 страницы о взаимодействии php и MySQL.
     
  8. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Спасибо большое. Проверки само собой добавлю.
     
  9. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Нет вы меня не правильно поняли. Я хочу, чтобы переменная $path была айдишнеком, а не полным путем до видео файла.
    А, то указание полного пути до видео файла это как-то не защищенно.
     
  10. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Сталкивался с таким подходом - для медиа файлов в базе данных создана таблица, в полях которой хранится полный путь к файлу и его секретное имя, типа jdjsdhjfsdn

    При анализе GET-запроса идет запрос к базе данных, и по секретному имени выбирается полный путь.

    Скажи пожалуйста, зачем это тебе нужно, от чего хочешь защититься?
     
  11. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Пишу свой медиа-сайт, и как любой нормальный программист защищаю свои данные от чужих ручек.
    Подскажи как сделать плиз уже 2 неделю воюю((
     
  12. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    алгоритм я написал.

    А можно подробнее, что это значит? Чтобы никто не смог эти данные с сервера скачать?
     
  13. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Ну собтсвенно да
     
  14. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Тогда делай по той схеме - секретное имя, в базе хранишь соответствие секретного имени и полного пути.
    А файлы хранишь вне каталога веб-сервера.


    Если они у тебя в каталоге сервера - все эти манипуляции лишены малейшего смысла.
     
  15. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Алгоритм хеша файла я написал свой, чтобы ни кто не мог распознать его с помощью своих ПО.
    Хотя можно было и не писать а воспользоваться всего лишь функцией md5 и crypt что-то вроде такого md5(md5(crypt($path))); Но это не интересно.)
     
  16. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    В том то и дело что они у меня вне каталога сервера. я там указываю полный путь.
     
  17. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    а зачем его распознавать? Обычно хеш не зависит от имени файла, и тем более от пути.
     
  18. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    А сделать данную схему не получается((
     
  19. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    ну тогда в чем проблема?
    Можно например через .htaccess разрулить

    Код (Text):
    1. RewriteRule ^video\/(.*)$ attachment.php?filename = $1
    А файл attachment.php по полученному параметру выбирает из базы путь и отдает его.
     
  20. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Путь у меня такой к примеру:
    F:/Video/vb/1.avi
    или
    такой
    G:/Serials/V/series 1.avi

    Пути для файлов всегда разные
    Если через .htaccess делать, то придется большую кучу правил написать.
     
  21. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    А таких файлов может быть больше миллиона и придется большое количество правил писать
     
  22. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    ^(.*)\/(.*)\/(.*)$ attachment.php?category=$1&type=$2&filename=$3
     
  23. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    То есть в filename передается просто название файла? а путь для пользователя остается загадкой
     
  24. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Передается просто хеш. А по хешу из базы данных вибирается имя, путь, описание, размеры - всё что душе угодно
     
  25. Vangok

    Vangok Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    ну передал яссылку в проигрыватель index.php?page=comment&iden=1&player=4fedf37282b8b952eb522a607a0d94f6
    И ни чего не воспоризводит ((