Tam URL'si görünmeyen dosya indirme linki
Merhaba, soru-cevap sistemimiz yeniden hayırlı olsun.
Abonelik gerektiren bir dosya indirme scripti hazırlamak istiyorum, aslında hazırladım. Sadece abonelik gerektireceği için indirilen dosyaların tam link yolu görünmesin istiyorum.
http://siteadi.com/download.php?id=123 olarak indirebilelim. download.php de session kontrolü yapacağım için üye olmayan bu linke ulaşamayacak zaten. Ama bir üye bu link ile indirdiğinde tarayıcının indirilenler kısmında tam URL'yi görüyorsa aboneliğin bir anlamı kalmıyor. İstediğim ne indirilenler sekmesinde ne de kaynak kodunda hiçbir şekilde tam URL görünmemeli.
Sanırım sorum anlaşılmıştır. Bu konuda yardımlarınızı rica ediyorum. Herkese iyi çalışmalar.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (12)
Bir sene kadar önce hazırlamıştım, bu gizli link yüzünden takıldım araya zaman girdi, o arada başka şeylerle uğraştım biraz yeni şeyler öğrendim. Yeniden organize ediyorum. bitince memnuniyetle gösteririm.
Ama şu anki hali ile görmende mümkün basit hali ile. mobilefilemarket.com girip Yeni kullanıcı oluşturdan kayıt yap. Sonra seni admin yaparım. Bakar önerilerde bulunursun.
Verdiğiniz url ile örneklendirme yapacağım!
<?php
$url = "https://indiryuklemp3.org/mp3_files/bedel-YPjyr0gOLS-0.mp3";
$headers = get_headers($url, TRUE); //dosya adresinden headers bilgilerini alıyoruz
$filesize = $headers['Content-Length']; //dosya uzunluk bilgisini değişkene atıyoruz
header('Content-Type: audio/mpeg'); // dosya tipini belirliyoruz
header('Content-Disposition: filename="bedel.mp3"'); //dosyamızın adını belirliyoruz
header('Content-length: '.$filesize); //dosya uzunluk bilgisini ekliyoruz
header('Cache-Control: no-cache');
header("Content-Transfer-Encoding: chunked");
readfile($url); //dosyayı php üzerinden okutuyoruz
Yazmış olduğum kodları bir php dosyasına kaydedip denersen kaynak dosyanın adresini indirme bölümünde göremeyeceksin.Diğer dosya türleri ve kaynak adresleri için bazı geliştirmeler yapman gerekecektir her zaman çalışmayabilir.
meraba size urldecode($var)
hemde `urlencode($var) yardam verir
show more [php off site] (https://www.php.net/manual/en/function.urldecode.php)
buradaki temel mantık dosyaları statik dosya değil php ile gönderme şeklinde olabilir. session oluşturulmamış kullanıcıya dosyayı göndermezsiniz. yani dosya linkini kullanıcıya hiçbir zaman paylaşmayacaksınız. indir.php?dosyaadi=xxx.zip gibi url üzerinden php ile session kontrolü yaparak üye giriş yaptıysa php ile dosyayı okutup gönderebilrsiniz. session yoksa da yani üye girişi yapılmadıysa göndermezsiniz.
Keşke düzenleme kısmı olsa da ekstra yorum yapmamış olsam...
Hocam bu kütüphane ile indirme limiti de koyabiliyorsun. Yani eğer sisteminde farklı üye grupları var ise indirme limiti koyarak grupları daha cazip hale getirebilirsin. Hatta limitsiz indirme için ise ücretli bir üye grubu yapabilirsin :) Bu da benim nacizane tavsiyem olsun.
İndirme limitinden kastım saniyede indirilen veri miktarı :)
Selamlar.
https://github.com/ahmad-sa3d/php-advanced-downloader
Bu kütüphane işini görecektir diye tahmin ediyorum. Şimdiden kolay gelsin
Soruda örnek vermediğim için böyle oldu sanırım. Biraz açayım, örnekte verdiğim siteadi.com/download.php?id=123 adresi https://baskabirsite.com/depo/dosya.zip dosyasının inmesini sağlayacak. Ama kullanıcı https://baskabirsite.com/depo/dosya.zip adresini görmeyecek. Bu dosyaların indiği site googledrive vb yerler olabilir bu yüzden klasörleri şifrelemek gibi metodlarda kullanamıyorum. Tek çarem linki gizlemek.
Bir örnek daha bu sefer anlaşılacak aşağıdaki adrese uğrayın ve mp3 ü indirin ve tarayınızın indirilenler sekmesine gidin bakın açık tam URL yui görebiliyormusnuz?
https://muzikmp3indir.com/mustafa-ceceli-bedel-muzik-mp3-indir-134650