Eyl
04PHP yazarken bunlara dikkat!
Etiketlenen : ders, dikkat, php, tüyo
PHP diline hakim olmaya karar verdiğimde öncelikle bu işin püf noktalarını da öğrenmem gerektiğine inanıp biraz araştırma yaptım. Aşağıda sizin de yapabileceğiniz hatalar ve doğru yöntemleri göreceksiniz.
Gelen verileri aynen kullanıyorsanız hack için davetiye gönderiyorsunuzdur.
Mesela aşağıdaki şekilde kullanım hatalıdır:
<?
echo(“<p>Arama sonuçları: ” .
$_GET['arama'] . “.</p>”);
?>
htmlspecialchars kullanmak iyidir ancak yeterli değildir:
<?
echo(“<p>Arama sonuçları: ” .
htmlspecialchars($_GET['arama']) . “.</p>”);
?>
“arama” diye bir query’nin olup olmadığına bakar, <?php ile başlar ve bağlama operatörü olarak “.” kullanmak yerine ENT_QUOTES argümanı kullanılarak aşağıdaki şekilde bir kullanım en ideal olandır :
<?php
if (isset($_GET['query']))
{
echo ‘<p>Arama sonuçları: ‘, htmlspecialchars($_GET['arama'], ENT_QUOTES), ‘.</p>’;
}
?>
Bir başka sorun ise for döngüleri içerisinde count komuturla array boyutunu almak. Her dönüşte tekrar tekrar aynı değeri aldırmak istemeyiz değil mi?
$deneme = array(“bir”,”iki”,”üç”);
for (i==0;i<count($deneme);$i++){
// …
}
Bu döngü boyunca değişmediği belli olan $deneme arrayının boyutu tekrar tekrar alınmakta. Bu nedenle önce bir değere eşitlenmesini önerilir.
$deneme = array(“bir”,”iki”,”üç”);
$max = count($deneme);
for (i==0;i<$max;$i++){
// …
}
Ayrıca tarih formatınızı bir kez tanımlayarak tek bir yerden tarih biçimlendirmesi yapabilirsiniz.
define (“TARIH_BICIMI” , “j F Y”);
şeklinde tanımlama yaparsanız kod içerisinde print(date(TARIH_BICIMI)); olarak kullanabilirsiniz.
Tarihler konusunda işinie yarayacak bir bilgi de aşağıdaki kullanım şeklidir.
<?php
$gelecekHafta = time() + (7 * 24 * 60 * 60);
// 7 gün; 24 saat; 60 dakida; 60 saniye
echo ‘Şimdi: ‘. date(‘d-m-Y’) .”\n”;
echo ‘Gelecek Hafta: ‘. date(‘d-m-Y’, $gelecekHafta) .”\n”;
// yada strtotime() işlevi ile kullanımı
echo ‘Gelecek Hafta: ‘. date(‘d-m-Y’, strtotime(‘+1 week’)) .”\n”;
?>
Ayrıca echo kullanmak print kullanmaktan daha hızlıymış. Tıpki else if kullanmanın switch kullanmaktan hızlı olacağı gibi. Tabi else if sayısı çok fazla değilse.
Kullanılan hafıza çok değerlidir. Bu yüzden işimiz biten arrayları unset($arrayadi) ile kaldırmalı veya NULL değerine eşitlemeliyiz.
++$i her zaman $i++ dan daha hızlı çalışır. Ama ikisi farklı şeylerdir. ++$i kullanmak $i değerini kullanmadan önce artırır.
Zaman zaman bu türdeki dikkat edilmesi gerekenleri blogumda yazmaya devam edeceğim. PHP nin çok fazla ayrıntısı olduğunu, bazı kodların 99 çeşit kullanım şekli olduğunu öğrendim. :)






