KategorilerPHPYazılımlar

[PHP] txtController ile Metin (txt) Dosyalarınıza Hükmedin

Bu basit class yardımı ile txt (metin) dosyalarını çok rahat bir şekilde yönetebileceksiniz. Herhangi bir txt dosyası oluşturabilir, silebilir ve düzenleyebilir. O txt dosyasının belirli satırlarını silip, düzenleyebilirsiniz. Can sıkıntısından kodlamış olduğum class’ı herkes kullanabilir.

KategorilerPHP

PHP ile Email Adresi Kısıtlaması

Sadece belirli email uzantılarını kabul etmek için aşağıdaki fonksiyonu kullanabilirsiniz. Kullanımı çok kolaydır. Rahatlıkla her yerde kullanabilirsiniz.

[php]

<?php
/*
Mail Kontrol Fonksiyonu

Evrim Altay KOLUAÇIK
04.11.14
*/
function email_kontrol($email){
//Hangi uzantıdaki email adreslerini kabul edeceksek onları yazıyoruz
$sart = array(‘gmail.com’,’hotmail.com’,’yandex.com’);
if ( filter_var($email, FILTER_VALIDATE_EMAIL) ){
$parcala = explode(“@”,$email);
$son = end($parcala);
if(in_array($son,$sart)) return TRUE;
else return FALSE;
}else{
return FALSE;
}
}
// Kullanımı
if(email_kontrol(“emailadresi@gmail.com”)){
echo “Bu email adresi gerekli şartlara uygun”;
}else{
echo “Bu email adresi gerekli şartlara uygun değil”;
}
?>

[/php]

Kullanımı

$sart kısmındaki array’a kabul edeceğimiz uzantıları yazalım (veya kabul etmeyeceğimiz). Aralarına virgül koyarak dilediğiniz kadar uzantı yazabilirsiniz. Örnek;

