Kategori: PHP

Php dizi fonksiyonlarından bahsetmiştim ve fırsat buldukça yeni fonksiyonları tanıtacağımı söylemiştim. Hazır bir işte sürekli kullanmışken bloguma da bot düşeyim dedim, in_array() !
Bir değer var ve bu değerin bir dizi değişkende olup olmadığını merak ediyorsunuz, önceki yazılarda değindiğim gibi foreachle uzun uzadıya işinizi halledebilirsiniz ama ne gerek var ki?

//bir dizi değişken yaratalım
$dizi = array();
$dizi[] = 'armut';
$dizi[] = 'elma';
$dizi[] = 'hiyar';
$dizi[] = 'domates';
//dizi değişkeni oluşturduk ve içeriğine sebze, meyve bir şeyler atadık şimdi merak edelim bakalım bu değişken içerisinde muz var mı?
if(in_array('muz',$dizi))
{
     echo 'dizide muz var';
}
else
{
     echo 'dizide muz yok';
}

Çıktı: PHP in_array Fonksiyonu devamı »

PHP array_map Fonksiyonu

Şurada fırsat buldukça PHP’de dizi değişkenlerle ilgili fonksiyonları yazacağımı söylemiştim. Implode’dan sonra en az onun kadar faydalı bir fonksiyondan bahsedelim.

Array_map
Ne yapar array_map() ? Çok basit bir şekilde bir dizi değişkenin tüm değerlerini herhangi bir fonksiyondan geçirmenizi sağlar. Biliyorum biliyorum karışık oldu. Hemen geçelim örneklerle anlatıma.

Şimdi diyelim elinizde $veriler diye bir dizi değişken var. İçerisinde ise 100 tane değer atalı. Siz bu 100 değerin başındaki sonundaki boşlukları trim fonksiyonuyla almak istiyorsunuz. İlk akla gelen nedir?

$yeniveriler = array();
foreach($veriler as $v)
{
   $yeniveriler[] = trim($v);
}

Foreachle döngüye sokup yeni bir değişkene atamak değil m? Tüm bunları array_map ile yapabilir. Hem zamandan hem de performanstan tasarruf etmiş olursunuz.

$veriler = array_map('trim',$veriler);

İkinci yazdığım ilkiyle aynı işlevi yaptı.
PHP array_map Fonksiyonu devamı »

PHP Implode Fonksiyonu

Basit bir soru:
Bir dizi değişkeni en kısa yoldan nasıl stringe dönüştürebiliriz? Eğer implode fonksiyonundan bîhaberseniz diziyi foreach döngüsüne sokmanız gerekecek. Fakat bırakın implode sizin için diziyi normal bir şekle soksun. Yani örneklerle anlatmamanız gerekirse:

$ilyas[] = 'içerik 1';
$ilyas[] = 'loremci';
$ilyas[] = 'değerci';
$ilyas[] = 'fakir ama ümitli';

PHP Implode Fonksiyonu devamı »

Smarty malumunuz en çok kullanılan template motoru. Performanssız olduğu yönünde tartışmalar var ama en çok tanınanı olduğundan template motoru istendiğinde akla ilk olarak Smarty gelir ve genelde de Smarty kullanılır. Sonuçta template motorları “baaak benim scriptimde template motoru var” denmek için kullanılmaz. Belirli amaçları vardır ve bu amaçlara hizmet eden en önemli özellik ise yaygın olması. Neyse amacım template motoru felsefesi yapmak değil. Bana kalırsa spagetti kod en temizi ama piyasaya iş yapıyorsanız “müşteri her zaman haklıdır” sözünü akıldan çıkarmamak gerek.

Neyse efendim gelelim Smarty’de fonksiyon kullanımına. Smarty ile php fonksiyonları kullanılacağı gibi kendimiz de fonksiyon yazıp kullanabiliriz. Fonksiyon kullanım şekli ise şöyle en basitinden trim fonksiyonunu ele alalım.
Smarty Fonksiyon Kullanımı devamı »

Script yazarken iki şeye çok önem veririm performans ve güvenlik! Geri kalan şeyler teferruattır ve her zaman yapılır. Güvenlikte aklınızdan çıkarmayacağınız ilk ve önemli şey:
1. Ziyaretçilerinize Kesinlikle Güvenmeyin
İyi niyetli tek amacı siteden faydalanmak olan ziyaretçileriniz olabileceği gibi sistemi karıştırmayı, scriptin sağlıklı çalışmasını engelllemeye çalışacak art niyetli ziyaretçileriniz de olacaktır. Ziyaretçi profilinizi kendiniz belirleyemeyeceğinize göre her zaman en kötüsüyle karşılaşacakmış gibi inşa edin yapınızı. Deyim yerindeyse puşt ziyaretçi gibi işin puştluğunu düşünerek hareket. İşinizi şansa bırakmayın ipler sizin elinizde olsun.

2. Javascript/Jquery Gösterişten İbaret Olsun
Form kontrollerinde Javascript kullanmayın demek biraz acımasızca olur, kullanın ama tek kontrol mekanizmanız Javascript olmasın. Mutlaka formun gittiği adreste de php ile kontrollerinizi yapın. Php tarafında yapmadığınız kontrol ziyaretçilere açık çektir. Unutmayın herkes javascript kullanmayabiliyor veya her tarayıcı sizin kullandığınız kodu desteklemek zorunda değil. Javascript sadece efekt olarak kalmalı ve bir diğer nokta yapılarınız js olmadan da çalışabilmeli.

3. Formlardan Aldığınız Verileri Direkt DBye İşlemeyin
Hayır hayır, mysql_real_escape_string ile escape edin demeyeceğim. En son bir müşterimin güvenlik açığından bahsedeyim size. Şimdi sitede 4 çeşit üyelik var ve bunlar dbde editor,admin,musteri,cevirmen adlarıyla tutuluyor. Şimdi üye kayıt sayfasında ise tahmin edebileceğiniz üzere admin seçeneği yoktur. 3 seçenekli bir yapı vardı
Script Yazımında Güvenlik Önerileri devamı »

İnternet-Tr