Sayfalar

26 Ocak 2008 Cumartesi

Php Cache Sistemi

Öncelikle Sorumuz Şu Olmalıdır


Neden Cache Sistemi Kullanmalıyım ?


Siteniz hit aldığında sunucuda sorunlar çıkardığı zaman


Mysql overload olduğunda


Cpu kullanımı arttığında


Host Bulamaz Hale Geldiğinizde


Yada kendi sunucunuz olsa dahi sitenize girmeye


korktuğunuzda ( ya ben siteye girince sunucu çökerse dediğinizde)


İşte cache sistemindeki amacımız kaynak tüketimini en aza indirmek


Yukarda saydıgım durumların en feci olanı mysql sunucu özellikleri düşük ise


Siteyi 4 5 defa yenileyince mysql tavan yapıyor O hiç sevmediğin olay Olur


Databaseye Bağlanamadım


Konu fazla uzadı sanırım r10 da açılan konuda hakimi arkadaşımız


Burada basit bir cache betiği yayınlamış


yazmış olduğu betikte ufak bi güvenlik açığı vardı biraz düzenledim betiği


Betik 2 Kısımdan Oluşuyor birinci kısım sayfanın en üstüne yazılacak kısmı


2 kısım ise sayfanın en altına yazılacak kısmı


Aşşağıdaki kısmı sayfanın en üstüne yazılacak kısmı


<?
$filename = "%%-".md5($_SERVER['REQUEST_URI'])."-%%.html";
$cachefile = "cache/".$filename;
$cachetime = 3 * 60 * 60; // Cache Süresi
if (file_exists($cachefile))
{
if(time() - $cachetime < filemtime($cachefile))
{
readfile($cachefile);
exit;
}
else
{
unlink($cachefile);
}
}
ob_start();
?>


Aşşağıdaki kısmı isi sayfanın en altına yazılacak kısmı



<?
$fp = fopen($cachefile, 'w+');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();
?>




Temel Olarak Betiğin Ne işlev gördüğünü açıklıyayım basit Bir şekilde


Herhangi bir ziyaretçi sitemizi ziyaret etti örnek verecek olursak


http://www.sitemiz.com/mysql-php-ajax.html


cache betiği url yi alıyor ve isimini md5 liyor ve $cachefile diye bir değişkene atıyor


ve daha sonra sayfanın en altına eklediğimiz


$fp = fopen($cachefile, 'w+');

fwrite($fp, ob_get_contents());

fclose($fp);

ob_end_flush();


Php Kodları $cachefile dosyasını yazılabilir şekilde açıyor ve sayfa içeriğini


yazıyor Tekrar Bir ziyaretçi


http://www.sitemiz.com/mysql-php-ajax.html


yazıp sitemizi ziyaret ettiğinde üstü yazdığımız php kodları devreye giriyor


if(time() - $cachetime < filemtime($cachefile))

{

readfile($cachefile);

exit;

}


Şimdiki zaman ile dosya zamanı arasındaki fark cache süresinden kücük ise readfile


ile daha önce kaydetmiş olduğumuz html dosyasını ziyaretciye gösteriyor


Bizim burdaki Kazancımız sitemize giren 2. ziyaretci izin mysql sorguları php sorguları yerine


daha önce kaydetmiş olduğumuz html dosyasını gösterdik ve kaynaktan tasarruf ettik :)


Umarım Anlatabilmişimdir unutmadan cache süresini $cachetime değişerek kendinize göre ayarlayabilirsiniz


$cachetime = 3 * 60 * 60; // Cache Süresi 3 saate


25 Ocak 2008 Cuma

E-Mail adresimizi Nasıl Olurda Spam botlardan Koruruz

Genelde Sitelerimizde İletişim formu Yerine s4l1h@salih.com Şeklinde İletişim İçin Mail adresimizi Veririz Günümüzdü Epeyce Spam Yapan Var ve bunun için maillist Oluşturuyorlar Peki biz Mail adresimizi Nasıl OLurda Spamcılardan Mail adresimizi gizleriz ?
Birinci Secenek İletişim Formu Oluştururuz Ve bu Yolla Mail adresimizi Siteye Yazmamamıza Gerek kalmaz
İkinci Yol ise Çoğu Yerde görmüşsünüzdür s4l1h[at]salih[dot]com Şeklinde Yazılır mail adresleri Ama Spam teknolojisi O kadar Çok geliştiki Artık Önüne Geçilmez Bir hal Aldı s4l1h[at]salih[dot]com Şekli Yazılsa bile Spam botları bunu algılaya biliyorlar tahmin edersinizki

