Merhaba,
kod üzerindeki senaryo örnek teşkil etsin diye hazırlanmıştırdın sql sorgusu düzenleyin veya kaldırın çalışması için. kodu açıklarsam,
-$indirmesayfal---ari değişkeni indirilebilecek sayfaları array olarak depolamakta. örneğin sitenize download.php ekleyip orada kullanırsanız, tüm indirmeleri oradan yapabilirsiniz. arraya atamanın gereği var mıydı peki? güvenlik için tüm get parametrelerini ön tanımlı yapmak her zaman iyidir. tabi sistemi yormayacak şekilde.
--
-if(isset($_GET["indir"])){ ile sayfada get indir adında bir get isteğinin olup olmadığını kontrol ettiriyoruz eğer varsa kod çalışacak. örneğin site.com/download?indir= --
---if(is_numeric($_GET['indir'])){ ile parametre değerinin sayısal olup olmadığını kontrol ediyoruz. eğer değer sayısalsa kod çalışmaya devam edecek değilse duracak ve dosya bulunamadı diyecek veya kod düzenleyip betiği durdursunuz
--
if(in_array($dosya,$indirmesayfalari)){ sayfanın başında indirilebilecek tüm sayfaları bir arraya atamıştık, mevcut sayfanın idsi bu sayfalar içerisinde yer alıyorsa indirmeye başlayacak, yer almıyorsa dosya bulunamadı yazacak.--
edit: dosya indirmeyi anlatmayı unutmuşum
ilk header ile dosyamızın uzantılarını eşleştiriyoruz, bu uzantı belirli olmayan genel geçer bir dosya içinde kullanılabilir.
ikincisinde indirilecek dosyamızı belirtiyoruz ve dosyanız iniyor
PHP:
$indirmesayfalari = array(15, 20, 27, 30);
if(isset($_GET["indir"])){
if(is_numeric($_GET['indir'])){
$dosya = $_GET['indir'];
if(in_array($dosya,$indirmesayfalari)){
echo "Dosya İndiriliyor";
$query = $db->prepare("UPDATE indirilenler SET indirme = indirme + '1' WHERE dosya_id=:dosya_id");
$update = $query->execute(array("dosya_id" => $dosya));
if($update){
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="test2.php"');
header('Content-Transfer-Encoding: binary');
}
}else{
echo "dosya bulunamadı";
}
}else{
//exit();
echo "sayfa bulunamadı";
}
}
-$indirmesayfal---ari değişkeni indirilebilecek sayfaları array olarak depolamakta. örneğin sitenize download.php ekleyip orada kullanırsanız, tüm indirmeleri oradan yapabilirsiniz. arraya atamanın gereği var mıydı peki? güvenlik için tüm get parametrelerini ön tanımlı yapmak her zaman iyidir. tabi sistemi yormayacak şekilde.
--
-if(isset($_GET["indir"])){ ile sayfada get indir adında bir get isteğinin olup olmadığını kontrol ettiriyoruz eğer varsa kod çalışacak. örneğin site.com/download?indir= --
---if(is_numeric($_GET['indir'])){ ile parametre değerinin sayısal olup olmadığını kontrol ediyoruz. eğer değer sayısalsa kod çalışmaya devam edecek değilse duracak ve dosya bulunamadı diyecek veya kod düzenleyip betiği durdursunuz
--
if(in_array($dosya,$indirmesayfalari)){ sayfanın başında indirilebilecek tüm sayfaları bir arraya atamıştık, mevcut sayfanın idsi bu sayfalar içerisinde yer alıyorsa indirmeye başlayacak, yer almıyorsa dosya bulunamadı yazacak.--
edit: dosya indirmeyi anlatmayı unutmuşum
ilk header ile dosyamızın uzantılarını eşleştiriyoruz, bu uzantı belirli olmayan genel geçer bir dosya içinde kullanılabilir.
ikincisinde indirilecek dosyamızı belirtiyoruz ve dosyanız iniyor
