v2.5.2
Giriş yap

Tam URL'si görünmeyen dosya indirme linki

pcmemo
5,081 defa görüntülendi ve 4 kişi tarafından değerlendirildi

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.

Cevap yaz
Cevaplar (12)
pcmemo
1870 gün önce

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.

1mhotep
1870 gün önce

@pcmemo Yardımcı olabildiğime sevindim. Bu arada hazırladığın scripti incelemek isterim tabi sende inceletmek istersen.(bu nasıl bir cümle oldu arkadaş :D)

pcmemo
1870 gün önce

@1mhotep işte budur. Allah razı olsun. Artık soruyu doğru soramadığımdan şüphelenmeye başlamıştım. Tekrar teşekkür ederim.

1mhotep
1870 gün önce

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.

u2b3ki
1872 gün önce

meraba size urldecode($var) hemde `urlencode($var) yardam verir
show more [php off site] (https://www.php.net/manual/en/function.urldecode.php)

ck778
1873 gün önce

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.

ilkrkaya
1873 gün önce

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ı :)

ilkrkaya
1873 gün önce

Selamlar.
https://github.com/ahmad-sa3d/php-advanced-downloader
Bu kütüphane işini görecektir diye tahmin ediyorum. Şimdiden kolay gelsin

pcmemo
1873 gün önce

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

emreokay
1873 gün önce

Hocam mantıksal olarak cevap vermek gerekirse her bir indirme linkini tek kullanımlık yapabilirsin. İndirme linkinden bir kez indirilme yapıldığında o url bir daha işlemez hale gelebilir. Ek olarak blob protokolünü de araştırmanı öneririm.

pcmemo
1873 gün önce

Sevgili myrioos, abone olmayan bırak tam linki görmeyi siteye download linkine tıklayamayacak bile, ben abonelerde göremesin istiyorum ki tam URL warez tarzı paylaşılmasın.

myrioos
1873 gün önce

Hocam aboneliği olan kullanıcılarına if, else ile yapabilirsiniz.

Örnek

$uye_rutbe = 2; // burda rütbesi 2 olan yani aboneliği olan kullanıcı

if ($uye_rutbe == 2) {
	echo 'Aboneliği olan görecek';
}