Merhaba arkadaslar,
PHP ile bir sistem gelistiriyorum. Sistemde 400-500MB boyunda dosyalar bulunuyor ve kullanici bu dosyalari indirmek icin uye olmasi gerekiyor. Uyelik sistemini hazirladim yalniz download sayfasinda oyle bir sey yapmaliyimki hem kullanici sorun yasamadan dosyalari download etmeli (download in resume destegi olabilmeli ve ayni anda bir kac segment ile download edebilmeli) hemde url yi baskasiyla paylasamamali yani direkt download linkini gorememeli.
Daha once gelistirdigim bir image hosting sitesi icin asagidaki yonetimi kullanmistim ama bu yontemin burada ise yarayacagini dusunmuyorum. Kullanicinin bir dosyayi bir kac gun de download etmesi halinde bu sistem calismaz cunku ip adresine bakiyor ayrica buyuk dosyalarda serveri kasacak bir sistem kullaniyor. Ben yinede belki isinize yarar diye bu sistemi anlatayim.
.htaccess kullanarak kullaniciya bir url veriyorum;
http://www.icuru.com/images/192/abc123abc123
burada /images -> .htaccess ile imageview.PHP dosyasina yonlendirme yapilicagini gosteriyor
192 image in dosya adi. Imageleri sistemde 1.jpg, 2.jpg, 3.jpg ...... 192.jpg sekkinde tutuyorum ve bu dosyalarin bulundugu dizin
http://www.icuru.com/gizlidizin/192.jpg seklinde... Siz direkt bu url yi kullanarak image e ulasabiliyorsunuz benim zaten tum cabam linkin kopyalanmasini engellemek icin bu dizini saklamak
abc123abc123... ise benim md5 ile yarattigim bir anahtar bu anahtar soyle bir seyden olusuyor;
md5("icurugizli".$_SERVER["REMOTE_ADDR"]);
burada kullanicinin ip adresini ve "icurugizli" anahtar kelimesini md5 ile kodluyorum. Ileride bu anahtari cozerken tekrar bu kombinasyonu kullaniyorum.
Kullanici bu url yi yazinca "http://www.icuru.com/images/192/abc123abc123"
imageview.PHP dosyasina 2 parametre gidiyor. Birincisi 192, ikincisi abc123abc123 burada abc123 kismi kullanicinin ipsine gore yaratildigi icin her kullanicida farkli bir deger gonderiyor. Simdi imageview.PHP de ne olduguna bakalim ;
oncelikle imageview.PHP yi cagiran kullanicinin ip adresini alalim ve bunu icurugizli kelimesi ile birlikte md5 ini yaratalim. Bu yaratilan md5 ile parametre olarak gelen md5 key nin ayni olmasi lazim EGER kullanicinin ipsi ayni ise. Bu dogrulamayi yaptikdan sonra ilk parametre olarak 192 nin sonuna .jpg ekliyoruz ve bu dosyayi bulundugu orjinal dizinden cagirip kullaniciya gosteriyoruz. Cok net anlatamadigimi biliyorum bu yuzden size asagida imageview.PHP dosyasinin kodunu veriyorum.
Kod:
<?PHP
if ($_GET["c"] <> "")
{
if ($_GET["n"] <> "")
{
$image_no = $_GET["n"];
if (md5($_SERVER["REMOTE_ADDR"].$image_no."topsecret") == $_GET["c"])
{
// image i goster kod dogru
header('content-type: image/jpeg');
$src_img = ImageCreateFromJpeg("gizlidizin/".$image_no.".jpg");
imagejpeg($src_img);
imagedestroy($src_img);
}
else
{
// guvenlik kodu yanlis
noimage();
}
}
else
{
// yok resmini goster
noimage();
}
}
else
{
// yok resmini goster
noimage();
}
?>
Selamlar