Bu gün pazar ve ben herzamanki gibi bilgisayar başında vakit geçiriyorum.Yarına ingilizce hocamızın verdigi ödevi yapmam gerekiyor(5 chapter var) ama sanırım yapmayacam (nedeni niyazi :@ )
Onun yerine Hasan nın tasarımını bir yerden (ç)almış oldugu bir oyun sitesini kodluyorum ve bu gün bitirmeyi planlıyorum.
Dışarıda hava açık fakat sert bir rüzgar var, kıbrısın dogal hali sanırım. Akşama bir planım yok sanırım bilgisayar başında durup siteleri gezip,hayal edip duracam….
Php’ye yeni başlayanların en büyük hatalarından birisinin bunları(GET ve POST) hiç bir filtreden geçirmeyerek sayfaya include/query/echo v.b şeyler yapmasıdır.
Önceden ben sadece mysql_real_escape_string den geçirip sayfaya yüklüyordum ve güvenli oldugunu düşündüm ama yanılmışdım
Geçen günlerde bir heykır sayfama java-script yedirtmeyi başardı ve bende hemen bu açığa karşın bir önlem almak için bir araştırma yapdım.
Aşağıdaki fonksiyon bu tür güvenlik açıklarını kapatmaya yeterlidir.
[php]function temizledegel($string)
{
if(get_magic_quotes_gpc())
{
$string = stripslashes($string);
}
elseif(!get_magic_quotes_gpc())
{
$string = addslashes($string);
}
$string = @mysql_real_escape_string($string);
return $string;
}[/php]
Kullanımı:[php] temizledegel($_GET[name]);[/php] gibi…
Biraz merak birazda kendimi GD konusunda geliştirmek amacıylan yapdıgım “resim boyutunu orantılı küçültmek” şeysi…
[php] ####### GET İLE GELEN DOSYALAR ########
$dosya=$_GET[resim];
$istenilen_genislik=$_GET[genislik];
$istenilen_yukseklik=$_GET[yukseklik];
$istenilen_yukseklik2=$istenilen_yukseklik;
#######DOSYAMIZIN UZANTISI BULALIM##########
$resim_bol=explode(’.',$dosya);
$uzanti_al= count($resim_bol) -1;
$uzanti=”$resim_bol[$uzanti_al]”;
#######SAYFA YAPISINI BELİREDİK#########
if ($uzanti == ‘jpg’) {
$uzanti_gd = imagecreatefromjpeg($dosya);
header(”Content-type: image/jpeg”);
} else if ($uzanti == ‘gif’) {
$uzanti_gd = imagecreatefromgif($dosya);
header(”Content-type: image/gif”);
} else if ($uzanti == ‘png’) {
$uzanti_gd = imagecreatefrompng($dosya);
header(”Content-type: image/png”);
}
#########RESMİN BOYUTLARINI ALIYORUZ#########
$dosya_buyuklugu=getimagesize($dosya);
$gercek_genislik=$dosya_buyuklugu[0];
$gercek_yukseklik=$dosya_buyuklugu[1];
########ORANTILI YAPMAK İÇİN MATEMATİKSEL FOKSİYONLAR (yüzdelik hesabı ile) ############
if ($gercek_genislik >=$istenilen_genislik) {
$ufaltma_orani = ($istenilen_genislik*100) / $gercek_genislik;
$istenilen_yukseklik=($gercek_yukseklik*$ufaltma_orani) / 100;
}
if ($istenilen_yukseklik >=$istenilen_yukseklik2) {
$ufaltma_orani2 = ($istenilen_yukseklik2*100) / $istenilen_yukseklik;
$istenilen_yukseklik=$istenile_yukseklik2;
$istenilen_genislik=($gercek_genislik*$ufaltma_orani2) / 100;
}
######### GD DEVREDE #########
$yeni = imagecreatetruecolor($istenilen_genislik, $istenilen_yukseklik);
imagecopyresampled($yeni, $uzanti_gd, 0, 0, 0, 0, $istenilen_genislik, $istenilen_yukseklik, $gercek_genislik, $gercek_yukseklik);
##############################################
if ($uzanti == ‘jpg’) {
$uzanti_gd = imagejpeg($yeni);
} else if ($uzanti == ‘gif’) {
$uzanti_gd = imagegif($yeni);
} else if ($uzanti == ‘png’) {
$uzanti_gd = imagepng($yeni); }
imagedestroy($yeni);
##############################################
?>[/php]
Kullanım Şekli : ufalt.php?resim=resmininiz.jpg&genislik=100&yukseklik=100
Bir phpci olarak bu tarz kodlamalara sürekli ihtiyaç duydugumdan buraya koymayı düşündüm.Bundan sonra bu tarz scriptleri burda yayınlayacağım,hem başkaları faydalansın hemde aradıgımda bulayım(kendi bilgisayarım çöplük gibi
)….
[php]function trtoen($kelime) {
$kelime= str_replace (array(” “,”ş”,”İ”,”Ğ”,”ğ”,”Ü”,”ü”,”ı”,”Ö”,”ö”,”Ç”,”ç”),array(”+”,”s”,”I”,”G”,”g”,”U”,”u”,”i”,”O”,”o”,”C”,”c”),$kelime);
return $kelime;
}[/php]