• 23-05-2010, 19:31:40
    #1
    Üyeliği durduruldu
    Arkadaşlar kırk yılın başı php'ye ufak bir işim düştü. Şimdi ben şöyle iki dosya yaptım.

    İndex.php

    <form method="POST" action="indir.php">
        <input type="text" name="indir" style="font-size: 20pt" size="24">
        <input type="submit" value="Ara" name="B1" style="font-size: 20pt">
    </form>
    İndir.php

    <?php
    
    $indirilecek = $_POST["indir"];
    
    echo "$indirilecek şeyin adı işte";
    
    ?>
    Şimdi burası güzel bir şekilde çalışıyor. Metin kutusuna yazıp gönder butonuna bastığımda indirme sayfasında ismi ekrana yazılıyor orda sorun yokda.

    Benim sorum şu. Tarayıcıdan direk siteadı.com/indir.php şeklinde girince

    Alıntı
    Notice: Undefined index: film in C:\wamp\www\indir\indir.php on line 3
    şeyin adı işte
    diye hata çıkıyor. Benim isteğim bu hata yerine yine sayfam açılsın ve orda Lütfen aranacak kelime girin gibisinden bir uyarı koyabileyim.

    Unset, İsset, Empty gibi fonksiyonları biraz araştırdım. Uğraştım fakat tam bir netice alamadım.

    Şimdiden teşekkürler.
  • 23-05-2010, 19:39:57
    #2
    if($_POST){//POSTTAN GELİYORSA
    $indirilecek = $_POST['indir'];
    echo $indirilecek;
    }
    Kontrolleri ve güvenliği eklemeyide unutma
  • 23-05-2010, 19:40:21
    #3
    <?php
    if (!empty($_POST["indir"])) {
    $indirilecek = $_POST["indir"];
    echo "$indirilecek şeyin adı işte";
    }
    ?>
  • 23-05-2010, 19:45:43
    #4
    Üyeliği durduruldu
    aLKaDraZ arkadaşın dediği oldu sanırım. Şuan bir sorun görünmüyor. Teşekkür ettim

    Fakat kontrol ve güvenlik hakkında pek birşey bilmiyorum
  • 23-05-2010, 20:21:17
    #5
     
    if($_POST){//POSTTAN GELİYORSA
    $indirilecek = mysql_escape_string(htmlspecialchars($_POST['indir']));// güvenlik amaçlı ufak bir kod
     if(strlen(trim($indirilecek)) == 0){ //strlen ile krakterleri saydırdık. trim ile boşlukları temizledik. escape dahi yapsa form boş olucaktır.
        echo 'Formu Boş gönderdiniz.Lütfen Alanları eksiksiz doldurunuz';
     }else{
        echo 'başarılı';
        echo $indirilecek;
     }
    }
    Böyle böyle bir çok deneme yaparak kendini geliştirebilirsin. Güvenlik detaylı bir konu ben kısaca değindim. Daha detaylı araştırma yapmanı tavsiye ederim hoşcakal...
  • 23-05-2010, 20:25:53
    #6
    Üyeliği durduruldu
    ana sayfaya yönlendirmek içinde @header("locatin:http://siteadresin"); şeklined bir uygulama yapabilirsin aLKaDraZ verdiği koda

    if($_POST){//POSTTAN GELİYORSA
    $indirilecek = mysql_escape_string(htmlspecialchars($_POST['indir']));// güvenlik amaçlı ufak bir kod
     if(strlen(trim($indirilecek)) == 0){ //strlen ile krakterleri saydırdık. trim ile boşlukları temizledik. escape dahi yapsa form boş olucaktır.
        echo 'Formu Boş gönderdiniz.Lütfen Alanları eksiksiz doldurunuz';
     }else{
        echo 'başarılı';
        echo $indirilecek;
     }
    }else{
    @header("location:http://siteadresin");
    }
    adrese direk tıklandığında sitene yönlenir...

    indirme işlemi içinde

    @header('Content-Description: File Transfer');
    @header('Content-Type: application/download');
    @header("Content-Disposition: attachment; filename=\"".basename($indirilecek)."\");
    @readfile($indirilecek) OR die();
    şeklinde uygulama yapabilirsin kolay gelsin...