s4l1h@salih.com Sayfa İçinde Bulup Listeye Ekleyen Bot
Programlayanın Ayarlamasıyla Çok Kolaylıkla s4l1h[at]salih[dot]com Adresini s4l1h@salih.com Çevirebilir Uzun Lafın Kısası ÇOk Fazla Yazı Yazdım bu defa
Nette Gezerken Buradaki Yazı gözüme Çarptı Gayet Mantıklı Ve Zekice Bir yöntem

Hemen Yazıya Geçelim Spam botlardan Mail Adresimizi Korumak İçin Fonksiyon :

<script language="javascript">

function emailantispam(email1, email2, email3, email4){

emailE = email1 + email2 + '@' + email3 + email4;

document.write('<a href="mailto:' + emailE + '">' + emailE + '</a>')

};

</script>



Az Çok javascript bilen Hemen Anlamıştır Fonksiyonun Ne işlev gördüğünü

Sayfamıza Mail Adresimizi
<a href="mailto:s4l1h@salih.com">s4l1h@salih.com</a>
Şu Şekilde Yazmaktansa Şu Şekilde Yazarız

<script language="javascript">
emailantispam('s4l','1h','sal','ih.com');
</script>



Sitemizi Ziyaret Edenler s4l1h@salih.com Olarak görürler Fakat spam botları Avuçlarını yalarlar
Tabi Unutulmaması Gerekilen bişey Var Herkes

<script language="javascript">
emailantispam('s4l','1h','sal','ih.com');
</script>



Yazarsa Spam botları Zamanla bunuda Algılayacaktır
Sonuç Olarak Spam Botlarını Yazanlarda İnsan evladı Mail Adreslerini Gizlemeye Çalışanda İnsan evladı

22 Ocak 2008 Salı

Sagopa Kajmer Kolera Monotonluk Maratonu

Genelde Arabesk Dinlerim Ama Sagopa Bir Başka Son Klip Parçası Aşşağıda
İyi Seyirler











21 Ocak 2008 Pazartesi

Youtube Kapatıldı Ama Neden ?

Youtube Geçen defa Atatürke hakaretten Kapatılmıştı Bu defa ise
Marmara Üniversitesi Yolsuzluk Adlı videodan Dolayı

www.youtube.com'da "Marmara Üniversitesi Yolsuzluk" adlı yayınla ilgili olarak; Kadıköy 2. Asliye Hukuk Mahkemesi'nin 08.01.2008 tarihli 2008/1 nolu kararında : "Söz konusu yayınlar hükmi şahsiyete sahip Marmara Üniversitesi Rektörlüğünü ve temsil ettiği Güzide Eğitim Kurumunun itibarını zedeleyici, manevi şahsiyetini zarara uğratmaya yönelik haksız, hukuka aykırı ve TCK'da tanımı yapılan, iftira ve hakaret suçlarının oluşturur niteliktedir. Bilirkişi raporuna göre, yayının devam ettiği anlaşılmaktadır." denilmektedir.

Bu gerekçeyle Üniversitemizin talebi yerinde görülmüş olup, mahkemece T.M.K.'nun 24 ve 25. maddeleri gereğince "Erişimin Durdurulması" şeklinde karar verilmiştir.

Bu karar doğrultusunda hukuki girişimler ve cezai takibat sürdürülmektedir.

Üniversitemizin değerli mensuplarına ve öğrencilerimize duyurulur.

MARMARA ÜNİVERSİTESİ REKTÖRLÜĞÜ


Kaynak

19 Ocak 2008 Cumartesi

Youtube.com Kapandı Video Sitesi Sahiplerine Çözüm Burada

function baglanti($url) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERAGENT, "MSIE 6.0; Windows NT 5.0");

curl_setopt($ch, CURLOPT_URL, "$url" );

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, true);

$sonuc = curl_exec($ch);

curl_close($ch);

return $sonuc;



}

function getir($vid)

