Robię mały serwis muzyczny i manager artysty pozwolił mi umieścić fragmenty utwórów w formacie MP3 na stronie, ale postawił warunek - mają być zabezpieczone przed ściągnięciem na dysk lokalny użytkownika...
Jak to zrobić z poziomu skryptu php? Dodam, że w grę nie wchodzą ustawienia .htaccess, ponieważ chcę skorzystać z hostingu (nie mam własnego serwera).
Kombinowałem w ten sposób:
zrobiłem linki z utworami, po kliknięciu których wyskakuje okienko popup z odtwarzaczem Windows Media Player (przy wykorzystaniu <object> of course).
W <param name="FileName" value="" /> w ramach value wstawiłem 'start.php', czyli mam <param name="FileName" value="start.php" />
Skrypt start.php wygląda tak:
<?php @include(\"files.php\"); switch($_GET[\"UID\"]) { case 0: $file_path = $path[0]; break; case 1: $file_path = $path[1]; break; case 2: $file_path = $path[2]; break; } $mfile = $file_path; ?>
W sumie dla Internet Expolorera działa... muzyczka odtwarza się w odtwarzaczu na stronie, zabezpieczyłem prawy klawisz myszy, a nawet po dostaniu się do źródła strony i wpisaniu w pasku adresu ścieżki do pliku start.php wyskakuje komunikat błędu ściągania pliku... Czyli tutaj jest OK...
Ale problem tkwi w Operze... Gdy w pasku adresu wpiszę ścieżkę dostępu do pliku start.php (np. http://www.mojserwer.pl/sample/start.php) Opera zaczyna ściągać plik... MP3...
Próbowałem zabezpieczać jakoś poprzez $_SERVER["HTTP_REFERER"], sprawdzając czy wejście na start.php wystąpiło tylko i wyłącznie z dokumentu zawierającego kod odtwarzacza, ale w Operze ta metoda nie działa i da się to ominąć...
Może macie jakieś pomysły. Zależy mi na tym aby użytkownik mógł posłuchać pliku MP3 w wbudowanym na stronie odtwarzaczu Widnows Media Player, ale aby nie miał możliwości dostania się do pliku i ściągnięcia go na dysk.
Powyższe metody, które wymyśliłem działają, ale niestety nie dla Opery (dla Netscape jeszcze nie sprawdzałem).
Pozdrawiam.
P.S. Nie doradzajcie mi abym zastosował format Real Audio ;-) (.ra, .ram)
Nie kazdy ma Real Playera, a Windows Media Player prawie każdy