[php]$sart = array(‘gmail.com’,’hotmail.com’,’yandex.com’,’yahoo.com'[/php]

Ardından bu fonksiyonu, form işlemlerini yaptığınız bir sayfanıza kayıt edip email adreslerini kontrol edebilirsiniz.

KategorilerGenel

[PHP] Ortalama Hesaplama Fonksiyonu

Bu videolu (görsel) eğitimde PHP ile nasıl ortalama alınır onu öğrendik. Ortalama fonksiyonumuzda çeşitli kontroller yaptırdık ve her yerde kullanabileceğiniz bir küçük ve işe yarar bir fonksiyon oldu. İstediğiniz kadar sayı girebilme şansına sahipsiniz, arada sayı yerine başka karakterler veya metinler girseniz dahi hiçbir sorun çıkarmadan sadece sayıların ortalamasını alarak size geri döndürüyor. Kullanımı da çok basit olup sayıları içeren bir dizi göndermeniz yeterlidir. Videomu 720P formatında YouTube üzerinde izleyebilirsiniz. İyi öğrenmeler …

Video (720P)

[youtube=http://www.youtube.com/watch?v=W2poxr-Apuw]

Kaynak Kodlar

[php]

<?php
function ortalama($array){
$toplam = 0;
$sayi = count($array);

foreach($array as $ort){
if(is_numeric($ort)){
$toplam += $ort;
// $toplam = $toplam + $ort;
}else{
$sayi–;
}
}

if($sayi){
$islem = $toplam / $sayi;
return $islem;
}else{
return "NaN";
}
}

$dizi = array(100,90,70,80,50,10,"b","c");
echo ortalama($dizi);
?>

[/php]

KategorilerPHP

[PHP] Resimlerinizi Saklayın, Gerçek Yolu Gizli Kalsın

Bir resim sitesinin sahibiyseniz ve resimlerinizin ‘gerçek’ linklerinin görünmesini istemiyorsanız tam size göre bir çözümümüz var. Burada paylaşacağım tamamiyle ücretsiz olan bu PHP altyapılı sistem sayesinde resimleriniz güvende kalacak. Resimlerinizin yolunu değiştirdiğinizde de toplu bir değişiklik yerine sadece php sayfamızdaki bir yerde bulunan alanı değiştireceksiniz, hem zamandan, hem de güvenlikten kazanın 🙂

Sistem basittir ve img.php dosyasının içinde gerekli şeyler anlatılmıştır. Burada belirtmem gereken bir iki şey var sadece.

  • Resimlerinize link vermek için img.php?id=# yapısını kullanın.
  • PHP’de sayılar 0’dan başlar. Bu da demek oluyor ki resimlere link verirken ilk resim için img.php?id=1 yerine img.php?id=0 yazmalısınız.
  • Resim verilerini array ile tanımlarken uzantısını yazmamaya, array yapısını bozmamaya ve hangi satırdaki kaydın hangi ID’ye sahip olduğunu unutmayın. Bura da da hatırlatalım, PHP’de sayılar 0’dan başladığı için array’daki ilk satır sizin aslında 0’ıncı kaydınızdır.
    [php]$images= array(
    ‘img1’,
    ‘img2’,
    ‘img3’,
    ‘img4’,
    ‘img5’,
    ‘img6’
    );[/php]

Dosyayı indirmek için: http://www.evrimaltay.net/Script/?f=Resim adresini kullanın.

 

Sayfa açıldığında direk olarak resmin indirilmesini de istiyorsanız, “img.php” sayfasının 30. satırındaki # kodunu kaldırın. Yani kodu işlevsel hale getirin.

KategorilerKişiselPHPYazılımlar

[Satılık] E-Mail Abonelikli Dosya Paylaşım Scripti

Uzun zaman önce kendim için kodlamış olduğum scripti başka kişilere de satmaya karar verdim. Bu script tasarım olarak kötü olmasa aslında arkaplanda bir çok özellik barındırmakta.

Scriptin amacı şu, kişiler size email adreslerini vermeden dosya indiremiyor. Sistem şu şekilde çalışıyor. Ziyaretçi dosyaları indirebilmek için sisteme adını ve email adresini veriyor. Sistem onun email adresine bir aktivasyon linki ve dosyaları indirebilmesi için gerekli olan indirme kodunu gönderiyor.

Tabii ki bir kişi sitenizden sınırsız dosya indiremez, her kullanıcıya sistem tarafından otomatik olarak 20 indirme hakkı sunuluyor. Eğer isterseniz yönetici panelinden bu limiti üyeye özel arttırabiliyorsunuz. Bu sayede limit satışı yapıp para da kazanabilirsiniz.

Fakat sistem e-posta göndermeyi desteklememektedir. Yani bu script ile e-posta gönderemezsiniz. Fakat halihazırda olan abonelik scriptiniz var ise kişiyi o listeye elle ekleyebilirsiniz, kimleri ekleyip eklemediğinizi görmek için her üyenin ekli olup olmadığını gösteren bilgisi de veritabanında kayıt altında 😉

Tüm Özellikleri

  • Kullanıcıların E-Mail adreslerini ve isimlerini kayıt eder.
  • Onlara aktivasyon ve indirme kodu bilgisini içeren bir email gönderir.
  • Gelişmiş yönetici paneli sayesinde her üyenin istediğiniz bilgisini değiştirebilir, görebilirsiniz.
  • Her üyeye özel indirme limiti belirleyebilirsiniz.
  • Üyenin halihazırda bulunan aboneliğinize kayıtlı olup olmadığını görebilirsiniz.
  • Kolay kurulur, dosyalarınızı rahatlıkla ayarlayabilirsiniz.
  • Dosyaların gerçek dizinini hiçbir üye veya ziyaretçi öğrenemez. Yani kaçak bulunmaz.
  • Hangi üyenin, hangi dosyayı, ne zaman ve hangi IP adresi ile indirdiğini görebilirsiniz.
  • Üyeleri banlayabilirsiniz.
  • Session ile kontrol edilen dosya linkleme sayesinde sistemi hiç ziyaret etmemiş kullanıcıya tek bir link vererek onun kayıt olmasını ve hemen ardından sizin istediğiniz dosyayı indirmesini sağlayabilirsiniz.
  • Üyeler isterse dosya listesinden de seçerek istedikleri dosyaları indirebilirler.

Sistemin demosu kaldırılmıştır.

Scriptin fiyatı 50 TL olup, script sürekli güncellenmektedir. Bir kez satın aldığınızda çıkacak olan güncelleştirmelerden ücretsiz olarak yararlanabileceksiniz. Satın almak için bize mail atın. (İletişim sayfamız)

KategorilerPHP

PHP ile PayPal Kesintilerinden Kurtulun

Bilirsiniz ki hediye olarak göndermediğiniz sürece gönderdiğiniz tüm tutarlar belirli bir kesintiye maruz bırakılır. Bu Türkiye’de;

Tutar’ın %3,4’ü artı 0,47 TL olarak belirlenmiştir. İşte bu gün bu videolu dersimde sizlere o kesintiden kurtulmanızı sağlayacak olan detaylı bir fonksiyonun nasıl yazıldığını gösteriyorum. Bu fonksiyon PayPal kesintilerini engellemiyor, sadece o kesintiyi kullanıcıya yansıtıyor. Yani KDV Dahil fiyat gibi PayPal Kesinti dahil demenizi sağlıyor.

Video (760p)

Kaynak Kodları

[php]<br /><br />&lt;?php<br />error_reporting(0);<br />function kesinti($tutar,$secenek){<br /><br />$kesinti_yuzde = ($tutar * 3.4) / 100;<br />$kesinti_toplam = $kesinti_yuzde + 0.47;<br />$ne_kadar = $tutar + $kesinti_toplam;<br />$kalan_tutar = $tutar - $kesinti_toplam;<br /><br />if($secenek == 1){<br />return $kesinti_toplam;<br />}elseif($secenek == 2){<br />return $ne_kadar;<br />}elseif($secenek == 3){<br />return $kalan_tutar;<br />}else{<br />return $kesinti_toplam;<br />}<br /><br />}<br /><br />##Kullanım:<br /><br />//PayPal'ın Kesintisi<br />echo kesinti(5,1);<br /><br />//PayPal'ın Kesintisi Dahil Almanız Gereken Tutar<br />echo kesinti(5,2);<br /><br />//Kullanıcıdan Kesinti Dahil Tutar Çekmezseniz Elinizde Geçecek Tutar<br />echo kesinti(5,3);<br />?&gt;<br /><br />[/php]
KategorilerPHP

PHP Yüzde Fonksiyonu ile Uzun Kodlardan Kurtulun

Bu gün bir videolu ders çekeyim dedim. 3 kere çektim aynı bölümü ses problemlerinden dolayı. İlk bölüm olduğundan hatalarım olabilir. Ek olaraktan hastayım sesimde de problemler olabilir. Yine ek olaraktan heyecanlıyım sürekli konuşmam sırasında hatalarım olmuş. Hepsinden dolayı tekrar özrü dilerim.

Video (760p)

[youtube=http://www.youtube.com/watch?v=wkcpxlcsqLc]

Kullanım

Kullanım için öncelikle yuzde.php diye bir sayfa oluşturup fonksiyonumuzu oluşturunuz (kaynak kodlardan yararlanabilirsiniz). Ardından aşağıdaki örneği inceleyiniz.

[php]

<?php
//Fonksiyon sayfasını çağıralım.
require("yuzde.php");

//200’ün %10’u kaçtır. Yazsın.
echo yuzde(200,10);
# Çıktı: 20

//200’ün %10’unu 200 ile farkı kaçtır bulsun ve yazsın.
echo yuzde(200,10,2);
# Çıktı: 180

//200’ün %10’unu 200 ile toplamı kaçtır bulsun ve yazsın.
echo yuzde(200,10,3);
# Çıktı: 220

//200’ün %10’unu 200 ile çarpımı kaçtır bulsun ve yazsın.
echo yuzde(200,10,4);
# Çıktı: 4000

//200’ün %10’unu 200 ile bölümü kaçtır bulsun ve yazsın.
echo yuzde(200,10,5);
# Çıktı: 10
?>

[/php]

Kaynak kodları

yuzde.php (ana fonksiyon burada bulunmakta)

[php]

<?php

error_reporting(0);
function yuzde($sayi, $yuzde_deger,$secenek){

$yuzdemiz = ($sayi * $yuzde_deger) / 100;
$fark = $sayi – $yuzdemiz;
$topla = $sayi + $yuzdemiz;
$carp = $sayi * $yuzdemiz;
$bol = $sayi / $yuzdemiz;

if($secenek == 1){
return $yuzdemiz;
}elseif($secenek == 2){
return $fark;
}elseif($secenek == 3){
return $topla;
}elseif($secenek == 4){
return $carp;
}elseif($secenek == 5){
return $bol;
}else{
return $yuzdemiz;
}
}
?>

[/php]

yuzde2.php (fonksiyonun başka sayfalara eklenebildiğini gösteren örnek)

[php]

<?php
require("yuzde.php");

echo yuzde(300,10,5);
?>

[/php]

KategorilerPHP

PHP KDV Hesaplama Fonksiyonu (KDV Dahil, Hariç)

Her zaman sorun olmuştur bu KDV Formülleri. En azından kolay yoldan bunu halletmek isteyen insanlar için baş ağrısı. Bu yüzden sizin için iki adet fonksiyon hazırladım.

Bu fonksiyonlardan biri tutarın KDV dahil halini hesaplarken, biri de tutarın KDV hariç halini hesaplıyor. Kullanımı da kurması da çok kolay.

Öncelikle size bir adet PHP dosyası lazım. Aşağıda vereceğim kodları PHP dosyasına eklemek daha kolay ve hızlı yöntemdir. Bu sayede fonksiyonları tek bir yerden kontrol edebilirsiniz.

kdv.php Kodları

<?php
function kdv_ekle($tutar,$oran){
  $kdv = $tutar * ($oran / 100);
  $ytutar = $tutar + $kdv;

  return $ytutar;

}

function kdv_cikar($tutar,$oran){

  $ytutar = $tutar / (1 + ($oran/100));

  return $ytutar;

}

?>

Kullanım

kdv.php dosyasını sayfanıza include ettikten sonra aşağıdaki iki fonksiyondan birini rahatlıkla kullanabileceğiz.

include için:

<?php include("kdv.php");?>

KDV Dahil

Bir tutarın KDV dahil halini hesaplamak için aşağıdaki fonksiyonu kullanın.

<?php kdv_ekle(tutar,kdv oranı); ?>

Örnek olarak; 100 TL’nin %10 KDV’li fiyatı 110 TL’dir ve aşağıdaki fonksiyonu kullandığımızda bize 110 TL’yi verecek.

<?php kdv_ekle(100,10); ?>

KDV Hariç

Yukarıdaki fonksiyonun tersini yapar, KDV hariç olarak hesaplar.

<?php kdv_cikar(tutar,kdv oranı); ?>

Örnek olarak yukarıda 100 TL’nin %10 KDV’li fiyatını 110 TL bulmuştuk. Şimdi 110 TL’nin %10 KDV’siz fiyatını bulalım.

<?php kdv_cikar(110,10); ?>

Kolay gelsin …

KategorilerPHP

[PHP] Reklamları Süreli ve Sıralı Olarak Gösterme, Ardından Yönlendirme

Bu yazımda sizin için kodladığım ve tahminime göre bir yerlerde bulamayacağınız bir reklam betiği. Bu reklam betiği sayesinde reklam yayın süresi, reklam limiti, reklamlar ve yönlendirilecek sayfayı girdikten sonra rahat ve güvenli bir şekilde reklamlarınız listeleniyor. Burada reklamları Session ile listeletiyoruz. Mantığı zaten kodlarda çözeceksiniz. Basit bir şey olarak kodladım fakat güzel bir şeye benzedi 🙂 Eğer dediğim şeyleri yapamadıysanız sayfanın sonunda sizin tüm dosyaları arşivledim, oradaki örneği inceleyebilirsiniz.

[php]

<?php

//Session’u başlattık
session_start();
//Hataları kapatıyoruz
error_reporting(0);

$adlimit = 4; //Reklam Limiti
$adrtime = 5; //Yönlendirme Zamanı
$adredaf = $_GET[‘r’]; //Yönlendirilme Sayfası
$ads = array("1. Reklamdasınız", "2. Reklamdasınız", "3. Reklamdasınız", "4. Reklamdasınız", "5. Reklamdasınız"); //Reklamlar

//Adsee adlı bir değişken oluşturup bunu Session Adsee ile eşitliyoruz
$adsee = $_SESSION[‘adsee’];

//Eğer adsee değişkenimiz boş ise ona 0 diyoruz
if(empty($adsee)){
$adsee = 0;
}

//Adsee değerine eş gelen reklamımızı yazdırıyoruz
echo $ads[$adsee];
//Sessionu ve Adsee değerini Arttırıyoruz
$adsee++;
$_SESSION[‘adsee’]++;

//Eğer adsee değeri limitimizi aşmıyorsa tekrar yönlendirme yapıyoruz
if ($adsee <= $adlimit){
echo ‘<meta HTTP-EQUIV="refresh" CONTENT="’.$adrtime.’;URL=ea1.php?r=’.$adredaf.’">’;
}else{
//Aşıyorsa Sessionu sıfırlayıp kişiyi istediğimiz sayfaya yönlendiriyoruz
unset($_SESSION[‘adsee’]);
echo ‘<meta HTTP-EQUIV="refresh" CONTENT="’.$adrtime.’;URL=’.$adredaf.’">’;
}

?>

[/php]

Burada girmeniz gereken değerler kodların en üstünde belirtilmiştir. Reklam değerlerini girmek için reklamları , (virgül) ile ayırmalısınız. Zaten örnekte de görüldüğü gibi reklamlar ” (çift tırnak) işaretlerinin arasında ve her bir reklam , (virgül) ile ayrılmış durumda.

Ek olarak not: PHP saymaya sıfırdan başladığı için siz reklam kısımına 8 reklam koyarsanız limit kısımına 7 yazmanız gerekmektedir. Çünkü 1. reklamınız PHP ye göre 0. reklamdır.

Nasıl Kurarım?

  1. Yukarıda verdiğim kodların üzerinde gerekli değişiklikleri yaptıktan sonra onları  ea1.php olarak kayıt edin.  Ve sitenizin ana dizinine atın.
  2. Ardından yönlendirme yapacağınız sayfanın başına aşağıdaki kodları ekleyin ve Yönlendirilecek sayfanızı değiştirin.

[php]

<?php

$EA_Redirect = "thanks.php"; // Yönlendirilecek Sayfa ( Geçerli sayfanın adı )
session_start();
if(empty($_SESSION[‘adsee’])){
Header(‘Location: ea1.php?r=’.$EA_Redirect);
exit();
}

?>

[/php]

Sormak istediğiniz her şeyi yorum yolu ile sorabilirsiniz. Yazımı biraz acele ile yazmak zorunda kaldım. Zaten bu aralar pek yazamıyorum. Kusura bakmayın.

Örnek kodları indirmek için: http://www.evrimaltay.net/URL/click.php?id=38

KategorilerPHP

[PHP] Dosya Yolunu Vermeden Dosya Paylaşımı

Merhaba, bu yazımda size dosyalarınızın kaynak yolunu vermeden dosyaları indirme yöntemini göstereceğim. Bu şekilde yapılan indirmelerde dosyayı indirme yolu olarak sizin PHP dosyanızın yolu verilecektir. Basit ama çok etkili bir yöntemdir ve bu sayede müzik / film / resim ve daha aklıma bile gelmeyen bir sürü dosya paylaşım veya satış sitelerinde online olarak indirmelerde dosyalarınızı korur, sadece o kişinin o dosyayı indirebilmesini sağlarsınız.

Bu günkü yazımda hem en sade halini, hem de Session ile güvenlikli bir indirmenin yolunu anlayacağız. Session sistemimizde kullanıcının bizim dosyayı indirmesini istediğimiz kullanıcı olup olmadığı ve  belirli bir indirme limiti aşıp aşmadığını test edeceğiz. İlk olarak en basit yolu gösteriyoruz. Burada değerini değiştirmeniz gereken iki değişken vardır. Zaten kodların açıklamalarında neden ve nasıl olduğu gayet net bir şekilde açıklanmıştır.

Sade Versiyon (Kodlar)

[php]
<?php
$DLPath = "Downloads/Secure/";
$DLFile = "File.zip";
header(‘Content-type: application/zip’);
header(‘Content-Disposition: attachment; filename="’. $DLFile .’"’);
readfile($DLPath. $DLFile .);
?>
[/php]

Sade Versiyon (Açıklamalar)

Kodların açıklamalarını aşağıda vereceğim.  Bu sayede daha iyi ve anlaşılır olacaklar.

$DLPath Bu kod ile dosyamızın gerçek yolunu belirtiyoruz. Burada dikkat etmeniz gereken şey dosyamızın adı ve uzantısı bu yolda geçmeyecek. Örnek kullanım: “Downloads/Secure/”

$DLFile Dosyamızın adı ve uzantısı. Dosya kullanıcının bilgisayarına inerken de bu isimle inecektir. (Fakat dosya yolu kullanıcıya gözükmeyecektir) Örnek Kullanım: “File.zip” Dosyanın Gerçek Yolu: “Downloads/Secure/File.zip”

header(‘Content-type: application/zip’); İndirilecek olan dosyanın formatı seçilir. Daha fazla format için tıklayın.

header(‘Content-Disposition: attachment; filename=”‘. $DLFile .'”‘); Sayfamızın HTML değil de bir dosya olduğunu belirtir.

readfile($DLPath. $DLFile .); Dosyamızı indirmemizi sağlayan fonksiyondur. Burada $DLPath ile $DLFile’ı birleştiriyoruz. Bu sayede readfile fonksiyonuna girdiğimiz değer: Downloads/Secure/File.zip olmaktadır.

Bu sayede dosyamızı yolunu başka kimseyle paylaşmadan indirmiş olduk. Şimdi gelelim daha gelişmişine. Aslında burada yapmamız gereken tek şey altta vereceğim kodları buradaki kodların üstüne eklemek olacak çünkü kodlarımızı ona göre yazacağım.

Gelişmiş Versiyon (Kodlar)

Burada alacağınız tüm kodları Sade Versiyonun hemen üstüne ekleyerek kullanabilirsiniz. Bu sayede sisteminizden dosya indirmek isteyenlerin belirli bir Session’a sahip olması ve indirme limitini aşmamış olması gerekmektedir. Bu sefer açıklamaları kodların içinde vereceğim. Çünkü bu sefer sadece if else deyimleriyle işlem yapacağım. Burada önemli olan ve değerini değiştirmeniz gereken sadece bir adet değişken var. O da indirme limitimizdir 🙂

[php]
<?php
//Sessionları başlatıyoruz. Eğer bu kod olmaz ise hiçbir session değerimiz çalışmaz.
session_start();
//İndirme limitimizi buradan belirliyoruz. İstediğiniz basamakta sayı girebilirsiniz. Yalnız değer sadece tamsayı olmalı !
$LIMIT = 5;
//Eğer kişinin dosyayı indirme yetkisini belirleyen session değeri boş ise hata yazdırıp exit(); fonksiyonu ile işlemi durduruyoruz.
if (empty($_SESSION[‘YETKI’])){
echo "Bu dosyayı indirmek için gerekli yetkiye sahip değilsiniz !";
exit();
}
//Eğer indirme adedimizi sayan session değeri boş ise onu 0’a eşitliyoruz ki sistemimiz işlemleri yaparken sorun yaşamasın.
if (empty($_SESSION[‘INDIRME’])){
$_SESSION[‘INDIRME’] = 0;
}
//İndirme adedimizi sayan session değeri belirlediğimiz limitten büyük veya o limiti aşıyor ise hata yazdırıp işlemi durduruyoruz.
if ($_SESSION[‘INDIRME’] >= $LIMIT){
echo "İndirme limitinizi aştınız. Bu dosyayı indiremezsiniz !";
exit();
}
//Tüm kontrollerden başarıyla geçildiyse indirme adedimizi bir arttırıyoruz ki kişinin dosyayı kaç kere indirdiğini sistem anlasın.
$_SESSION[‘INDIRME’] ++;
?>
[/php]

Kişilere Yetki Vermek

Kişilerin dosya indirmesini sağlamak için onlara yetki vermelisiniz. Bunun için aşağıdaki kodu session_start(); kodundan sonraki bir yere eklemelisiniz. Bu sistemimizde Yetki sessionunun içindeki değerin ne olduğuna bakmadık, sadece boş ise hata verdik (ki session açılmadıysa o her zaman boş olacaktır.)

[php]
<?php
$_SESSION[‘YETKI’] = "kullanıcının yetkisi bulunmaktadır";
?>
[/php]

Derli Toplu Kod

Evet, her şey bu kadardı, şimdi size kodların tümünü derli toplu bir vaziyette vereyim ki rahat bir şekilde kullanabilesiniz. Bu kodumuzda tüm kullanıcılara dosya indirebilmesi için gereken yetkiyi de otomatik olarak vereceğiz (yani üstteki kod aşağıdaki kodların arasında bulunmaktadır.).

[php]</pre>
<?php
//Sessionları başlatıyoruz. Eğer bu kod olmaz ise hiçbir session değerimiz çalışmaz.
session_start();
//Kullanıcıya yetkisini veriyoruz.
$_SESSION[‘YETKI’] = "kullanıcının yetkisi bulunmaktadır";
//İndirme limitimizi buradan belirliyoruz. İstediğiniz basamakta sayı girebilirsiniz. Yalnız değer sadece tamsayı olmalı !
$LIMIT = 5;
//Eğer kişinin dosyayı indirme yetkisini belirleyen session değeri boş ise hata yazdırıp exit(); fonksiyonu ile işlemi durduruyoruz.
if (empty($_SESSION[‘YETKI’])){
echo "Bu dosyayı indirmek için gerekli yetkiye sahip değilsiniz !";
exit();
}
//Eğer indirme adedimizi sayan session değeri boş ise onu 0’a eşitliyoruz ki sistemimiz işlemleri yaparken sorun yaşamasın.
if (empty($_SESSION[‘INDIRME’])){
$_SESSION[‘INDIRME’] = 0;
}
//İndirme adedimizi sayan session değeri belirlediğimiz limitten büyük veya o limiti aşıyor ise hata yazdırıp işlemi durduruyoruz.
if ($_SESSION[‘INDIRME’] >= $LIMIT){
echo "İndirme limitinizi aştınız. Bu dosyayı indiremezsiniz !";
exit();
}
//Tüm kontrollerden başarıyla geçildiyse indirme adedimizi bir arttırıyoruz ki kişinin dosyayı kaç kere indirdiğini sistem anlasın.
$_SESSION[‘INDIRME’] ++;
?>
<?php
$DLPath = "Downloads/Secure/";
$DLFile = "File.zip";
header(‘Content-type: application/zip’);
header(‘Content-Disposition: attachment; filename="’. $DLFile .’"’);
readfile($DLPath. $DLFile );
?>
<pre>
[/php]

Dosyalar Nasıl Gözükür?

İndirme Sayfası - Büyütmek için tıklayın

Önemli Duyuru

Bazı sunucular benim deyimimle titiz olduklarından hata verebilirler. Bunun olmaması için sayfanın en üstüne (< ?php tagından hemen sonra) ob_start(); kodunu sayfanın en altına (?> tagının hemen üstüne) ob_end_flush(); komutunu ekleyin. Ve ek olarak indirme işleminiz olan sayfada önceden hiçbir yazı vb. şeyin olmaması gerekmekte html kodları da dahil. Yani kaynak kodlarınız tamamiyle boş olmalıdır.

Ve Yazının Sonu

Evet, tüm kodlar bu kadardı. Kodların tamamını test etmedim ama çalışacağına eminim. Yine de bir sorun çıkarsa bana alttan yorum yolu ile veya iletişim bölümünden bildirirseniz hemen düzeltirim.

Umarım yararlı olmuştur. Eğer beğendiyseniz bu yazıyı üstteki butonlardan paylaşabilir veya bize Destek Ver‘ebilirsiniz. Her türlü soru ve sorununuzda yorum atmayı unutmayın, sağlıcakla kalın …