anasayfa
iletişim
twitter'da ben
rss besleme

Php ile dosya indirme uygulaması

admin: 31 July 2009 | kategori: Php

Aslında bu örnekte php ile bir dosya indirmeyeceğiz, asıl amacımız varolan bir dosyanın direk indirilmesini engellemek ve dosya indirilirken bazı veritabanı işlemleri yapmak. İşlem sırasındaki dosyanın kendi sunucumuzda olması ya da dış bir sunucuda bulunması herhangi bir sorun teşkil etmez.

<?php
$site = "microturk.net";
$dosya = "http://www.microturk.net/dosyalar/deneme.zip";

$ref = @$HTTP_REFERER;

if (!stristr($ref,$site) == false) {
header("Location: $dosya");
} else {
echo "Bu dosya direk indirilemez. <a href=\"$dosya\">tikla</a>";
}
?>

Bu dosyadaki değişkenleri istediğiniz gibi değiştirerek tekrar kullanabilirsiniz. Örneğin $site değişkenini dosyanın indirme bağlantısının bulunduğu bağlantı ile değiştirin. Bu değişken ile ziyaretçinin direk mi geldiği yoksa farklı bir yol ile mi geldiği sınanmaktadır.

Örneğin bu dosyayı dosya.php şeklinde kaydettiğinizi varsayalım ve veritabanınızda bulunan dosyaları indirtmek için kullanacaksınız. Size örnek teşkil etmesi amacıyla şu yöntemi önerebilirim. Dosyaya bağlantı verirken indirtmek istediğiniz dosyanın veritabanındaki belirleyici bir değerini verebilirsiniz, bu genellikle id olur. Örnek olarak dosya.php?id=33. Ardından dosya içinden bu değeri $_GET['id'] ile çekebilir ve veritabanı fonksiyonlarınızı hazırlayarak çekebilirsiniz. Sonra edindiğiniz dosya özellikleri ile çıktıyı değiştirebilirsiniz. Belki de dosyanın kaç kez indirildiğini saymak için header işlecinden sonra veritabanına ekleme yapan bir kod eklersiniz kim bilir.

Bu yazı sadece bir yol göstericidir. Eğer takıldığını noktalar olursa yorum olarak belirtebilirsiniz. İşinize yaradıysa da yorum yazın, malum yorum blogcunun ekmeğidir :)

etiketler: , , , , , , ,

2 kişi yorum yapmış. Sende katılsana aralarına.

Ahmet: — 31 January 2010 @ 18:08

Süper örnek.
header ile phpyi dosya olarak göstermek..
Teşekkürler.

Recep Eyyüp Gülcemal: — 9 July 2011 @ 11:19

hocam,bu site dışından indirmemek için güzel bi yöntem.
çalıştığım proje üzerinde,üyelerin yetkiye göre indirme yapması gerekiyor.
mesela
A bayisi,sadece satın aldığı yazılımların aktivasyon dosyalarını indirebilmeli.bunu nasıl yapabiliriz_?yardımcı olursanız sevinirim

Yorum yap