{

$tal= baglanti("http://www.youtube.com/v/".$vid);

preg_match("#default.jpg&t=(.*)Transfer-Encoding#siU",$tal,$tid);

$tid =trim($tid[1]);

$val = baglanti("http://www.youtube.com/get_video?video_id=$vid&t=$tid");

preg_match("#http://(.*)youtube.com#siU",$val,$k);

$vs=trim($k[1]);

$vs=str_replace("cache.googlevideo.com/get_video?video_id=".$vid."&origin=","",$vs);

$kral=gethostbyname($vs."youtube.com");

$linkim="http://".$kral."/get_video?video_id=".$vid;


return $linkim;

}


Yukardaki Fonksiyonun Çalışabilmesi İçin SUnucunuzda Curl yüklü OLması gerekmektedir


 


http://www.jeroenwijering.com/?item=JW_FLV_Player


Adresinden FLV Playeri İndiriyoruz


-----KOD BAŞLANGIÇ------


<?


function baglanti($url) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERAGENT, "MSIE 6.0; Windows NT 5.0");

curl_setopt($ch, CURLOPT_URL, "$url" );

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, true);

$sonuc = curl_exec($ch);

curl_close($ch);

return $sonuc;



}

function getir($vid)

{

$tal= baglanti("http://www.youtube.com/v/".$vid);

preg_match("#default.jpg&t=(.*)Transfer-Encoding#siU",$tal,$tid);

$tid =trim($tid[1]);

$val = baglanti("http://www.youtube.com/get_video?video_id=$vid&t=$tid");

preg_match("#http://(.*)youtube.com#siU",$val,$k);

$vs=trim($k[1]);

$vs=str_replace("cache.googlevideo.com/get_video?video_id=".$vid."&origin=","",$vs);

$kral=gethostbyname($vs."youtube.com");

$linkim="http://".$kral."/get_video?video_id=".$vid;


return $linkim;

}


 


$id="1R5N9oNruUI"; // Youtube.com Video İd


?>


<script type="text/javascript" src="swfobject.js"></script>


<div id="biyotube">


<script type="text/javascript">

var s1 = new SWFObject("flvplayer.swf","single","425","350","7" , "#000000"); //Swf playerın olduğu yer

s1.addParam("allowfullscreen","true");

s1.addVariable("file", '<? echo getir($id); ?>');

s1.addVariable("type", 'flv');

s1.addVariable("image","http://66.249.93.176/vi/<? echo getir($id); ?>/default.jpg"); // Burası caps olan yer

s1.addVariable("overstretch","false");

s1.addVariable("autostart","true");

s1.addVariable("lightcolor", "0xff3300");

s1.addVariable("backcolor", "0xffd7d7");

s1.addVariable("frontcolor", "0x732b30");

s1.addVariable('showdigits','true');

s1.addVariable("showicons","true");

s1.addVariable("logo","biyotube.png"); // burası resim logosunun olduğu yer


s1.addVariable("link","http://www.biyotube.com"); // Site Adresi

s1.addVariable("linkfromdisplay","false");

s1.addVariable("linktarget","_blank");

s1.write("biyotube");

</script>

</div>


-----KOD Bitiş------


Yukardaki Kodları Kendinize Göre Düzenlersiniz


 


Temel Olarak Ne Yaptık


img.youtube.com Yerine 66.249.93.176 Kullandık


Flv Adresinin İp adresinide gethostbyname Fonksiyonu İle Aldık


 


Çalışan Örnek İçin Buraya Bakın


http://www.biyotube.com/1R5N9oNruUI-youtube-Gulsen-Kara-Bocukler-Klip-Reklamsiz-temiz-.html


 

9 Ocak 2008 Çarşamba

PHP 4.4.8 Yayında

Bu gün php.net Baktığımda php 4.4.8 yayınlanmış biliyorsunuz php4 desteği kesilmişti sadece 8 temmuza kadar güvenlik açıkları ve güncelleştirmeler için destek vereceklerini söylemiştiler aşaüıda fixledikleri güvenlik açıkları



Improved fix for MOPB-02-2007.
Fixed an integer overflow inside chunk_split(). Identified by Gerhard Wagner.
Fixed integer overlow in str[c]spn().
Fixed regression in glob when open_basedir is on introduced by #41655 fix.
Fixed money_format() not to accept multiple %i or %n tokens.
Addded "max_input_nesting_level" php.ini option to limit nesting level of input variables. Fix for MOPB-03-2007.
Fixed INFILE LOCAL option handling with MySQL - now not allowed when open_basedir or safe_mode is active.
Fixed session.save_path and error_log values to be checked against open_basedir and safe_mode (CVE-2007-3378).
Fixed bug #43010 (Fixed regression in imagearc with two equivelent angles).
Fixed bug #41765 (Recode crashes/does not work on amd64).
Fixed bug #41630 (segfault when an invalid color index is present in the image data).
Fixed bug #41628 (PHP settings leak between Virtual Hosts in Apache 1.3).
Fixed bug #38798 (OpenSSL init corrected in php5 but not in php4).

