ZulfadlyAshBurn Posted June 21, 2011 Share Posted June 21, 2011 I am creating a music player for my school and it is only available online. It is used to stream music produced by students. I would like to disable direct download from the servers. The best i did was to base code and store session but they are still able to download how to disallow them from downloading index.php <?php $nameofdir = "music/"; $domain = $_SERVER['HTTP_HOST']; $dir = opendir($nameofdir); $unique = base64_encode(uniqid()); $_SESSION["uid"] = "$unique"; while (($file = readdir($dir)) !== false) { if (strpos($file, '.mp3') !== false) { $name = str_replace('.mp3', ' ', $file); $files = str_replace(" ", "%20", $file); $id = base64_encode($file); ?> <li><a class="media" href="getaudio.php?uid='<?php echo $unique; ?>'&id='<?php echo $id; ?>"><?php echo $name; ?></a></li> getaudio.php <?php header("Content-type: audio/mp3"); //mp3 contenttype header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 session_start(); $id = base64_decode($_SESSION["uid"]); $uid = base64_decode($_REQUEST["uid"]); $url_id = base64_decode($_REQUEST["id"]); if ( $id == $uid ) { header("Location: music/" .$url_id); } else { echo "Thank you for trying to download."; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/240018-disable-direct-download/ Share on other sites More sharing options...
requinix Posted June 21, 2011 Share Posted June 21, 2011 There is no way to prevent a direct download. Best you can do is make it relatively difficult (though it's still fairly easy if you know how to get around it) and that requires hiding the URL - typically by using a Flash or Java player embedded in the page. Quote Link to comment https://forums.phpfreaks.com/topic/240018-disable-direct-download/#findComment-1233011 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.