• 20-02-2010, 15:39:13
    #1
    Üyeliği durduruldu
    Merhaba,

    Daha önce upload scripti yazdığımı söylemiştim.2 konuda yardıma ihtiyacım var.

    1) Yüklediğim dosyaların 4 gün içinde otomatik olarak silinmesini istiyorum, nasıl, hangi kodlarla yapabilirim ?

    2) Yüklenen dosyaları, kişilerin başkalarına göndermelerini sağlıyorum, fakat değişkeni eklediğimde, benim asıl istediğim kod değil, yeni bir random kod oluşuyor.Şöyle diyim; yüklenen dosyalara otomatik olarak bir ID veriliyor.Kişi arkadaşına göndermek istediğinde, dosyaya verilen ID'yi değil, yeni bir random ID oluşturup gönderiyor.Input ile bunu çözebileceğimi düşünüyorumda, yardımlarınızı iletirseniz sevinirim.Hangi kodları kullanabilirim vs.

    Yardımlarınızı bekliyorum, şimdiden teşekkürler...

    Not: MySQL kullanmıyorum.

    MSN'den destek verebilecek arkadaşlar: eolcer@hotmail.com.tr
  • 20-02-2010, 16:18:31
    #2
    Not: MySQL kullanmıyorum.

    veritabanı yokmu tam açıklarmısın ? yani kayıtları nerde tutuyorsun ve ona göre silmede yardımcı olabilirim...
  • 20-02-2010, 17:23:25
    #3
    1. sorununu için klasör temizleme fonksiyonuna filemtime ekleyerek halledebiliriz. bu verdiğim kodu cpanelde cronjobs'a eklersen -mesela her saat başı çalışacak şekilde- her saat başı belirttiğim klasördeki ve o klasörün içindeki klasörlerdeki tüm dosyaların oluşturulma tarihlerini filemtime ile kontrol eder ve 4 günden (değiştirebilirsin bu kısmı) fazla olanları siler.

    <?php
    
    $klasor = $_SERVER['DOCUMENT_ROOT'].'/upload-dizini/'; // klasörün sonunda kesinlikle / olsun
    
    function klasor_temizle($klasor) {
        $ac = opendir($klasor);
        for(;false !== ($dosya = readdir($ac));)
            if($dosya != '.' and $dosya != '..') {
                $dosya2 = $klasor.$dosya;
                if(is_dir($dosya2)) {
                    klasor_temizle($dosya2);
                    rmdir($dosya2);
                }
                else {
    				$sure = 60*60*24*4; // 4 gün
    				if(time() - $sure > filemtime($dosya2)) {
    					unlink($dosya2);
    				}
                }
        }
        closedir($ac);
    }
    
    klasor_temizle($klasor); 
    
    ?>
    2. sorunu anlamadım açıkcası
  • 20-02-2010, 22:34:42
    #4
    Üyeliği durduruldu
    Invictus adlı üyeden alıntı: mesajı görüntüle
    1. sorununu için klasör temizleme fonksiyonuna filemtime ekleyerek halledebiliriz. bu verdiğim kodu cpanelde cronjobs'a eklersen -mesela her saat başı çalışacak şekilde- her saat başı belirttiğim klasördeki ve o klasörün içindeki klasörlerdeki tüm dosyaların oluşturulma tarihlerini filemtime ile kontrol eder ve 4 günden (değiştirebilirsin bu kısmı) fazla olanları siler.

    <?php
    
    $klasor = $_SERVER['DOCUMENT_ROOT'].'/upload-dizini/'; // klasörün sonunda kesinlikle / olsun
    
    function klasor_temizle($klasor) {
        $ac = opendir($klasor);
        for(;false !== ($dosya = readdir($ac));)
            if($dosya != '.' and $dosya != '..') {
                $dosya2 = $klasor.$dosya;
                if(is_dir($dosya2)) {
                    klasor_temizle($dosya2);
                    rmdir($dosya2);
                }
                else {
    				$sure = 60*60*24*4; // 4 gün
    				if(time() - $sure > filemtime($dosya2)) {
    					unlink($dosya2);
    				}
                }
        }
        closedir($ac);
    }
    
    klasor_temizle($klasor); 
    
    ?>
    2. sorunu anlamadım açıkcası
    Verdigin kodu denedim.Temizleme islemini yapiyor fakat klasorun icini tumuyle siliyor denedigim kadariyla.Ben mi yanlis denedim acaba 5 dakikadan eski dosyalari silmesini istemistim ben,bu toptan siliyor.Ben yanlis denedigimi dusunuyorum.Cron jobs olarak sunu tanimladim deneme amacli:

    Minute Hour Day Month Weekday Command Actions
    */5 * * * * php -q /home/xxxxx/public_html/fs/autoclean.php

    Deneme amacli php kodlarinida sole tanimladim $sure = 00*05*00*0;

    Yanlisliklar varsa burda soyleyin.

    Tesekkurler...
  • 20-02-2010, 22:40:25
    #5
    xMadTurk adlı üyeden alıntı: mesajı görüntüle
    Deneme amacli php kodlarinida sole tanimladim $sure = 00*05*00*0;
    0 ile çarparsan sonuç 0 olur

    5dk olarak deniceksen onu şöyle yap

    $sure = 60*5;
  • 20-02-2010, 23:00:01
    #6
    Üyeliği durduruldu
    Oncelikle tesekkur ediyorum.Verdigin kod sorunsuz bir sekilde calisti +rep

    2. sorum soyle, kisiler upload yaptiginda yuklenen dosyaya random bir isim veriyor.Dosya yuklendikten sonra, indirme icin verilen linklerin altinda "arkadasina onerme" formu var.O form ile kisi dosyayi yolladigi zaman, gonderilen mesajin icinde indirmek icin gerekli olan linkte var.O linkin onune random olarak olusturulan ismin gelmesi icin gerekli degiskeni yaziyorum.Ama yuklenen dosyanin adi yerine, yeni bir random olusturup gonderiyor.

    Benim istegim su, yuklenen dosyaya verilen random isim, arkadasina gonderme formu ilede gonderilsin.Yani yeni bir random id olusturup gondermesin.

    Anlasilmadiysa daha basit anlatmaya calisirim
  • 20-02-2010, 23:06:05
    #7
    xMadTurk adlı üyeden alıntı: mesajı görüntüle
    O linkin onune random olarak olusturulan ismin gelmesi icin gerekli degiskeni yaziyorum
    burası ile alakalı kodu kopyalarsan daha rahat yardımcı olabilirim.
  • 20-02-2010, 23:30:54
    #8
    Üyeliği durduruldu
    Yuklenen dosyalara su kod ile rasgele isim veriyor, numerik bir isim:

    $newname.= substr(uniqid(rand()), 0,7);

    Su degisken ile de, gonderilen maillere yaratilan ismin verilmesini saglamaya calisiyorum $newfilename

    upload.php de yuklenen dosyalarin linki ve arkadasina gonderme formu var.O formun bilgilerini send.php den cekiyor. Send.php de veriyorum $newfilename degiskenini yani gonderilen mailde gozukmesi icin, upload.php den bi input satiri ile cozebilecegimi dusunuyorum ama yinede biraz yardim ihtiyacim var bu konuda

    Not: $newfilename = $newname.$ext;

    Tesekkurler...
  • 20-02-2010, 23:46:31
    #9
    xMadTurk adlı üyeden alıntı: mesajı görüntüle
    upload.php de yuklenen dosyalarin linki ve arkadasina gonderme formu var.O formun bilgilerini send.php den cekiyor. Send.php de veriyorum $newfilename degiskenini yani gonderilen mailde gozukmesi icin, upload.php den bi input satiri ile cozebilecegimi dusunuyorum ama yinede biraz yardim ihtiyacim var bu konuda
    burası bana o kadar kadar karışık geldi ki hiç bir şey anladım. var bende bugün bir sorun ya hadi hayırlısı

    kodları mümkünse burdan değilse pm ile paylaşır mısın? o da olmazsa daha açık bi şekilde anlatırsan yardımcı olmaya çalışırım