7 Ocak 2008 Pazartesi

Ne güzel Bir Yer

Bu Sabah Wikipedia'da Bakarken günün resmi Çok hoşuma gitti Sizinde Görmenizi İstedim


Link Kontrol betiği Kaynak Kodları

Daha Önce Burada yazmış Olduğum yazıda'ki link kontrol betiğini yayınlamamıştım şimdi Burda Paylaşayım dedim


--------Kod Başlangıç---------------
<?

//Kodlama s4l1h

error_reporting(0);


?>

<title>Link Tara</title>

<style>

body{margin:0px;font-style:normal;font-size:10px;color:#FFFFFF;font-family:Verdana,Arial;background-color:#3a3a3a;scrollbar-face-color: #303030;scrollbar-highlight-color: #5d5d5d;scrollbar-shadow-color: #121212;scrollbar-3dlight-color: #3a3a3a;scrollbar-arrow-color: #9d9d9d;scrollbar-track-color: #3a3a3a;scrollbar-darkshadow-color: #3a3a3a;}

input,

.kbrtm,select{background:#303030;color:#FFFFFF;font-family:Verdana,Arial;font-size:10px;vertical-align:middle; height:18; border-left:1px solid #5d5d5d; border-right:1px solid #121212; border-bottom:1px solid #121212; border-top:1px solid #5d5d5d;}

button{background-color: #666666; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}

body,td,th { font-family: verdana; color: #d9d9d9; font-size: 11px;}body { background-color: #000000;}

textarea{background:#303030;color:#FFFFFF;font-family:Verdana,Arial;font-size:10px;vertical-align:middle; border-left:1px solid #121212; border-right:1px solid #5d5d5d; border-bottom:1px solid #5d5d5d; border-top:1px solid #121212;}

a:link {

color: #999999;

text-decoration: none;

font-weight: bold;

background-color:#000000;

}

a:visited {

color: #999999;

text-decoration: none;

font-weight: bold;

background-color:#000000;

}

</style><br>

<center>

<h2>Link Tara</h2><br>

<form method="POST" action=""

<input type="text" name="sitem" value="http://www.sizinsiteniz.com" size="70" onFocus="if(this.value=='http://www.sizinsiteniz.com')this.value=''" onBlur="if(this.value=='')this.value='http://www.sizinsiteniz.com'"><br>

<textarea name="siteler" rows="10" cols="70" >Taranacak Siteleri Buraya Alt Alta Yazın</textarea><br>

<input name="tara" type="submit" value="Tara">

</form>

<?

function dosya_indir($liz0){





$ch = curl_init();

$timeout = 0;

curl_setopt ($ch, CURLOPT_URL, $liz0);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$veri = curl_exec($ch);

curl_close($ch);



return $veri;


}


if($_POST[tara])

{

$adres=$_POST[sitem];

$siteler=$_POST[siteler];


if($adres=="" OR $siteler=="") { echo 'Boş Yerleri Doldurun'; exit(); }

$al=explode("\n",$siteler);

$say=count($al);

echo "Sizin Siteniz : <b>".htmlspecialchars($adres)."</b><br>";


for($i=0 ; $i<$say ; $i++)

{

sleep(1);

$salih=trim(htmlspecialchars($al[$i]));

$kaynak=dosya_indir($salih);

if(eregi($adres,$kaynak)) {

echo "<font color='green'>".$salih."</font> Sitesinde Linkiniz Bulunuyor<br>";

}

else

{

echo "<font color='red'>".$salih."</font> Sitesinde Linkiniz Bulunmuyor<br>";

}

unset($kaynak);


}

}


?>

</center>


--------Kod Bitiş---------------

4 Ocak 2008 Cuma

Redtube yasaklanmış

Redtube izlemek İçin

Redtube

3 Ocak 2008 Perşembe

İlahi Eşliğinde Windows xp Kurulumu

Format Atmasını Bilmeyenler Mutlaka İzlesinler




Elemanın Epey Videosu Var izleyin Kopmayın
http://www.youtube.com/profile_videos?user=NihadNL&p=r