SlideShare a Scribd company logo
1 of 37
1. Temel İşlemler ( Toplama, Çıkarma, Çarpma, Bölme )2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )3. Üzeri İfadeler (x², .. )4. Değer Yuvarlama5. Maksimum ve Minumum Değerlerin Tespiti6. Karekök Değerinin Tespiti5. Tüm Aritmetik Komutların Listesi1. Temel İşlemlerPHP her dil gibi metametiksel işlemler içinde belirli fonksiyonlar geliştirmiştir. Bu fonksiyonlar, pek çok dile nispeten çok daha gelişmiş ve pratiktir. Şimdi Bu fonksiyonların en temeli olan toplama, çıkarma, çarpma ve bölme işlemlerini inceliycez.(* aşağıda geçen kimi fonksiyonları sonraki makalelerde detaylarıyla inceleyeceğiz, İntiba olması için örneklerle anlatılmıştır )(* // Dan sonrası açıklamadır, Kodlama ile ilgisi yoktur..(* Aşağıdaki temel örneklendirmelerde echo yerine Print deyimi kullanılmıştır. )Toplama işlemi ;<?print (5+2); // Sonuç Yedi Çıkacaktır.print (7-3); // Sonuç 4 Çıkacaktır.print (4*8); // Sonuç 32 Çıkacaktır.print (8/2); // Sonuç 4 Çıkacaktır.print (20%3); // Burada bölme işleminin kalanını bize verir. 20'yi üçe bölmemiz halinde kalan rakam 2 Olur.?>Bu matematiksel işlemleri değişkenler vasıtası ilede gerçekleştirebiliriz.<?$sayi1=10;$sayi2=5;$sayi3=3;$sayi4=1;print quot;
$sayi1 + $sayi3quot;
;print quot;
$sayi3 - $sayi4quot;
;print quot;
sayi1 / $sayi4quot;
;print quot;
$sayi2 % $sayi3quot;
;?>Görüldüğü gibi Temel aritmetiksel işlemler gayet kolay ve sade bir mantığa sahiptir.2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )PHP, Temel fonksiyonları olduğu gibi gelişmiş pek çok fonksiyonuda desteklemektedir. Bu fonksiyonlardan biride sınamadır. Sınama operatörleri vasıtası ile çoğu işlemi PHP'ye otomize bi şekilde yaptırabiliriz. Karşılaştırma operatörlerinin listesi aşağıdaki gibidir. = = Aşittir != Eşit Değildir = = = Aynıdır > Büyüktür < Küçüktür <= Küçük veya Eşittir >= Büyük veya Eşittir && Ve || Veya Yukarıdaki tabloda teme sınama operatörleri listelenmiştir. Şimdi bu operatörleri birer örnek ile açıklıyalım.'(* If Değeri ile ilgili detaylı açıklama bir sonraki makalededir )<?$sayi1=10;$sayi2=15;$sayi3=20;$sayi4=25;if ($sayi1 == ($sayi3/2)) {echo quot;
Doğrudurquot;
;};if ($sayi1 != ($sayi4/$sayi2)) { echo quot;
Eşit Değildirquot;
;};if ($sayi4 > 20) { echo quot;
25, 20'den Büyüktür..quot;
;};if ($sayi1 < $sayi3) { echo quot;
Evet, 10 20'den Küçüktürquot;
;};if ($sayi1 == 10 && $sayi2 < $sayi3) { echo quot;
Evet, 10, 10'a Eşittir ve 15 20'den Küçüktürquot;
;};if ($sayi1 > $sayi4 || $sayi4 > $sayi1) { echo quot;
10 25'den Büyüktür veya 25 10'dan Büyüktürquot;
;};?> Yukarıdaki örnekleri çalıştırmamız halinde quot;
{quot;
 ler içerisindeki Echo değeri karşımıza sıralanacaktır..3. Üzeri İfadeler (x², .. )Pek çok yerde karşımıza çıkabilecek olan Üzeri değer ifadeleri ile ilgili işlemleride rahatlıkla Php ile yapabiliriz. Örneğin 10 Adet iki rakamını yan yana çarpmak için Ctrl+C - Ctrl+V Fonksiyonunu kullanmamıza gerek yoktur.. <?print pow(2,10);?>Bu örnek bize 1024 Sonucunu gösterir.4. Değer YuvarlamaÇoğu matematiksel işlemde değer yuvarlamalara ihtiyaç duyarız. Kimi zaman .'dan sonra gelen değerler bizi rahatsız edebilir. Bu işlem içinde Php çok rahat ve pratize edilmiş fonksiyonlar sunar. <?print floor(98/5); // Yukarı Doğru Değer Yuvarlama.print ceil(98/5); // Aşağı Doğru Değer Yuvarlama. print round(12/8); // Tam Değer Yuvarlama.?>Yukarıdaki örneklerde 98'i 5'e bölerek önce yukarı doğru yuvarladık. Sonuç 19 Çıktı. Aynı işlemi aşağı doğru yuvarlayınca sonuç 19 çıktı. Bu yorumu php'ye yorumlatmak istiyorsanız Round() fonksiyonunuda kullanabilirsiniz.5. Maksimum ve Minumum Değerlerin TespitiBu işlemde işimize yarıycak fonksiyonlardandır. İçerisinde onlarca değeri tanımlıyan bir dize ile karşılaşırsak bu fonksiyonu kullanmamız gerekir.(* Dize değerleri ile ilgili açıklamalar bir sonraki makalede teferruatlarıyla incelenecektir. )<?$degisken=array(a=>12,b=>13,c=>14,d=>15);print max($degisken);print min($degisken);?>Yukarıdaki örnekte önce dize değerinin en küçük değerini yani 12'yi bulduk, sonra aynı değerin maksimum olan 15'i tespit ettik. 6. Karekök Değerinin TespitiBuda en sık kullanılan ekstrem matematiksel işlemlerdendir. Php bu işlem içinde pratik bi fonksiyon desteği sunar.<?print sqrt(81);?>Yukaraki örnekte 81 değerinin Karekökünü bulduk. Sonuç 9. PHP fonksiyon içerisinde fonksiyon kullanmamızada olanak sağlar. Örneğin ;<?print sqrt(pow(4,9));?>Burada da 4 üzeri 9 olan 6,561'in Karekökünü bulduk. Sonuç 81.5. Tüm Aritmetik Komutların ListesiPHP, pek çok aritmetiksel işlemi fonksiyonlarıyla destekler. Bütün bu işlemler için örnek vermemize gerek yok. Yukarıdaki örneklerde Php'nin bu fonksiyonları nasıl kullandığını gördük. Php'nin desteklediği tüm fonksiyonların bir listesi işimizi görecektir.abc() Mutlak değer acos() Yay kosinüsü asin() Yay sinusu atan() Yay tanjantı atan2() İki değişkenin yay teğeti base_convert() Keyfi esaslar arasında sayıyı çevirir bindec() Ondalığa ikilik ceil() Bir sonraki tamsasıya yuvarlama cos() Kosinüs decbin() ikiliğe ondalık dechex() Ondalığa onaltılık decoct() Sekizliğe ondalık deg2rad() Dereceyi radyana çevir floor() Bir önceki tamsayıya yuvarla getrandmax() En geniş mümkün rastgele değeri hexdec() Onaltılığa ondalık lcg_valuE() Doğrusal congruential jeneratörünün birleştir log() Doğal algoritma log10() 10 tabaına göre algoritma max() En yüksek değer min() En küçük değer mt_rand() İyi rastgele değeri üret mt_srand() İyi restgele sayı jeneratörü tohum ek mt_getrandmax() En geniş mümkün rastgele değeri göster number_format() Gruplaşmış bin ile sayıyı formatla oetdec() Ondalığa sekizlik pi() Pi sayısını pow() Üstel ifade rad2deg() Radyanı dereceye çevir rand() Rastgele değeri üret round() Yuvarla sin() Sinus sqrt() Karekök srand() Rastgele sayı jeneratörü tohumu ek tan() Teğet<br />1. Php Nedir ?Bilindiği üzere Web sistemleri zaman içerisinde popülaritesini arttırmış, hemen her sistemde az veya çok kullanılır olmuştur. Bu dillere örnek verirsek, ASP, PHP, CGI, JSP gibi komplike yeteneklere sahip pek çok dil zaman içerisinde geliştirilmiş ve yaygınlaşmıştır. Standart dil olarak sunulan HTML oldukça pratik ve hızlı olmasına karşın quot;
Kütquot;
 bir dildi. Yani tarayıcınızın yorumlıycağı şeylerle kısıtlıydı. Sunucu tarafı size yalnızca tarayıcınızın algılıyabileceği nitelikteki bilgileri göndererek grafik ortamlı birer broşür gibi çalışırlar. Haliyle HTML Zaman içerisinde artan ihtiyaçları karşılamaktan acizdi. Bu ihtiyacın hasıl olması interaktif dillerin geliştirilmesine vesile olmuştur. İnteraktif diller Birer Program gibi çalışarak sunucu tarafında işlem yapar, size yapılan işlemin sonucunu gönderir. Bu özelliği ile Web üzerinden E-Posta işlemleri, Üyelik sistemleri, Veritabanı bağlantıları ile bilgisayarınızda kullandığınız programların yaptığı işi neredeyse birebir yapabilirler. Bu diller birer Programdırlar ve size ulaşmadan önce sunucu tarafında çalıştırılarak işlem pörtföyünüzü genişletir.Php en popüler interaktif dillerden biridir. Hatta çoğu istatistiki veriye göre en çok kullanılan ve performans bakımından diğer altirnatiflerine göre çok daha hızlıdır. Açıklıycak olursak ; Php Sunucu tarafında çalıştırılarak talep edilen bilgiyi yorumlar. Örnekliycek olursak Bir broşür gibi diyil adeta birer müşteri temsilcisi gibi davranır.Php Temelde Unix türevli bir sistemdir, Ancak pekiala Windows sistemlerdede kullanılabilecek şekilde uyarlanmıştır. Çoğu Windows tabanlı sistemler Php'yi çalıştırabildiği gibi Php'nin gelişen ve güncellenen modüllerininde desteğini sağlayabilir. Ancak söylediğimiz gibi Php Unix Tabanlı yahut Unix'den türetilen sistemler baz alınarak geliştirilmiştir. Algoritmik yapısı C'ye çokca benzer. Öyleki çoğu modül ve değeri C ile aynıdır.Php'ye bir programlama dili gibi yaklaşmak çok daha sağlıklı olacaktır. Kodlanan bir Php programcığı/sayfası derlenmeye ihtiyaç duyar. HTML gibi derlenmeye ihtiyaç duymadan direkt olarak çalıştırılamaz. Web Sunucusu Php'nin kodlarını algılamalı, program gereklerini yerine getirerek istemciye, yani Web Sayfasını ziyaret eden kullanıcıya programlandığı şekilde gönderilmelidir. Unix sistemler bu iş için biçilmiş birer kaftandır. Windows'dada bu derleme işini yapmak ziyadesiyle kolay. Unix ve türevi sistemler için geliştirilen Apache, Windows dada çalışabilme özelliğine sahiptir.2. Php'yi DerlemekBir önceki konuda da bashettiğimiz üzere Php derlenmeye ihtiyaç duyan bir programdır. Bu derleme işlemini Unix'de Apache rahatlıkla yapabilir. Biz bu bölümde bu işlemi Windows'da nasıl yapacağımızı inceliycez.Bu iş için ihtiyaç duyacağımız yazılım Apache'nin Windows için geliştirilen Yazılımı olan PhpTriad dır.. Bu yazılımı Google.com'dan aratarak rahatlıkla bulabilirsiniz. Yazılımın kurulmasından sonra yapacağınız işlemler sırasıyla ;Start > Programs > PhpTriad > Apache Console > Start Apache Betiklerini takip çalıştırmak olacaktır.Bu işlem sonrasında karşımıza küçük bir dos penceresi gelecek. Bu pencereyi kapatmamalıyız. Penceremiz bu:Şimdi Kodlarımızı c:pachetdocsAltına koymalıyız.Yani kodlarımızı bu dizindeki herhangi bir metin belgesinin içine kaydedip herhangibirbelge.php uzantısı olarak kaydetmeliyiz ardından tarayıcmızın browser'ına c:/localhost/herhangibirbelge.php adıyla giriş yapıyoruz ve karşımıza kodlarımızın karşılığı çıkıyor..Bu işlemler sonunda bilgisayarımız Bir Web Sunucusu haline gelmiştir ve kodladığımız php programlarını bize derleyerek sunmaya hazır durumdadır.3. Php Yazım Kuralları ve DenetimleriPhp programlanırken belirli kurallara uymak gerekir. Bu kurallara uymamız halinde Sunucumuz taleplerimizi doğru olarak algılar ve bize yanıt verebilir. Bu denetimler C ye ve Perl'e çokca benzer. Her Php Sayfası baştan sona Php Kodları ile dolu olmayabilirde. Örneğin bir .Php programının içerisined baştan sona HTML kodlarıda yazabiliriz. Php kodlarını belirtmek için bir Tag açarız, kodların bittiğini belirtmek için bu tag'ı kapatarak aynı program içerisinde sınırsız dag açabiliriz. Bu denetim ve kurallarının en temeli olan birkaç noktayı 3 hususu sıralayalım ;1. Bir php Programının içerisinde Php komut ve kodlamalarını quot;
<?quot;
 ile başlar quot;
?>quot;
 ile biter.2. Php'de bir komutun bittiğini ekseriyetle quot;
;quot;
 ( Noktalı Virgül ) ile belirtiriz. ( Özel Fonksiyonlarda quot;
:quot;
 ilede bitebilir )3. Php programı içerisinde yanlış bir kodlama var ise üretilen hatayı sunucu size rapor eder. ( Bazı sunucular bunu potansiyel tehlike olarak algıladıkları için bu hataları rapor etmiyebilir )4. En Temel Php Kodları ve KomutlarıBir programlama diline girişte bilinmesi gereken en temel ve en sık kullanılan komut ve kodlamalar çok iyi idrak edilmeli ve ne yaptığı kesinlikle doğru algılanmalı. Şimdi en temel kabul edilecek komutları sıralayalım ve inceleyelim.1. Standart Yazdırma Değeri quot;
echoquot;
2. Temel Tanım değeri quot;
$quot;
3. Bir alt satıra geçiş değeri quot;
quot;
4. Dosya ihraç değeri quot;
includequot;
1. Standart Yazma Değeri quot;
echoquot;
Bu değer vasıtası ile herhangi bir metin değerini tarayıcıda ***üntületebiliriz. Kullanımı oldukça basittir. Örneklerle gösterelim ;<?echo quot;
Sınır Tanımayan Metinquot;
;?>Görüldüğü üzere burada quot;
<?quot;
 değeri ile php kodlamaya başlıycağımızı belirttik. echo ile komutumuzu belirttik ve Tırnaklar kullanarak içerisindeki değeri ekrana yazdırmasını talep ederek komutumuzun bittiğini belirtmek için tırnağı kapatarak quot;
;quot;
 ( Noktalı Virgül ) koyduk. Son işlem olarakta quot;
?>quot;
 değeri ile kodlamanın bittiğini belirttik.Şimdi bu komutu bir notePat vasıtası ile .php uzantısı ile yazalım ve quot;
C:pachetdocslk.phpquot;
 adıyla kaydedelim.Şimdi İnternet Explorer'ımızı açarak quot;
127.0.0.1/ilk.phpquot;
 yazıp enter'lıyalım. Karşımıza quot;
Sınır Tanımayan Kodlarquot;
 yazısı gelecektir.Burada herzaman çift tırnak kullanmayabiliriz. Aynı işlemi tek tırnak ilede yapmak pekiala mümkün.<?echo 'Sınır Tanımayan Metin';?>Görüldüğü gibi aynı işlemi tek tırnak ile yaptık. Sonuç aynıdır. Buradaki fark quot;
 işareti ile belirtilen metin yorumlanır. Bu metinlerin arasına değişken değerleri yerleştirebiliriz. Örneğin ;<?$rakamla=quot;
1 2 3quot;
;$yaziyla=quot;
bir iki ucquot;
;echo quot;
Sayalım $rakamla Bitti. Simdi yaziyla $yaziyla Buda bitti.quot;
;?>Yukarıdaki komutları ilk.php dosyasının içerisine yazalım ve yine tarayıcımızdan görüntüleyelim. Karşımıza quot;
Sayalım 1 2 3 Bitti. Simdi yazıyla bir iki uc Buda bitti.quot;
 değeri gelecektir. Çift tırnak kullanarak hem metin hemde değişken değerlerini bir arada kullanabiliyoruz. Aynı şeyi birde tek tırnak ile deneyelim.<?$rakamla=quot;
1 2 3quot;
;$yaziyla=quot;
bir iki ucquot;
;echo 'Sayalım $rakamla Bitti. Simdi yazıyla $yaziyla Buda bitti.';?>Şimdi deneyelim alacağımız yanıtı. quot;
Sayalım $deneme Bitti. Simdi yazıyla $yaziyla Buda bitti.quot;
 Gördüğümüz gibi Tek tırnak kullanırsak yazdıracağımız değeri sunucu tarafı denetlemeden bize gönderir. Çift tırnak ise metin değerlerini sınar ve içlerinde ayrıca bir değer olup olmadığını kontrol ederek çıktıyı gönderir2. Temel Tanım DeğeriYukarıdaki örnekte kullandığımız değişken tanımı değeri quot;
$quot;
 bize bir değerin sonraki komut satırlarına taşınabilmesini sağlar. Böylelikle biz bir tanım oluşturarak bu tanımı sayfa içerisinde defalarca kullanabiliriz. Sayfa içerisinde defalarca kullanılan bu değeri yalnızca $ ile tanımlanan değişken değerini değiştirerek bütün sayfadaki değerleri güncellememize olanak sağlar.Bu değerin kullanımı ile ilgilide kimi kurallara uymamız gerekir. Örneğin, biz bu değeri tırnaklar olmaksızın atayamayız. Değerleri quot;
 çift tırnak veya ' tek tırnak ile atamalıyız ve tanımın sonuna quot;
;quot;
 noktalı virgülü kesinlikle koymalıyız.3. Bir Alt Satıra Geçiş Değeri quot;
quot;
Buda en temel kodlama tamamlayıcı değerlerinden biridir. Bu değer vasıtası ile rapor edilecek veri bittince bir alt satıra geçerek diğer verileri çıktı halinde göndermemize olanak sağlar. Örneğin ; .<?echo quot;
1- Macera Devam Ediyorquot;
;echo quot;
2- Olacak Bu iş Olacak..quot;
;?>Bu şekilde kullanarak kodlarımızı çalıştıralım. Karşımıza İlk Sırada quot;
1- Macera Devam Ediyorquot;
 ikinci sırada ise quot;
2- Olacak Bu iş Olacakquot;
 yazıyor.. Şimdi quot;
quot;
 değerlerini kaldırarak deneyelim..<?echo quot;
1- Macera Devam Ediyorquot;
;echo quot;
2- Olacak Bu iş Olacak..quot;
;?>Görüldüğü gibi karşımızda quot;
1- Macera Devam Ediyor2-Olacak Bu iş Olacak..quot;
 yazıyor.3. Bir Alt Satıra Geçiş Değeri quot;
quot;
Php kodlarınızın içerisine hazırda bulunan bir diğer php dosyasını veya herhangi bir txt dosyasını ekliyebiliriz. Bunu bize include deyimi sağlar. Bu deyimi aşağıdaki gibi kullanabiliriz. Örneğin içerisinde Php kodlar bulunan ust.php diye bir dosyamız, birde html kodlarının bulunduğu ust.txt diye bir dosyamız olsun.<?include quot;
ust.phpquot;
;include quot;
ust.txtquot;
;?>Burada aynı dizin içerisinde bulunan ust.php ve ust.txt dosyasını ihraç ediyoruz.5. SonuçAslında sonuç çok açık. Php Programlama dili her nekadar zor denilsede görüldüğü üzere gayet pratik ve işlevseldir. Genel itibari ile mantık doğru şekilde benimsenirse Php ile komplike sayfalar yapabilmek için toplam 5 - 8 Saat arası yoğun bile sayılamıycak bi tempoyla öğrenilebilir. Yapmanız gereken kendinize özgü çalışma notları hazırlayarak sık aralıklarla pratikler yapmak olacaktır. Günde yarım saat - kırk dakika arası bir alıştırma ile bir veya iki haftada çalışma notlarına bile ihtiyacınızın kalmayacağını göreceksiniz.NOT:anlatacagım php dersleri toplam 5 başlık altında anlatacm..üstede söylediğim gibi bunlar ders notlarıdır.Aritmetiksel İşlemler1. Temel İşlemler ( Toplama, Çıkarma, Çarpma, Bölme )2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )3. Üzeri İfadeler (x², .. )4. Değer Yuvarlama5. Maksimum ve Minumum Değerlerin Tespiti6. Karekök Değerinin Tespiti5. Tüm Aritmetik Komutların Listesi1. Temel İşlemlerPHP her dil gibi ****metiksel işlemler içinde belirli fonksiyonlar geliştirmiştir. Bu fonksiyonlar, pek çok dile nispeten çok daha gelişmiş ve pratiktir. Şimdi Bu fonksiyonların en temeli olan toplama, çıkarma, çarpma ve bölme işlemlerini inceliycez.(* aşağıda geçen kimi fonksiyonları sonraki makalelerde detaylarıyla inceleyeceğiz, İntiba olması için örneklerle anlatılmıştır )(* // Dan sonrası açıklamadır, Kodlama ile ilgisi yoktur..(* Aşağıdaki temel örneklendirmelerde echo yerine Print deyimi kullanılmıştır. )Toplama işlemi ;<?print (5+2); // Sonuç Yedi Çıkacaktır.print (7-3); // Sonuç 4 Çıkacaktır.print (4*Cool; // Sonuç 32 Çıkacaktır.print (8/2); // Sonuç 4 Çıkacaktır.print (20%3); // Burada bölme işleminin kalanını bize verir. 20'yi üçe bölmemiz halinde kalan rakam 2 Olur.?>Bu matematiksel işlemleri değişkenler vasıtası ilede gerçekleştirebiliriz.<?$sayi1=10;$sayi2=5;$sayi3=3;$sayi4=1;print quot;
$sayi1 + $sayi3quot;
;print quot;
$sayi3 - $sayi4quot;
;print quot;
sayi1 / $sayi4quot;
;print quot;
$sayi2 % $sayi3quot;
;?>Görüldüğü gibi Temel aritmetiksel işlemler gayet kolay ve sade bir mantığa sahiptir.2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )PHP, Temel fonksiyonları olduğu gibi gelişmiş pek çok fonksiyonuda desteklemektedir. Bu fonksiyonlardan biride sınamadır. Sınama operatörleri vasıtası ile çoğu işlemi PHP'ye otomize bi şekilde yaptırabiliriz. Karşılaştırma operatörlerinin listesi aşağıdaki gibidir.= = Aşittir!= Eşit Değildir= = = Aynıdır> Büyüktür< Küçüktür<= Küçük veya Eşittir>= Büyük veya Eşittir&& Ve|| VeyaYukarıdaki tabloda teme sınama operatörleri listelenmiştir. Şimdi bu operatörleri birer örnek ile açıklıyalım.'(* If Değeri ile ilgili detaylı açıklama bir sonraki makalededir )<?$sayi1=10;$sayi2=15;$sayi3=20;$sayi4=25;if ($sayi1 == ($sayi3/2)) {echo quot;
Doğrudurquot;
;};if ($sayi1 != ($sayi4/$sayi2)) { echo quot;
Eşit Değildirquot;
;};if ($sayi4 > 20) { echo quot;
25, 20'den Büyüktür..quot;
;};if ($sayi1 < $sayi3) { echo quot;
Evet, 10 20'den Küçüktürquot;
;};if ($sayi1 == 10 && $sayi2 < $sayi3) { echo quot;
Evet, 10, 10'a Eşittir ve 15 20'den Küçüktürquot;
;};if ($sayi1 > $sayi4 || $sayi4 > $sayi1) { echo quot;
10 25'den Büyüktür veya 25 10'dan Büyüktürquot;
;};?>Yukarıdaki örnekleri çalıştırmamız halinde quot;
{quot;
 ler içerisindeki Echo değeri karşımıza sıralanacaktır..3. Üzeri İfadeler (x², .. )Pek çok yerde karşımıza çıkabilecek olan Üzeri değer ifadeleri ile ilgili işlemleride rahatlıkla Php ile yapabiliriz. Örneğin 10 Adet iki rakamını yan yana çarpmak için Ctrl+C - Ctrl+V Fonksiyonunu kullanmamıza gerek yoktur..<?print pow(2,10);?>Bu örnek bize 1024 Sonucunu gösterir.4. Değer YuvarlamaÇoğu matematiksel işlemde değer yuvarlamalara ihtiyaç duyarız. Kimi zaman .'dan sonra gelen değerler bizi rahatsız edebilir. Bu işlem içinde Php çok rahat ve pratize edilmiş fonksiyonlar sunar.<?print floor(98/5); // Yukarı Doğru Değer Yuvarlama.print ceil(98/5); // Aşağı Doğru Değer Yuvarlama.print round(12/Cool; // Tam Değer Yuvarlama.?>Yukarıdaki örneklerde 98'i 5'e bölerek önce yukarı doğru yuvarladık. Sonuç 19 Çıktı. Aynı işlemi aşağı doğru yuvarlayınca sonuç 19 çıktı. Bu yorumu php'ye yorumlatmak istiyorsanız Round() fonksiyonunuda kullanabilirsiniz.5. Maksimum ve Minumum Değerlerin TespitiBu işlemde işimize yarıycak fonksiyonlardandır. İçerisinde onlarca değeri tanımlıyan bir dize ile karşılaşırsak bu fonksiyonu kullanmamız gerekir.(* Dize değerleri ile ilgili açıklamalar bir sonraki makalede teferruatlarıyla incelenecektir. )<?$degisken=array(a=>12,b=>13,c= >14,d=>15);print max($degisken);print min($degisken);?>Yukarıdaki örnekte önce dize değerinin en küçük değerini yani 12'yi bulduk, sonra aynı değerin maksimum olan 15'i tespit ettik.6. Karekök Değerinin TespitiBuda en sık kullanılan ekstrem matematiksel işlemlerdendir. Php bu işlem içinde pratik bi fonksiyon desteği sunar.<?print sqrt(81);?>Yukaraki örnekte 81 değerinin Karekökünü bulduk. Sonuç 9. PHP fonksiyon içerisinde fonksiyon kullanmamızada olanak sağlar. Örneğin ;<?print sqrt(pow(4,9));?>Burada da 4 üzeri 9 olan 6,561'in Karekökünü bulduk. Sonuç 81.5. Tüm Aritmetik Komutların ListesiPHP, pek çok aritmetiksel işlemi fonksiyonlarıyla destekler. Bütün bu işlemler için örnek vermemize gerek yok. Yukarıdaki örneklerde Php'nin bu fonksiyonları nasıl kullandığını gördük. Php'nin desteklediği tüm fonksiyonların bir listesi işimizi görecektir.abc() Mutlak değeracos() Yay kosinüsüasin() Yay sinusuatan() Yay tanjantıatan2() İki değişkenin yay teğetibase_convert() Keyfi esaslar arasında sayıyı çevirirbindec() Ondalığa ikilikceil() Bir sonraki tamsasıya yuvarlamacos() Kosinüsdecbin() ikiliğe ondalıkdechex() Ondalığa onaltılıkdecoct() Sekizliğe ondalıkdeg2rad() Dereceyi radyana çevirfloor() Bir önceki tamsayıya yuvarlagetrandmax() En geniş mümkün rastgele değerihexdec() Onaltılığa ondalıklcg_valuE() Doğrusal congruential jeneratörünün birleştirlog() Doğal algoritmalog10() 10 tabaına göre algoritmamax() En yüksek değermin() En küçük değermt_rand() İyi rastgele değeri üretmt_srand() İyi restgele sayı jeneratörü tohum ekmt_getrandmax() En geniş mümkün rastgele değeri gösternumber_format() Gruplaşmış bin ile sayıyı formatlaoetdec() Ondalığa sekizlikpi() Pi sayısınıpow() Üstel ifaderad2deg() Radyanı dereceye çevirrand() Rastgele değeri üretround() Yuvarlasin() Sinussqrt() Kareköksrand() Rastgele sayı jeneratörü tohumu ektan() TeğetKoşul ve Sınama ( IF, Else IF, Switch )1. IF ( Eğer ) Koşulu.2. Switch ( Çoklu Koşul ve Sınamalar )1. IF ( Eğer ) Koşulu.Her programlama dili koşullar ile çalışmak zorundadır. Sınamalar, program parçalarının vazgeçilmez unsurlarıdır. Php'de bu işi IF deyimi yapar. Şimdi IF deyimini inceliyelim.<?$degera=10;$degerb=quot;
abquot;
;if ( $degera==10 ) { echo '$degera nın Değeri 10 dur.'; } ;if ( $degerb==quot;
abquot;
 ) { echo '$degerb nin değeri ab dir'; } ;?>Yukarıdaki örnekte basit bi sınama yaptık ve $deger a değişkenine verdiğimiz 10 değerini sınadık. Aynı işlemi alfabetik bir değer olan quot;
abquot;
 ilede yaptık. Bize Burada if ( xx ) koşul olarak girilir. eğer $degerb nin değeri quot;
==quot;
 eşit ise quot;
abquot;
 ye diyerek koşulumuzu belirttik, Parantezler içerisinede koşul doğru ise yapılacak işlemi belirttik.Birde koşul yanlış ise bir sınama yapalım.<?$degera=10;$degerb=quot;
abquot;
;if ( $degera>15 ) { echo '$degera nın değeri 15 den büyüktür..'; } else { echo 'Hayır, $degera nın değeri 15 den küçüktür'; };?>Görüldüğü gibi burada koşul belirttik ve sınamayı yaptık. Koşulun doğru çıkmaması halinde quot;
elsequot;
 deyimi ile yapılması gerekenleri belirttik. IF deyimi ile, Birden çok sınama işlemleride yaptırabiliriz. Birkaç sınamayı arka arkaya yaptıralım.<?$degera=10;$degerb=quot;
abquot;
;if ( $degera > 15 ) { echo '$degera nın değeri 15 den büyüktür..'; }elseif ( $degera > 13 ) { echo '$degera nın değeri 13 den büyüktür'; }elseif ( $degera > 10 ) { echo '$degera nın değeri 10 den büyüktür'; }else { echo '$degera nın değeri ne 15 den, ne 13 den, nede 10 dan büyük değildir..';};?>Görüldüğü gibi yukarıda aynı IF deyiminin içerisinde birkaç sınama yaptırdık. Bu sınamalar dahada örneklendirilebilir.. Mantığı gayet açıktır.Birde IF deyiminin içerisinde kullanılan komutlar vardır. Bunlar isset(), empty(), intval(), is_integer() gibi fonksiyonlarla dahada işlevselleştirilmiştir. Şimdi bu iç fonksiyonların yaptığı işleri inceliyelim.isset() = Bu komut bir değişken tanımının içerisinde değer olup olmadığını rapor eder.empty() = Buda isset ile aynı işi görür esasında ancak sınamayı terst'den yapar. isset() de dönen değer true ise, emtpy() de aynı değer false olarak döner.intval()= Bu komutda belirtilen değerin numerik yani sayı karşılığını bize verir.is_integer() = Buda değişkenin tamsayı olup olmadığını sınayarak True yahut False değeri ile bize yanıt verir.Şimdi herbirini birer örnekler açıklıyalım ;<?$degisken=quot;
denemequot;
;if ( isset($degisken) ) { echo '$degisken değişkeninin bi değeri yok..'; } else { echo '$degisken değerinin bir değeri var';};if ( empty($degisken)) { echo '$degisken değerinin bir değeri var..'; } else { echo '$degisken değerinin bir değeri yok'; };?>Görüldüğü gibi $degisken olarak quot;
denemequot;
 değerini atadık. İlk sınamadada isset() ile bu değişkenin var olup olmadığını kontrol ettik. Değişkenin bir değer içerdiğini rapor eden isset sonucu bize rapor etti. İkinci sınamadada aynı işlemi yaptık ancak fonksiyon olarak empty() yi kullandık. Yani ilk sınamada $degisken değerinin içerisi dolumu diye sorguladık, ikinci sinamadada $degisken değerinin içeriği boşmu diye..Şimdide intval() ile sınama yaptıralım.<?$degisken1=10;$degisken2=20;if ( intval($degisken1+ $degisken2)==30 ) { echo '$degisken degerin karşılığı 30 dur';};?>Bu sorgudada intval($degisken1+$degisken2) olarak koşulumuzu belirttik. Burada intval() koşulunu kullanmayabilirdikte, ancak kimi koşullarda intval() betiğine ihtiyaç duyarız..is_integer() ilede bir değerin tam sayı olup olmadığını sınarız.<?$deger1=3;$deger2=2;if ( is_integer($deger1/$deger2)) { echo quot;
Sonuç bir tamsayıdırquot;
;} else { echo quot;
Sonuç bir Tamsayı Değildirquot;
; } ;?>Bu komutlar $deger1 değişkenini $deger2'ye yani 3'ü 2'ye böler. Sonuç 1.5 çıkacağından bu bir tamsayı olmayacaktır ve quot;
Sonuç bir Tamsayı Değildirquot;
 yanıtı dönecektir.2. Switch ( Çoklu Koşul ve Sınamalar )Switch deyimide sıkça kullanılan koşul deyimlerinden biridir. Bu deyim aslında IF deyiminin birazdaha pratize edilmiş halidir. Switch koşulu vasıtası ile çoklu sınamalar yaptırmamız mümkün, Örneğin ;<?$memleket=quot;
TRABZONquot;
;switch ($memleket) {case quot;
Ankaraquot;
;echo quot;
Şehir Ankaraquot;
;break;case quot;
Orduquot;
;echo quot;
Şehir Orduquot;
;break;case quot;
Rizequot;
;echo quot;
Şehir Rizequot;
;break;case quot;
TRABZONquot;
;echo quot;
Şehir Trabzonquot;
;break;echo quot;
Hiçbiri Değil..quot;
;}?>Yukarıdaki örnekte $memleket değişkenini switch deyimi ile sınadık. Burada dikkat edilecek husus koşulları case quot;
degerquot;
 ile belirterek yapılacak işlemi belirtiriz. Sınamanın bir sonraki aşamaya geçmesi için break tag'ını kullanırız.Döngüler ( While, Do-While, Foreach )1. For2. While3. Do .. whileKimi zaman uzun süreçlere ihtiyaç duyarız. Bazen bu süreçleri teker teker girmek fazla zamanımızı alır, bazı durumlarda da algoritmik yapı buna izin vermez. Böyle durumlarda döngüler imdadımıza koşar, yüzlerce satırda yapılacak işlemi tek bir fonksiyonla yapmamıza olanak sağlar. Şimdi bu koşulları inceleyelim.1. FORPhp'de en sık kullanılan döngülerden biridir. Kullanımı oldukça basit ve pratiktir. Mantık <?for ( değer ; koşul ; artış ) { işlem }?> şeklindedir. Hemen bir örnekle açıklıyalım.<?for ($islem=0;$islem<100;$islem+1) { echo quot;
$islem-quot;
; } ;?>Yukarıdaki örnekte 1'den 100'e kadar saydık ve her sayının arasına quot;
-quot;
 tire işareti koyduk. Yukarıda For'dan sonra açtığımız parantez ile $islem değişkeninin değerinin 0 olduğunu belirttik. $islem değeri 100'den küçükse işlemi sürdür diyerek $islem değerinin değerini her dönüşte 1 arttırdık. Böylelikle her dönüşte 1 artan $degisken değeri 100'ü bulunca for döngüsü dönmeyi durduracaktır.2. WhilePhp'de en çok tercih edilen döngüdür. Oldukça pratiktir ve kodlaması çok basittir. Mantık <?while ( koşul ) { yapılacak işlem };?> Şeklinde olacaktır. Bu döngüyü örneklerle açıklıyalım ;Yine Birden yüz'e kadar rakamları yazdıralım..<?$deger=1;while ( $deger == 100 ) {echo quot;
Sayı = $degerquot;
;$deger++;};?>Bu kodları çalıştırmamız halinde tarayıcımız 1'den 100'e kadar bütün rakamları alt alta sıralıycaktır. Buradada while betiği ile koşulumuzu belirttik. $deger değeri 100'e eşitlenene kadar işlem devam edecek, her süreçte { parantezler içerisinde kodladığımız işlemleri yapacak. İşlemlerin içerisine değişken'in değerini her dönüşte 1 arttırdığımız belirten $deger++ ide kodlayarak sürecin adımlarını belirliyoruz.While döngüsünün bir diğer kullanım şeklide aşağıdaki gibidir..<?$deger=1;while ( $deger == 100 ) :echo quot;
Sayı = $degerquot;
;$deger++;endWhile;?>Yapılan işlem her ikisinde de aynıdır. Bu alternatif kullanımda dikkat edilmesi gereken husus, While betiğinin quot;
:quot;
 iki nokta üst üste ile bitmesidir.3. Do .. WhileDo .. While döngüsü aslında While döngüsü ile aynıdır. Aralarındaki fark While ile önce koşulu sınarken, Do .. While ile koşul en son sınanır.. Mantık <?do { yapılacak işlem } while ( koşul );?> şeklindedir. Örneğin ;<?$deger=!;do {echo quot;
Sayı = $degerquot;
;$deger++;} while ( $deger == 100 );?>Buradada yine 1'den 100'e kadar saydık. Görüldüğü gibi aradaki fark işlem sırasıdır.Fonksiyonlar ( GLOBAL, Statik )Fonksiyonlar, programlama dillerinin vazgeçilmez öğelerinden biridir. Çoğu zaman fonksiyon kullanmadan tamamlamaya çalışıcağımız bir algoritma bize fazladan %30 kod yazdırır. Fonksiyonların nitelikleri bir değer biçimini belirliyceğiniz şablona yerleştirerek, türevi işlemlerde aynı şablonu kullanabilmenize olanak sağlar. Aslında fonksiyonlara, program içerisindeki progr*****larda diyebiliriz. Örnek fonksiyonların kullanımlarını aşağıda örneklerle açıklayacağız.Önce fonksiyonların yapılarını inceliyelim. Örnek bir fonksiyon kullanım standardı şu şekildedir ;<?function isim(degisken,degisken2,degisk en3) {fonksiyon içerisinde işletilecek prosedürler ve işlemler};?>Yukarıdaki şablon PHP'nin genel yazım kuralları gibidir. Basit bir IF koşulu kodlar gibi fonksiyonlar oluşturmak mümkündür. Fonksiyonlar ikiye ayrılırlar. Statik ve Dinamik. Statik fonksiyonlar değişmeyen basma kalıp şablon yapısındadır. Dinamik fonksiyonlar ise gerektiği gibi kodlanarak çok farklı işlemlerde kullanılabilir. Her iki fonksiyon tipininde kullanım ve kodlama biçimi aynıdır, birbirlerinden farkı yoktur. Aradaki fark fonksiyonun yapıcağı işlemlerin yetenekleridir. Şimdi örnek bir dinamik fonksiyon kodlayalım.<?function ilk() { print quot;
Fonksiyoner Oldum..quot;
; };print ilk;?>Yukarıdaki fonksiyon değeri statik bi fonksiyondur ve yaptığı iş çok basittir. Bu fonksiyon değeri yalnızca quot;
Fonksiyoner Oldum..quot;
 text'ini ekrana yazdırır. Tanımladığımız fonksiyonuda quot;
print ilk;quot;
 yazarak çalıştırabiliriz. Oldukça basit bir örnekti bu.. Şimdi bu örneği biraz niteliklendirelim.Örneğin bir fonksiyon değeriyle şablon oluşturalım ve giriceğimiz değerleri bu şablon çalıştırsın.<?function ismim($isim){ echo quot;
Benim adım $isim..quot;
; };print ismim(quot;
Salihquot;
);?>Yukarıdaki kodları çalıştırmamız halinde ekrana quot;
Benim adım Sedat..quot;
 yazacaktır. Burada kendimize bir şablon oluşturduk... Fonksiyonumuz belirttiğimiz isimi bir cümle içerisinde kullandı.. Biz fonksiyon değerine quot;
Sedatquot;
 bilgisini girdik.. Fonksiyonda bu bilgiyi aldı ve şablonu içerisine yerleştirdi ve Ekrana quot;
Benim adım Sedat..quot;
 yazdırdı. Biz fonksiyonlara birden fazla değerde girebiliriz.. Bu değer girişlerinde herhangi bir kısıtlama yoktur, Yeterki kodlayalım.. Şimdi buna benzer bir fonksiyon daha hazırlıyalım..<?function tumadim($ismim,$soyismim,$yasi m){echo quot;
Benim Adım $ismimquot;
;echo quot;
Soyadımda $ekinci.. $yasim Yaşındayım ve PHP öğreniyorum..quot;
;print tumadim(quot;
Salihquot;
,quot;
Karatayquot;
,quot;
22quot;
 );};?>Yukarıdaki örnekte kendimize güzel bi şablon oluşturduk. İsmimizi, soyismimizi ve Yaşımızı yazdığımız zaman kendimizi tanıtıyor gibi ekrana belirli bir cümle bütünlüğü yazdırdık.. Ve karşımıza çıkan yazı quot;
Benim Adım Salih Soyadımda Karatay.. 22 Yaşındayım ve PHP öğreniyorum..quot;
 Yazısı çıktı..Yukarıdaki örnekler birer Statik fonksiyon örneklendirmeleriydi.. Görüldüğü gibi fonksiyon yazmak oldukça kolay, bir okadarda pratik. Fonksiyon kullanımını gayet iyi kavradık madem biraz teferruata girelim. Statik fonksiyonlar kendisi dışında belirtilen değişken ve tanımlamaları kabul etmez. Bu işlemi yaptırmamız için fonksiyonumuzu dinamize etmemiz gerekiyor.. Aşağıda bununla ilgili bir örnek ;<?$degisken=quot;
Amma Değiştim Yahuquot;
;function dinamikim(){global $degisken;echo quot;
Yaşlandımmı nedir, $degiskenquot;
;};?>Yukarıdaki örneği çalıştırdığımız zaman karşımıza quot;
Yaşlandımmı nedir, Amma Değişmi Yahuquot;
 yazısı çıkacaktır. Bu değeri nasıl elde ettik. Bu dinamik fonksiyon örneğinde fonksiyon dışındaki bir değeri fonksiyon içerisine aldık. Bunu global deyimini kullandık. Bu deyimi kullanmasa idik $degisken değerini fonksiyon içerisinde kullanamazdık..Görüldüğü gibi, ismini duyunca irkildiğimiz fonksiyon kodlama işlemi bukadar yalın ve basit.. Korkulacak birşey yok, Hızınızı kesmeden diğer dökümanlarada geçebilirsiniz..1. Array2. Foreach1. ArrayDizi değişkenleri aynı deyim içerisinde onlarca, yüzlerce değişkeni tanımlayabilir. Bu değişkenler aynı deyimin içerisinden ayıklanarak hem kodlamada hem algoritmada hakimiyet sağlar. Bu işlem için Array deyimi kullanılır. Kullanımı yine genel PHP mantığının dışına çıkmadan yapılır. Basit IF değerleri ve değişken tanımlamaları gibidir.. Hemen örneklendirerek açıklayalım ;<?$teklidegisken=5;$dizidegiskeni[1]=quot;
5quot;
;$dizidegiskeni[2]=quot;
10quot;
;$dizidegiskeni[3]=quot;
15quot;
;echo quot;
$teklidegisken -quot;
;echo quot;
$dizidegiskeni[1] -quot;
;echo quot;
$dizidegiskeni[2] -quot;
;echo quot;
$dizidegiskeni[3] -quot;
;?>Yukarıdaki örnekte ne görüyoruz açıklayalım.. Önce $teklidegisken diyerek 5 değerini atadık. Bu herzaman kullandığımız basit bir değişken.. Dizi değişkeninin yeteneklerini sonraki satırlarda görüyoruz.. $dizidegiskeni değerine 3 farklı veri girdik.. Önce 5 değerini girdik, sonra 10 değerini girdik, sonrada 15 değerini girdik.. Böylelikle $dizidegiskeni değişkeninin içerisinde 3 farklı değişken yerleşmiş oldu. Bu değişkenleri tanımlarken her değişken için bir ID yani yer imi belirliyoruz.. Bu yer imlerini [] içerisine giriyoruz.. Önce $dizidegiskeni[1] diyerek dizi değişkeninin içerisine 1 ID'si ile 5 değerini yerleştirdik. Daha sonra 10 ve 15'ide aynı şekilde aynı değişkenin içerisine dizilerle atadık. Bu dizileri yazdırırkende $dizidegiskeni[ID] yazarak ekrana bastırabiliyoruz..Bu dize değerlerini farklı yollarlada atayabiliriz, Mesela ;<?$pembedizi=array(1=> 'Yalan Rüzgarı', 2=>'Esmeralda',3=>'Rozalinda') ;echo $pembedizi[1];?>Yukarıdaki örnektede pembe dizilerden 3 tanesini dizi değişkeni içerisine yerleştirdik.. Ve dizi değişkenlerinden 1'incisini Ekranda görüntülettik. Dikkat edersek girdiğimiz değerleri Tek tırnak ile belirttik. Bu önemle tavsiye edilir. Kodladığınız php sayfalarının performansı önemli. Dizenin içerisine yerleştirdiğimiz her değeri virgül ile ayırarak tüm değerlerimizin girişini sağladık. $pembedizi[2] değerini yazdırsa idik quot;
Esmeraldaquot;
 çıkıcaktı karşımıza.. Görüldüğü gibi dizi değişkenleri oldukça yetenekli değişkenler.. Bir dize değerinin içerisine ayrı ayrı veriler girebildiğimiz gibi her dize değerinin içerisindede dize değerleri oluşturabiliriz.. Şimdi bunuda bi örnekle açıklayalım ;<?$yapilacakisler=array(quot;
pazartesiquot;
=>array(quot;
Tatili bırakıp işe gidicemquot;
,quot;
Telefon faturasını ödiycem.quot;
),quot;
saliquot;
=>array(quot;
Yapçak bi işim yokquot;
),quot;
carsambaquot;
=>array(quot;
Bi sinamaya giderim artıkquot;
, quot;
Bulaşıklaaarquot;
),quot;
persembequot;
=>array(quot;
Web Server'ı yedeklemem lazımquot;
,quot;
Arkadaşlarla gezerim artıkquot;
),quot;
cumaquot;
=>array(quot;
Off Çamaşırlar yıkancak bugünquot;
,quot;
Hanki sinamaya gidiceğime karar vericem.quot;
));echo $yapilacakisler['carsamba'] [1];?>İşte haftalık bi planlama.. Biraz karışık gelebilir ama aslında çok basittir.. $yapilacakisler diyerek bir dize değeri oluşturduk.. Dize değerinin içerisinede haftaları tırnaklar içerisinde belirterek dize değerlerini => vasıtası ile () parantezler içerisine yerleştirdik. İstediğimiz veriyi içerisinden çıkarmak için echo $yapilacakisler['gun']['ID'] komutunu kullandık. Burada bişiye dikkat edelim. Dize içerisinde dizeler oluşturuyor isek dize değerleri 0'dan başlamalı. Yani $yapilacakisler dize değişkeninin içerisindeki bir dize değişkeni olan quot;
carsambaquot;
 nın içerisinden veri alacak isek içerisindeki veriler 0'dan başlar. $yapilacakisler['carsamba'][0] Dese idik, quot;
Bi sinamaya giderim artıkquot;
 yazısını ekrana çıkartacaktık.İyi bir programcı, hangi dilde çalışırsa çalışsır dize değişkenlerini çok iyi kavramalıdır.. Bu değişken türü hem algoritmayı rahatlatıcak, hemde programcıyı fazladan kod yazmaktan kurtaracaktır..2. ForeachForeach aslında bir döngüdür. Foreach'a döngüler bölümünde değinmememizin sebebi kullanım biçimidir. Foreach daha çok Dize değişkenlerinin içerisindeki verileri ayıklamak için kullanılır. Bunun için dizi değişkenleri hakkında malumat sahibi olmak gerekiyor.. Onun için bu makalede bahsetmeye çalışacağız. Açıklamayı fazla uzatmadan önce bir örnekle konuya girip kodlar üzerinde açıklama yapmak daha doğru olacaktır.<?$dizidizi=array('Bir','İki','Ü ç','Dört','Beş');foreach( $dizidizi as $tampon ) { echo quot;
$tampon .nci satır <br>quot;
; };?>Bu örnekte $dizidizi adlı dizi değişkeninin içerisine birden beşe karak alfabetik olarak değer girdik. Daha sonra foreach döngüsü ile bütün değerleri belirlediğimiz bi şablon vasıtası ile ekrana yazdırdık.. Burada dikkat edilmesi gereken husus, foreach döngüsü $dizidizi değişkeninin içerisindeki tüm verileri alana kadar dönecek ve bu değerleri $tampon adlı tampon bir değişken vasıtası ile aktaracaktır. Yapısı gayet basitdir ve bikaç pratikle üzerinde fazla durulmadan geçilebilir bir konudur.. Parantezler içerisinde girilen değer tanımıda tek satır olmak zorunda değildir, İstenilen işlem yaptırılabilir.Foreach Döngüsünün dizi değişkenleriyle kullanıldığını bahsetmiştik.. Şimdi bir örneklede Foreach ve Array'ı birlikte kullanalım...<?$degiskenler=array('a'=>'sedat','b'=>'selma','c'=>'riza',);ksort($degiskenler);foreach ($degiskenler as $tampon){ echo quot;
$tampon<br>quot;
; };?>Yukarıdaki örnekte bir dizi değişkeni tanımladık ve değişken içerisine a,b ve c ID'leri ile isimler girdik.. ksort() deyimi ile bu değişkenleri ID'lerine göre sıralayarak foreach döngüsüne aldık.. Sonuç alfabetik sıra ile sedat, selma ve rıza isimleri alt alta görünür.Şimdi birde bir dizi değişkeninin içerisinde bir değer arattıralım.. Bu işlem için array_search() fonksiyonunu kullanırız. Kullanımı aşağıdaki gibidir.<?$dizidegiskeni=array('bir','ik i','uc','dort','bes' );echo array_search('dort',$dizidegis keni);?>Bu işlem sonucunda karşımıza 3 değeri çıkacaktır.. Bu değerin anlamı, aranan değerin dize içerisindeki sıra numarası. Daha öncede bahsettiğimiz üzere alt dize değerlerinin sıra numaraları 0'dan başlayarak yükselir.. 4'üncü olarak girdiğimiz değer haliyle karşımıza 3 sıra numarası ile gelecektir..PHP ile Form İşlemleri1. GET Metodu Kullanımı2. Post Metodu KullanımıPHP ile çoğu zaman FORM işlemleri uygulamamız gerekir. PHP'nin genel yapısından farklı olmayan bu işlemler zinciri çok fazla karışık olmamasına rağmen genel HTML bilgisine ihtiyaç duyar. Bu makalede HTML kullanımınada deyinilecektir ancak ağırlık olarak PHP kodları üzerinde durulur. Form işlemlerinde temel olarak iki çeşit form işletisi kullanılır. Bunlardan biri GET, diğeri ise POST dur. GET metoduna örnek bir işlem quot;
www.domain.com/islem.php?degisken=deger1&degi sken2=deger2quot;
 gibidir. Bu prosedürü işletmek için HTML bazında bir form değeri oluşturmamız şart değildir. Tarayıcımız vasıtasi ilede bu işlemleri yapabiliriz, Ancak POST değerleri tarayıcımız ile Web Sunucusu arasında hususi bir prosedür uygular ve adres satırında bu değerler görünmez. Şimdi sırasıyla önce GET daha sonrada POST metodunu inceleyelim.1. GET Metodu KullanımıGET metodunda daha öncede bahsettiğimiz gibi HTML üzerinden işletilme zorunluluğu yoktur. Adres satırına yazacağımız değerler ile PHP sayfamızın içerisindeki değişkenlere aktarılabilir. Hemen bir örnek ile açıklayalım ;http://127.0.0.1/deneme.php?degisken...n2=ogreniyorumŞimdi deneme.php dosyasını oluşturalım ve içerisine aşağıdaki satırları ekleyelim.<?echo quot;
$degisken1 $degisken2quot;
;?>Görüldüğü üzere adres satırından GET metodu ile değişken işletmeyi ve bu değişkeni PHP sayfamız içerisinde kullanmayı basit bi kod dizisi ile örneklendirdik.Adres satırına istediğimiz kadar değişken atayıp ilgili PHP sayfasına değişkenler atamamız mümkündür.2. Post Metodu KullanımıPost metoduda yine GET metoduna çok benzer bir yöntem ile kodlanır. Yalnız kullanım prosedürü GET metodundan biraz daha farklıdır. POST metodunda ilgili PHP sayfasına HTML ile veri aktarımı yapabiliriz. Hemen basit bir örnekle anlatalım ;Aşağıdaki satırları form.htm olarak kaydedelim ;<form method=quot;
POSTquot;
 action=quot;
deneme.phpquot;
><p>Adınız <input type=quot;
textquot;
 name=quot;
adquot;
 size=quot;
20quot;
><br>Soyadınız <input type=quot;
textquot;
 name=quot;
soyadquot;
 size=quot;
20quot;
><br>Mesleğimiz <input type=quot;
textquot;
 name=quot;
meslekquot;
 size=quot;
20quot;
><br>Yaşımız <input type=quot;
textquot;
 name=quot;
yasquot;
 size=quot;
20quot;
><br><br><input type=quot;
submitquot;
 value=quot;
Gönderquot;
 name=quot;
B1quot;
><input type=quot;
resetquot;
 value=quot;
Sıfırlaquot;
 name=quot;
B2quot;
></p></form>Şimdi deneme.php dosyasının içerisinede PHP kodlarımızı yazalım ;<?echo quot;
Adım : $ad<br>quot;
;echo quot;
Soyadım : $soyad<br>quot;
;echo quot;
Mesleğim : $meslek<br>quot;
;echo quot;
Yaşım : $yas<br>quot;
;?>Şimdi 127.0.0.1/form.htm sayfasını tarayıcımızdan görüntüleyelim. Karşımıza adımızı, soyadımızı, mesleğimizi ve yaşımızı soran bir form görünecek. Buraya sırasıyla bilgileri girelim..Gönder'e tıkladığımızda değerler deneme.php sayfasına POST edilecek ve karşımıza girdiğimiz bilgiler çıkacaktır. Görüldüğü gibi yöntem GET metodundan çok farklı değildir. Aradaki fark yalnızca verinin aktarılma yöntemidir. GET metodunda veri tarayıcı ile görünür ve aleni bir şekilde aktarılırken, POST metodunda değerler arka planda gönderilip alınmaktadır.Bu örnekler niceliklendirilebilir. Diğer form değerleride quot;
CheckBox, ListBox, ComboList, vs.quot;
 aynı şekilde aktarılabilir.Dosyalama ve Dizin İşlemleri1. Dosyadan Okuma2. Dosyaya Yazma3. Dosya Kopyalama ve Silme4. Mevcut Dosyaların Listelenmesi5. Dizin Oluşturma6. Dizin Kopyalama ve Silme7. Dizinlerin Listelenmesi8. Attribute ( Erişim İzinleri ve Deyimleri )Hemen her programlama dili Dosyalama işlemlerini destekler. PHP'de bu işlemler için geniş pörtföye sahiptir. Bu işlemler dizisini madde madde ayrıntılarıyla inceleyip örneklendiricez.Önce dosyalama işlemleri için temel prosedürleri maddeleyelim ;a. Var olduğumuz dizini Tespit edelimb. Dosyamızın var olduğundan emin olalım.c. Çalışacağımız Dosyanın boyutunu öğrenelimd. Dosya izinlerini kontrol edelim.e. Dosyanın oluşturulduğu tarihi öğrenelimf. Erişim izinleri tablosunu inceleyelim.a. Var olduğumuz dizini Tespit edelimÖnce çalıştığımız alanı bulalım. Bu işlem için aşağıdaki basit komut dizisi işimizi görecektir.<?echo realpath(quot;
.quot;
);?>Bu komutları çalıştırdığımız takdirde karşımıza çalışan php dosyamızın sistem üzerinde hanki dizinde bulunduğunu gösterir. Dikkat edilmesi gereken husus tırnaklar içerisine yazdığımız değerdir. Biz yukardaki örnekte nokta girdik. Sistem dilinde nokta işareti mevcut dizini gösterir. İki nokta quot;
..quot;
 bir alt dizini, quot;
/quot;
 slaş işaretide kök dizini gösterir.--------------------------------------------------------------------------------b. Dosyamızın var olduğundan emin olalım.Bir dosyanın var olduğunu aşağıdaki komut ile öğrenebiliriz.<?if ( file_exists(quot;
deneme.txtquot;
) ) { echo quot;
Dosya var.quot;
;} else { echo quot;
Dosya Yokquot;
;};?>Burada kullandığımız fonksiyon quot;
file_exists()quot;
 dir. Parantez içerisine tırnaklar içerisine girdiğimiz veri var olduğundan emin olmak istediğimiz dosya olmalıdır. Dosya eğer mevcut ise quot;
Dosya var.quot;
 çıktısını alırız. Bu bölüme bir değişkende atayabilirdik. Kullanımı niteliklendirirsek girilen değerin dosyamı veya dizinmi olduğunuda öğrenebiliriz.<?if ( is_file(quot;
deneme.txtquot;
) { echo quot;
Dosyadır.quot;
; } else { echo quot;
Dosya değildir.quot;
; };?>Bu kodlarda girdiğimiz değerin bir dosyamı olduğunu bize verir.. Aynı işlemi dizin içinde gerçekleştirelim.<?if ( is_dir(quot;
deneme.txtquot;
) { echo quot;
Dizindir.quot;
; } else { echo quot;
Dizin değildir.quot;
; };?>Yukardaki komutlarda girilen değerin dizin olup olmadığını kontrol eder.--------------------------------------------------------------------------------c. Çalışacağımız Dosyanın boyutunu öğrenelimAşağıdaki kodlar ilede çalıştığımız dosyanın boyutunu öğreniyoruz.<?echo filesize(quot;
deneme.phpquot;
);?>Bu değer bize dosya boyutunu quot;
bytequot;
 cinsinden verir. Mevcut değerin KB karşılığını quot;
1024quot;
 e bölersek KB, quot;
1048576quot;
 ile çarparsakta MB cinsinden değeri bulmuş oluruz.--------------------------------------------------------------------------------d. Dosya izinlerini kontrol edelim.Çalışıcağımız dosya üzerinde herzaman her işlemi yapamıyabiliriz. Dosya yazmaya izin vermeyebilir, veya aynı şekilde okunamazda olabilir. Bu kontrolleri aşağıdaki komutlarla yapabiliriz.<?if ( is_readable(quot;
deneme.phpquot;
)) { echo quot;
Dosya Okunabilir.quot;
; } else { echo quot;
Dosyanın Okuma İzni Yok.quot;
; };?>Yukarıdaki kodlar dosyanın okuma izni olup olmadığını kontrol ederken ,<?if ( is_writable(quot;
deneme.phpquot;
)) { echo quot;
Dosya Yazılabilirquot;
; } else { echo quot;
Dosyanın Yazma İzni Yok.quot;
; };?>Bu kodlarda dosyanın yazma izni olup olmadığını kontrol eder.--------------------------------------------------------------------------------e. Dosyanın oluşturulduğu tarihi öğrenelimÇalıştığımız dosyanın oluşturulma tarihini öğrenmek için aşağıdaki komutu kullanırız.<?echo date(quot;
d/m/yquot;
,quot;
deneme.phpquot;
);?>Yukarıdaki komut bize dosyanın oluşturulma tarihini verir.--------------------------------------------------------------------------------f. Erişim izinleri tablosunu inceleyelim.Şimdi dosya ve dizinler üzerinde çalışırken sıkça kullanacağımız erişim denetimlerine ait fonksiyon değerlerini inceleyelim. İlgili tablo aşağıdaki gibidir.r Okunabilirw Yazılabilira Dosya sonuna yazar.r+ Okunabilir ve Yazılabilirw+ Yazılabilir ve Okunabilira+ Dosya sonuna hem Okur hem YazarYukardaki tablo çoğu dosyalama ve dizin üzerinde yaptığımız işlemlerde bize yardımcı olacak fonksiyonlarda kullanılacaktır.--------------------------------------------------------------------------------Dosyalama üzerine edinmemiz gereken temel bilgileri gördük. Şimdi uygulamalara geçebiliriz.1. Dosyadan OkumaDosyalama işlemlerinde en çok kullanacağımız prosedürlerden biridir. Bir dosyayı okumak için aşağıdaki işlemi kullanırız.deneme.txt adında bir dosya oluşturalım ve içerisindeki metni ekrana yazdıralım.<?readfile(quot;
deneme.txtquot;
);?>Görüldüğü üzre bir dosyanın içerisindeki bilgiyi okumak ve ekranda görüntüler. Çoğu programlama dilinde bir Metin dosyasının okunması için ayrıntılı ve komplike kodlar kullanılırken php bu işlem için oldukça kullanışlı bir fonksiyon verir bize.Şimdi aynı işlemi bir diğer şekilde yapalım.<?$aktarim=file(quot;
deneme.txtquot;
;echo join(quot;
quot;
,$aktarim);?>Bu şekildede bir metin dosyasının içeriğini alıp ekrana yazdırabiliriz. file() fonksiyonu metin okumak için hazırlanmamış olsada genel anlamı ile metin dosyaları için PHP tarafından atanmış bir fonksiyondur. Biz bu fonksiyonu bir metin dosyasının içeriğini ekrana yazmak için kullandık.Şimdi birazdaha komplike bir örnek verelim ve hazır pasta yemiyelim, kendi pastamızı kendimiz yapalım.<?$islem=@fopen(quot;
deneme.txtquot;
,'r' );while ( ! feof ( $islem )) {$aktarim= fgets ( $islem,10240 );echo quot;
$aktarimquot;
;} fclose($islem);?>Bu kod dizisi bize quot;
deneme.txtquot;
 dosyasının içerisindeki metin değerlerini ekrana yazdıracaktır. Kodları biraz inceleyelim.$islem=@fopen() fonksiyonu dosya okuyabilmek için kullanılan profesyonel bir fonksiyondur. Bu fonksiyon ile $islem adında bir değişken atayıp okuma işlemini bu değişken vasıtası ile dosyanın içerisindeki veriyi ekrana yazdırırız. Bu bir dizi değişkenidir. Parantez içerisine gireceğimiz değer (quot;
dosyaadiquot;
,'erisim') olacaktır. Tek tırnak içerisine dosyayı okumak için hangi erişim denetimi ile açacağımızı belirtir. Dosyanı yazma izni yok ise quot;
wquot;
 seçeneğini belirtmemeliyiz.while döngüsü ile değeri alırken parantez içerisinde quot;
feofquot;
 değeri ile karşılaşırız. Bu değer quot;
File end Of Filequot;
 yani File değerinin sonuna gelene kadar demektir. ! ünlem işareti daha önceki dökümanlarda gördüğümüz üzre quot;
Değil İsequot;
 anlamını taşır ve Dosya Sonu Değilse döngüye devam et anlamını taşır.$aktarim değişkeni ilede veri alımının etaplarını bir değişken vasıtası ile kodumuza geçeriz. fgets değeri dosyanın içerisindeki veriyi alır, Burada kullanılan fonksiyonu incelersek fgets($islem,10240), $islem olarak dosyanın açıldığı dize değerini belirterek dosyayı 10'ar KB ile alacağımızı belirtiriz. Buraya 1 dersek dosyayı 1'er Byte olarak okur, 1024 yaparsak birer KB olarak okur.echo quot;
$aktarimquot;
; diyerekte $aktarim değişkeni içerisindeki veriyi ekrana yazdırırız.fclose($islem); diyerekte dosya okuma işlemini sonlandırdığımız belirterek kodumuzu tamamlarız.Bir dizinin içerisindeki veriyi okumak için dosya adı bölümüne quot;
dizin/dosyaadiquot;
 şeklinde girdi belirtmemiz gerekir. Bir alt dizindeki veriyi almak içinde quot;
../dosyaquot;
 şeklinde girebiliriz.Görüldüğü üzere alanımız üzerindeki bir dosyayı bu şekildede rahatlıkla okuyabiliriz.2. Dosyaya YazmaMevcut bir dosyaya bilgi girişi veya var olan bir dosyanın içerisindeki bilginin güncellenmesi ve sıfırdan yazılması için PHP ile aşağıdaki kodları kullanabiliriz.<?$metin=quot;
Ben bir Ceviz Ağacıyım, Gülhane Parkında..quot;
;$islem=fopen(quot;
yenidosya.txtquot;
,' w');fwrite($islem,$metin);fclose($islem);?>Yukarıdaki işlem bize quot;
yenidosya.txtquot;
 adında bir metin dosyası açıp içerisine $metin değişkeni içerisindeki veriyi girmemizi sağlar.Yaptığımız işlemleri satır satır inceliyelim.$metin değişkeni ile dosyamıza yazmak istediğimiz bilgiyi belirtiyoruz.$islem değişkeninen fopen() fonksiyonunu atıyoruz ve (quot;
dosyaadiquot;
,'erisim') şeklinde fonksiyonumuzu kullanıma açıyoruz. Bu fonksiyon bize yazma hakkı ile yeni bir dosya açıyor.fwrite() fonksiyonu ilede (quot;
işlemdeğişkeniquot;
,metin) şeklinde gireceğimiz veriyi dosyanın içerisine yazdırıyoruz.fclose() fonksiyonu ile dosyalama işlemimizi sonlandırarak kod girişimizi tamamlıyoruz.melihbakir07-22-2005, 07:35 PMGörüldüğü üzere bir dosya oluşturmak ve içerisine veri girmek oldukça kolay ve pratik. Bu işlemi biraz daha teferruatlandıralım ve aynı metin dosyasının sonuna bir değer daha girelim.<?$metin=quot;
Ne sen bunun farkındasın, nede polis farkında.quot;
;$islem=fopen(quot;
yenitosya.txtquot;
,' a');fputs($islem,$metin);fclose($islem);?>Bu kodlarlada yenidosya.txt dosyasının sonuna $metin değişkeninin içerisindeki veriyi ekliyoruz. Aradaki fark kullandımız fputs() fonksiyonudur. Bu fonksiyon ile dosyaya birşey yazarken dosyanın içerisindeki veriyi silmeden sonuna ekleriz.3. Dosya Kopyalama ve SilmePHP ile dosyalarımızı kopyalayıp silme olanağınada sahibiz. Bu işlemler için aşağıdaki kodları kullanabiliriz.<?copy(quot;
yenidosya.txtquot;
,quot;
yenidosy a2.txtquot;
);?>yenidosya.txt'yi aynı içerik ile yenidosya2.txt dosya ismiyle kopyaladık. Görüldüğü üzere kullanımı gayet kolay, açıklamaya gerek yok. Dosya silmek içinde ;<?unlink(quot;
yenidosya2.txtquot;
)?>Kodlarını kullanabiliriz. Dosya silmek için quot;
Unlinkquot;
 komutunu kullanırız. Görüldüğü üzere bu işlemde oldukça basitdir.4. Mevcut Dosyaların ListelenmesiKimi zaman alanımız üzerindeki dosyaları listelememiz gerekebilir. PHP bize bu olanağıda sağlar. Bu işlem için aşağıdaki komutlar işimizi görecektir.<?$islem=@opendir(quot;
.quot;
);while (($tampon=readdir ($islem))){if ( is_file($tampon)){echo quot;
$tampon<br>quot;
;};};?>Bu komutlar ile dizin olarak belirttiğimiz alandaki tüm dosyaları listeleriz. Komutları sırası ile inceleyelim.$islem dizi değişkeninin içerisine @opendir() fonksiyonu ile değer girişine başladık. @opendir() fonksiyonu PHP'nin bize dosyalama işlemleri için atadığı fonksiyondur. Kullanımı oldukça basittir. @opendir(dizin) şeklinde atanabilir.While döngüsü ilede $tampon adında bir tampon değişken atayıp $islem değişkeninin içerisindeki dizileri tek tek ayıklıyoruz ve readdir($islem) diyerek dizi değişkenini baz alarak dizindeki dosyaları readdir() fonksiyonu ile okuyoruz. Bu işlem bize dosya ve dizinlerin tümünü döndürür.is_file fonksiyon değerini kullanarakta dönen değerlerin içerisinde dosya olanları ekrana yazdıracak bir sınama işlemi yapıyoruz.Bu işlemler sonunda tüm dosyalar ( Gizli dosyalarda dahil ) listelenecektir.5. Dizin OluşturmaPHP ile dosyalama işlemlerindeki pratiklik dizin işlemlerindede geçerlidir. Dizin işlemlerine Basit bir örnekle giriş yapalım ve bir klasör oluşturalım.<?mkdir(quot;
Denemequot;
,0777);?>Görüldüğü gibi PHP'De dosya işlemleri olduğu gibi dizin işlemleride aynı mantık ile çalışır. mkdir() fonksiyonunun kullanımı örnektede görüldüğü üzere mkdir(quot;
Klasör Adıquot;
, Erişim İzni) şeklindedir. 0777 erişim izni yani Attribute'dur. Bu değerler döküman sonunda ayrıntılı olarak anlatılacaktır.6. Dizin Kopyalama ve SilmeDizin kopyalama ve silme işlemleride dosyalama işlemlerinde olduğu gibidir. Hatta hemen hemen aynıdır diyebiliriz. Dizin kopyalama ve silme işlemleri için aşağıdaki kodlar işimizi görür.<?copy(quot;
Denemequot;
,quot;
Deneme2quot;
);?>Yalnız bu fonksiyonu kullanırken dikkat edeceğimiz husus, Erişim denetimi yani quot;
Permissionquot;
 dur. Windows tabanlı sistemlerde bu kodu deniycek olursak bize Permission'lar izin vermiycektir. Her nekadar Attribute'u 777 bile olsa bu işlemi Windows tabanlı bir sistemde yapamayız. Unix sistemlerde Dizin kopyalama işlemi Erişim izni var ise rahatlıkla yapılabilir.Mevcut bir klasörü silmek içinde Dosya işleminde kullanılan quot;
Unlinkquot;
 fonksiyonu kullanılır..<?rmdir(quot;
Denemequot;
);?>Görüldüğü gibi Var olan bir dizini silmek için RmDir() fonksiyonunu kullanıyoruz. Hatırlıycak olursak dosya silmek için quot;
Unlinkquot;
 i kullanmıştık. dizin işlemlerinde kullanacağımız fonksiyon farklılık gösterir.7. Dizinlerin ListelenmesiDizinlerin listelenmesi PHP'de dosyaların listelenmesi ile aynı fonksiyon ile kullanılır. Dosyaları listelediğimiz kodları hatırlıycak olursak küçük bir değişiklikle dizinleride listeleyebiliriz.<?$islem=@opendir(quot;
.quot;
);while (($tampon=readdir ($islem))){if ( is_dir($tampon)){echo quot;
$tampon<br>quot;
;};};?>Görüldüğü gibi yalnızca dizi değerinin bize dönen yanıtını sınarken is_file yerine is_dir fonksiyonunu kullandık.8. Attribute ( Erişim İzinleri ve Deyimleri )PHP ile dosyalama ve dizinler üzerinde yaptığımız işlemleri tamamladık. Şimdi dosyalama işlemlerinin erişim denetimlerini inceleyebiliriz. Unix ve türevi sistemlerde ( Linux, BSD, Vs. ) dosya ve dizin yapısı Windows'dakinden daha farklıdır. Her nekadar Windows üzerinde PHP çalıştırabiliyor olsakta PHP bize Unix'in temellerini baz alarak bu işlemleri yaptırır.. Bir dosyayı okumak, yazmak ve çalıştırmak için aşağıdaki şablonda anlatılan biçimde bu denetimleri sağlar.Dosya Sahibi Gruplar Herhangi Bir KullanıcıYazma 400 200 100Okuma 40 20 10Çalıştırma 4 2 1Yukarıdaki tabloya göre örnek birkaç erişim denetimi için kod türetelim.1. Yalnızca Yöneticinin Okuması, yazması ve çalıştırması mümkün olsun.2. Yalnızca yöneticinin yazma izni olsun, diğer kullanıcılar okuyabilsin.3. Tüm kullanıcılarda, yöneticide okuyup çalıştırabilsin ama yalnızca yönetici yazabilsin.4. Tüm kullanıcılar ve yönetici okusun, yazsın ve çalıştırabilsin.Şimdi tablodaki rakamları toplayarak Attribute Türetelim.1. 7002. 7053. 7554. 777Görüldüğü üzere bu tablo ile Dosya erişimleri ve izinleri (Attributes) kontrol altında tutulur.. PHP ile dosya ve dizin işlemleri yapacak isek bu tabloyu benimsemek şartdır.Çerezler ve Oturum Yönetimi ( Cookie - Session )1. Çerezler nedir, Nasıl Kullanılır.2. Çerezlerin kullanımı.3. PHP'de Oturum Yönetimi ( Session )4. Oturum Yönetimi ( Session ) Kullanımı.1. Çerezler nedir, Nasıl Kullanılır.Çerez nedir. Çoğu yerde karşımıza çıkmıştır bu terim. Özellikle Anket formlarında ve üyelik sistemlerinde kullanılan bu terim hakkında üstünkörüde olsa bi bilgiye sahibiz. Önce Çerezleri ( Cookies ) tam olarak tanıyalım, işlevlerini benimseyelim.Çerezler, Web sayfasın ile bilgisayarımız arasındaki referansımızdır. Daha önce girdiğimiz bir web sayfasına girişlerimiz çerezler sayesinde otomize edilebilir. Yani daha sonra aynı sayfaya girmemiz halinde girdiğimiz sayfa bizi tanır, bize kimi referans bilgileri verir, sayfayı daha sonra ziyaret ettiğimizde bu referans bilgileri web sayfasına otomatik olarak iletilir.Çerezler hangi sistemlerde kullanılır. Esas olarak çerezler iki sistemde kullanılır. Bunlardan biri Anket formları, diğeri ise üyelik sistemleridir. Anket formlarında oy kullanmamız halinde sistemimize bir çerez atılır, daha sonra bu forma tekrar oy kullanır isek geçersiz sayılır. Üyelik sistemlerindede çerezler bizi şu şekilde tanır. Sayfaya girişin bir kullanıcı adı ve şifre ile mümkün olduğunu varsayalım. Sayfaya üye olduktan sonra kullanıcı adımızı ve şifremizi gireriz. Daha sonra bu web sayfasına girmek istediğimizde sistemimize atılan çerez ile web sayfası arasında otomasyon kurulur, şifreyi tekrar girmemize gerek kalmaz. Aslında çerezler daha pek çok işlemde kullanılır. Anket formları ve Üyelik sistemleri en sık çerez kullanılan sistemler olduğu için bunları örnek verdik.Peki çerezler nekadar güvenlidir ? Aslında hiç güvenli değildir. Bu çerezlerin içeriği şifrelenmez. Birebir işletim sistemimiz altındaki quot;
Cookiesquot;
 klasörü altına atılır. Çerez dosyasının içeriğine bakmak istediğimiz zaman referans bilgileri karşımıza çıkacaktır. Haliyle Bu bilgiler bilgisayarımızın diğer kullanıcılarınada açıktır.Çerezleri yeterince tanıdık. PHP çerez işlemleri için salt prosedürler işletir. Şimdi bu prosedürleri tanıyalım ve örnek işlemlerle öğrenmeye başlayalım.2. Çerezlerin kullanımı.Çerezler, yukarıda da bahsettiğimiz üzere web sayfası ile ziyaretçi arasındaki referans bilgisidir. PHP ile bu referans bilgisini ziyaretçinin sistemine nasıl işleteceğimizi görelim.<?setcookie ( quot;
referans1quot;
, quot;
123quot;
, time()+3600 ) ;?>Yukarıdaki örnekte php sayfamızı çalıştıran ziyaretçinin sistemine bir çerez değeri girdik. Bu çerez değerleri quot;
referans1quot;
 ve quot;
123quot;
 değerlerini içerek iki adet referans bilgisi işletecektir. Çerezimizin yaşama süresinide time()+3600 değerini girerek 3600 saniye yani 1 Saat olarak belirledik.Şimdi sisteme yüklenen bu çerez ile aynı ziyaretçiyi sayfaya birdahaki girişinde tanısın.<?if ( $HTTP_COOKIE_VARS['referans1']==quot;
123quot;
) {echo quot;
referans değeriniz 123 dürquot;
; ] else { echo quot;
Çerez yüklü değilquot;
 };?>Şimdi yukarıdaki kodları çalıştırdığımızda sistemimizde çerez var ise bize quot;
referans değeriniz 123 dürquot;
 yazacaktır. Eğer ilk örnekteki kodları çalıştırmasa idik quot;
Çerez yüklü değilquot;
 metni ile karşılaşacaktık.Şimdi birde şöyle bir örnek yapalım. Web sayfamıza giren kullanıcıların sayfaya daha önce kaç kere girdiğini sayalım ve kullanıcıya bunu rapor edelim.<?$tampon=$_REQUEST['giris'];echo quot;
$tampon<br>quot;
;setcookie ( quot;
girisquot;
, quot;
2quot;
, time()+3600 );if ( $tampon > quot;
0quot;
 ) {echo quot;
Sayfaya daha önce $tampon kere girdiniz.quot;
;$tampon++;setcookie ( quot;
girisquot;
, $tampon, time()+3600 );} else {echo quot;
Sayfaya ilk girişiniz..quot;
;setcookie (quot;
girisquot;
,quot;
1quot;
,time()+3600);};?>Yukarıdaki komutlar sayfaya girişlerimizi sayacaktır. Sayfaya ilk girişimizde quot;
Sayfaya ilk girişiniz..quot;
 ibaresi ile karşılaşacağız. Daha sonraki girişlerimizde sayfaya kaç kere girmiğimizi gösterecektir. Burada dikkat etmemiz gereken husus, quot;
$_REQUESTquot;
 birimini kullandığımız. Herzaman $HTTP_COOKIE_VARS deyimini kullanmayabiliriz. Çerez değerini alırken $_REQUEST metodunuda kullanabiliriz.Şimdi son bir örnek daha yapıp çerezlerin kodlanmasını tamamlayalım.Şimdiki örnekte bir kullanıcı adı ve şifre sınayacağız.<?setcookie ($kullanici,$sifre,time()+3600 );echo quot;
Kayıt Yapıldıquot;
;?>Yukardaki kodları çalıştırıp sayfamızı quot;
?kullanici=sedat&sifre=12 3quot;
 şeklinde çalıştıralım. quot;
sedatquot;
 yazan yere kendi ismimizi, quot;
123quot;
 yazan yerede herhangi bir numara yazabiliriz. Bu bilgilerin üye giriş sayfalarındaki girişlerden biri olduğunu varsayalım. Sistemimize bir çerez atılacak ve bu çerez bizi sayfaya birdahaki girişimzed bizi tanımasını sağlıycaz.<?if ( $_REQUEST[$kullanici]==$sifre ) { echo quot;
Şifreli Alandasınızquot;
; } else {echo quot;
Şifreyi yanlış girdiniz..quot;
; }?>Şimdi yukarıdaki kodları quot;
?kullanici=sedat&sifre=12 3quot;
 şeklinde çalıştıralım. İlk çerezde girdiğimiz değerlerle son girdiğimiz değer aynı ise bizi şifreli alana atayacaktır.Özellikle üyelik sayfalarında kullanılan çerezler, bu tarz sistemlerde de yukarıdaki şekilde çalışır. Hemen her üyelik sisteminde bizi daha sonraki girişlerde tanısınmı seçeneği vardır. Bu işareti seçer isek ilgili sistem, bizim çerez sürelemizi maksimum uzunlukta tutar. Sayfaya girişimizde çerezdeki Kullanıcı adı ve Şifre bilgisini veritabanıyla karşılaştırır, uyuşuyor ise bizi şifreli alana atar. Eğer çerezimizi siler isek bu sınamayı yapmayacak, bize kullanıcı adı ve şifremizi girmemizi isteyecektir. Veritabanı ile ilgili uygulama konu dışında olduğu için konu ile ilgili dökümanı okuyarak örnek uygulamalar geliştirebilirsiniz.3. PHP'de Oturum Yönetimi ( Session )Oturum Yönetimi ( Session ) PHP'de çok sık kullanılan prosedürlerden biridir. Session'lar ziyaretçi ile web sayfası arasında oluşturulan, ziyaretçinin sayfalar arasında gezinirken bir sayfadan diğer sayfaya taşıdığı değerleri ihtiva eden işlem dizisidir. Aslında çerezler ile kıyasladığımızda oldukça benzer yanları vardır. Şöyle düşünelim, Ziyaretçi kullanıcı adı ve şifresini girdikten sonra şifreli bir alana geçer. Sayfa içerisindeki link'lerden birine tıkladığı zaman sayfa değişecektir. Açılan bu yeni sayfada şifre korumalıdır, kullanıcı bir önceki sayfaya şifre ile girmiştir ancak bu sınama önceki sayfada gerçekleşmiştir. Yeni açılan sayfadada bi sınamaya ihtiyaç duyar. Yani ziyaretçinin izni yeniden kontrol edilmelidir. Bunun için ziyaretçinin kullandığı şifre bu sayfaya bir şekilde aktarılmalıdır. Çerezler bu işlem için kullanılabilir, ancak bu güvenli bir yöntem değildir. Çünki çerezler sayfa kapatıldığı zaman silinmezler, sistemde muhafaza edilmeye devam edilir. Güvenlik sorunu nedeniyle çerezler bu işlem için ideal değildir. Onun için diğer alternatifleri değerlendirmemiz uygun olacaktır. Bir diğer alternatifimizde bu kullanıcı adı ve şifre bilgisini adres çubuğu vasıtası ile sayfadan sayfaya taşımaktır, ki bu işlemde güvenli sayılmaz, çünki ilgili şifre adres çubuğunda bil fiil görünür. Bununla birlikte sayfa içerisindeki kodlamayı daha karmaşık hale getirir.Oturum Yönetimi Prosedürü Session'lar burada devreye girer. Sayfalar arasında veri akışını sağlar. İlgili kullanıcı adı ve şifre bir sayfadan diğer sayfaya taşınarak kullanıcının tekrar tekrar şifre girmesine gerek kalmaz. Bu oturum denetimi web penceresini kapatana kadar devam edecektir.Kısaca özetlersek, Session'lar bize sayfalar arasında verilerin taşınmasına olanak sağlar. Bu veriler herzaman üyelik sayfalarındaki kullanıcı adı ve şifreler olmayabilir. Üyelik sistemleri Session'ların kullanıldığı en yaygın sistemlerdir.melihbakir07-22-2005, 07:38 PM4. Oturum Yönetimi ( Session ) Kullanımı.Session olgusunu tanıdıktan sonra oturum denetimi prosedürünü kodlamaya başlayabiliriz. Session değerlerinin oluşturulması ve taşınması için kullanacağımız en temel fonksiyonlar aşağıdaki gibidir.session_start();session_register();Oturum denetimi ile ilgili veri akışları ve bu akışların kodlanması yukarıdaki temel fonksiyonlar ile sağlanır. Şimdi örnek bir işlem yapalım ve bir değeri Session'a alalım.<?$deneme=quot;
123quot;
;session_start();session_register(deneme);?>Yukarıdaki işlem ile ziyaretçi ile sayfamız arasında bir oturum açtık ve oturum değeri olarak quot;
123quot;
 verdik. Bu değer, sayfalar arasındaki geçişlerde diğer sayfalara da aktarılabilir hale gelmiştir artık. Bu değeri bir şifre olarak kabul eder isek ziyaretçi sayfadan sayfaya geçerken şifresini tekrar tekrar girmek zorunda kalmayacak, aynı zamanda sisteminde bir çerezde yüklememiş olacak.Şimdi bu örneği niteliklendirelim. Kullanıcı şifresini girsin. Ziyaretçi Diğer sayfaya geçtiğinde kullanıcının şifresinin diğer sayfaya aktardığına pratik yaparak şahit olalım.---- giris.php -----<?$deger=$sifre;session_start();session_register(deger);?><a href='icerik.php'>Tıklayalım</a>?>--- icerik.php ----<?session_start();session_register(quot;
degerquot;
);echo $_SESSION[deger];?>Şimdi yukarıdaki işlemleri uygulayalım. İlk kodu giris.php olarak kaydedelim. İkinci koduda açıklamadaki şekilde icerik.php olarak kaydedelim. Şimdi Adres çubuğuna quot;
giris.php?sifre=123quot;
 yazarak şifremizi sisteme girelim. Alttaki quot;
Tıklayalımquot;
 linkine tıkladığımızda bizi icerik.php' sayfasına yönlendirecektir. icerik.php açılınca bize giris.php'de girdiğimiz şifremizi gösterecek. Dikkat edelim ; biz şifremizi giris.php'ye girdik. giris.php bize bi oturum açarak şifremizi quot;
degerquot;
 imiyle kaydetti ve diğer sayfa olan icerik.php'ye taşıdı.Burada bir noktaya daha dikkat edelim. Oturum içerisinde akan verileri quot;
$_SESSIONquot;
 değişkeni ile alabiliriz. Bu değişkende sert parantezler içerisine yazacağımız oturum değeri [deger] bize oturumdaki veriyi iletecektir. Üyelik sayfalarında da bu yöntem kullanılarak sayfalar arasındaki geçişlerde şifremiz sayfadan sayfaya güvenli bi şekilde taşınır.Biz yukarıdaki örneklerde oturum değerine tek bir değer yükledik ve sayfadan sayfaya taşıdık. Oturum yönetimi prosedürünü uygularken birden çok değeri kaydedebiliriz. Yukarıdaki örneği Kullanıcı Adı ve Şifre olarak iki ayrı değer ile kaydedelim.---- giris.php -----<?$ver1=$kullaniciadi;$ver2=quot;
$sifrequot;
;session_start();session_register(ver1);session_register(ver2);?><a href='iki.php'>Tıklayalım</a>--- icerik.php ----<?session_start();session_register(quot;
ver1quot;
);session_register(quot;
ver2quot;
);if ($_SESSION[ver1] == quot;
SEDATquot;
 and $_SESSION[ver2]==quot;
123quot;
){echo quot;
Giriş Yapıldı..quot;
;}else{echo quot;
Giriş Başarısızquot;
;};?>Yukarıdaki örnektete ilkindeki gibi sayfalar arasında veri akışı gerçekleştirdik. giris.php'yi ?kullanici=SEDAT&sifre=123quot;
 şeklinde çalıştıracak olursak bize quot;
Giriş Yapıldı..quot;
 sonucu çıkacaktır. Yaptığımız işlemleri sırası ile açıklayalım.Giris.php'ye iki tampon değer atadık. $ver1 ve $ver2. Bu değerlere adres çubuğundan aldığımız $kullaniciadi ve $sifre değerlerini atadık. Session_start() diyerek oturum açtık ve önce ver1 değerini Oturuma kaydettik, sonra ver2 değerini. quot;
Tıklayınquot;
 yazan link'e tıklayarak icerik.php'ye yönlendik. Burada yine session_start(); fonksiyonunu kullanarak oturum açtık, ve session_register(); fonksiyonları ile önce ver1 değerini aldık, sonra ver2 değerini. Son işlem olarak kullanıcı adını ve şifreyi bir IF deyimi ile sınadık..Üyelik sistemlerinde kullanılan işlemin birebir aynısını gerçekleştirdik. Tek fark, Kullanıcı Adı ve Şifre'yi veritabanından sınamayarak direkt olarak girdik.Sedat EKİNCİ ( 6 Kasım 2004 )KapatAventGRup© Döküman :Tarih İşlemleriPHP bize tarih işlemleri içinde çok gelişmiş kullanım avantajları sağlar. PHP ile Gün, ay, Yıl, Hafta, Saat gibi birimleri her optimasyonu ile rapor edebilme olanağımız var. Dikkat etmemiz gereken husus, PHP tarih işlemlerini kullanırken sunucu tarafındaki değerleri kullanır. Yani bu bilgileri, sunucu üzerindeki tarih ayarlarını baz alarak bize rapor eder. Kullanımı ile ilgili örnekler aşağıdaki gibidir ;<?$tarih=date(quot;
d/m/yquot;
);echo $tarih;?>Bu kodlar bize tarihi quot;
Gün / Ay / Yılquot;
 şeklinde tarihi rapor eder. Örneğin quot;
23/10/2004quot;
. Yukarıdaki örnek PHP'nin tarih işlemi için kullanılan en basit kod dizisidir. Burada bize rapor edilecek verinin formatını date(quot;
xquot;
) fonksiyonu içerisindeki quot;
xquot;
 bölümünde belirtiyoruz. Burada belirteceğimiz seçeneklerle sonucu optimize edebiliriz.Önce bu alanda kullanacağımız değerleri inceleyelim.a Saat için öğleden önce/sonra betiğidir.d Ay içerisindeki gün değerini verir.f Kısaltılmış ay adını verir. quot;
Jenquot;
g 12 lik dilim üzerinden saati verir. quot;
9quot;
h 12 lik dilim üzerinden saati verir. quot;
09quot;
i Dakikayı verir quot;
30quot;
l Günü belirtir. quot;
Kısaltılmışquot;
m Yıl içerisindeki ay değerinin sayısal değerini verir. quot;
01quot;
n Yıl içerisindeki ay değerinin sayısal değerini verir. quot;
1quot;
O Milletler arası saat farkını hesaplar quot;
+0300quot;
r Ref formatı ile saati bildirir. quot;
Sun, 23 Sep 2004 20:49 +300quot;
s Saniyeyi verir. quot;
00quot;
t Belirtilen ayın kaç gün çektiğini verir.w Haftanın gün sayısını verir.y Yıl sayısını verir. quot;
İki Haneliquot;
z Yılın gün sayısını verir.Yukarıdaki fonksiyon değerleri ile tarih işlemlerini pratize edebiliriz. Yukarıdaki taploda kullandığımız değerlerin hepsi küçük harfledir. Bu harfleri büyük harflerle kullanırsak kısaltılan işlemleri uzatır. Örneğin quot;
fquot;
 ile bulunduğumuz ayın adını bize kısaltarak verir. Bu değeri büyük harfle kullanırsak bize ay adını tam olarak vericektir. Yada quot;
gquot;
 değerini kullanarak 12 lik dilim ile aldığımız saat değerini, quot;
Gquot;
 yi kullanarak 24 saatlik dilim halinde görüntüleyebiliriz.Şimdi buradaki tablodan örnekler türetelim.<?$gun=date(quot;
dquot;
);$ay=date(quot;
mquot;
);$yil=date(quot;
Yquot;
);$saat=date(quot;
Gquot;
);$dakika=date(quot;
iquot;
);echo quot;
Tarih : $gun - $ay - $yil<br>quot;
;echo quot;
Saat : $saat:$dakikaquot;
;?>Aynı şablon kullanılarak saniye ve haftalarda hesaplanabilir ve rapor edilebilir<br />
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar

More Related Content

Viewers also liked

Diziler C#
Diziler C#Diziler C#
Diziler C#Batu54
 
C ders-notlari-necati-ergin
C ders-notlari-necati-erginC ders-notlari-necati-ergin
C ders-notlari-necati-erginIbrahim Kizir
 
Programlama I (C) Ders Notu
Programlama I (C) Ders NotuProgramlama I (C) Ders Notu
Programlama I (C) Ders NotuPaylasOgren
 
Az ve Öz C++ Muhammet ÇAĞATAY
Az ve Öz C++  Muhammet ÇAĞATAYAz ve Öz C++  Muhammet ÇAĞATAY
Az ve Öz C++ Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Loops in C Programming
Loops in C ProgrammingLoops in C Programming
Loops in C ProgrammingHimanshu Negi
 

Viewers also liked (6)

C programlama
C programlamaC programlama
C programlama
 
Diziler C#
Diziler C#Diziler C#
Diziler C#
 
C ders-notlari-necati-ergin
C ders-notlari-necati-erginC ders-notlari-necati-ergin
C ders-notlari-necati-ergin
 
Programlama I (C) Ders Notu
Programlama I (C) Ders NotuProgramlama I (C) Ders Notu
Programlama I (C) Ders Notu
 
Az ve Öz C++ Muhammet ÇAĞATAY
Az ve Öz C++  Muhammet ÇAĞATAYAz ve Öz C++  Muhammet ÇAĞATAY
Az ve Öz C++ Muhammet ÇAĞATAY
 
Loops in C Programming
Loops in C ProgrammingLoops in C Programming
Loops in C Programming
 

Similar to Fonksiyonlar

Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriCihan Özhan
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisationirfandurmus
 
PHP'ye Giriş
PHP'ye GirişPHP'ye Giriş
PHP'ye Girişefedincer
 
Mutant Web Applications
Mutant Web ApplicationsMutant Web Applications
Mutant Web Applicationsguest096801
 
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriLog yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriErtugrul Akbas
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeSerkan Kaba
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Univerist
 
Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Uğurkan Ateş
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri TanıtımAtilla Özgür
 
Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1atasss
 
C dilini-taniyalim
C dilini-taniyalimC dilini-taniyalim
C dilini-taniyalimAliBaran6
 
Log yonetimi tecrubeleri
Log yonetimi tecrubeleriLog yonetimi tecrubeleri
Log yonetimi tecrubeleriErtugrul Akbas
 

Similar to Fonksiyonlar (20)

Php1
Php1Php1
Php1
 
Php
PhpPhp
Php
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili Temelleri
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisation
 
PHP'ye Giriş
PHP'ye GirişPHP'ye Giriş
PHP'ye Giriş
 
Mutant Web Applications
Mutant Web ApplicationsMutant Web Applications
Mutant Web Applications
 
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriLog yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
 
Delphi xe5
Delphi xe5Delphi xe5
Delphi xe5
 
Kabuk / bash proglama
Kabuk / bash  proglamaKabuk / bash  proglama
Kabuk / bash proglama
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım Geliştirme
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1
 
Java script
Java scriptJava script
Java script
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
 
Python for Hackers
Python for HackersPython for Hackers
Python for Hackers
 
PHP Sunusu - 3
PHP Sunusu - 3PHP Sunusu - 3
PHP Sunusu - 3
 
Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1
 
C dilini-taniyalim
C dilini-taniyalimC dilini-taniyalim
C dilini-taniyalim
 
C dilini-taniyalim
C dilini-taniyalimC dilini-taniyalim
C dilini-taniyalim
 
Log yonetimi tecrubeleri
Log yonetimi tecrubeleriLog yonetimi tecrubeleri
Log yonetimi tecrubeleri
 

Fonksiyonlar

  • 1. 1. Temel İşlemler ( Toplama, Çıkarma, Çarpma, Bölme )2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )3. Üzeri İfadeler (x², .. )4. Değer Yuvarlama5. Maksimum ve Minumum Değerlerin Tespiti6. Karekök Değerinin Tespiti5. Tüm Aritmetik Komutların Listesi1. Temel İşlemlerPHP her dil gibi metametiksel işlemler içinde belirli fonksiyonlar geliştirmiştir. Bu fonksiyonlar, pek çok dile nispeten çok daha gelişmiş ve pratiktir. Şimdi Bu fonksiyonların en temeli olan toplama, çıkarma, çarpma ve bölme işlemlerini inceliycez.(* aşağıda geçen kimi fonksiyonları sonraki makalelerde detaylarıyla inceleyeceğiz, İntiba olması için örneklerle anlatılmıştır )(* // Dan sonrası açıklamadır, Kodlama ile ilgisi yoktur..(* Aşağıdaki temel örneklendirmelerde echo yerine Print deyimi kullanılmıştır. )Toplama işlemi ;<?print (5+2); // Sonuç Yedi Çıkacaktır.print (7-3); // Sonuç 4 Çıkacaktır.print (4*8); // Sonuç 32 Çıkacaktır.print (8/2); // Sonuç 4 Çıkacaktır.print (20%3); // Burada bölme işleminin kalanını bize verir. 20'yi üçe bölmemiz halinde kalan rakam 2 Olur.?>Bu matematiksel işlemleri değişkenler vasıtası ilede gerçekleştirebiliriz.<?$sayi1=10;$sayi2=5;$sayi3=3;$sayi4=1;print quot; $sayi1 + $sayi3quot; ;print quot; $sayi3 - $sayi4quot; ;print quot; sayi1 / $sayi4quot; ;print quot; $sayi2 % $sayi3quot; ;?>Görüldüğü gibi Temel aritmetiksel işlemler gayet kolay ve sade bir mantığa sahiptir.2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )PHP, Temel fonksiyonları olduğu gibi gelişmiş pek çok fonksiyonuda desteklemektedir. Bu fonksiyonlardan biride sınamadır. Sınama operatörleri vasıtası ile çoğu işlemi PHP'ye otomize bi şekilde yaptırabiliriz. Karşılaştırma operatörlerinin listesi aşağıdaki gibidir. = = Aşittir != Eşit Değildir = = = Aynıdır > Büyüktür < Küçüktür <= Küçük veya Eşittir >= Büyük veya Eşittir && Ve || Veya Yukarıdaki tabloda teme sınama operatörleri listelenmiştir. Şimdi bu operatörleri birer örnek ile açıklıyalım.'(* If Değeri ile ilgili detaylı açıklama bir sonraki makalededir )<?$sayi1=10;$sayi2=15;$sayi3=20;$sayi4=25;if ($sayi1 == ($sayi3/2)) {echo quot; Doğrudurquot; ;};if ($sayi1 != ($sayi4/$sayi2)) { echo quot; Eşit Değildirquot; ;};if ($sayi4 > 20) { echo quot; 25, 20'den Büyüktür..quot; ;};if ($sayi1 < $sayi3) { echo quot; Evet, 10 20'den Küçüktürquot; ;};if ($sayi1 == 10 && $sayi2 < $sayi3) { echo quot; Evet, 10, 10'a Eşittir ve 15 20'den Küçüktürquot; ;};if ($sayi1 > $sayi4 || $sayi4 > $sayi1) { echo quot; 10 25'den Büyüktür veya 25 10'dan Büyüktürquot; ;};?> Yukarıdaki örnekleri çalıştırmamız halinde quot; {quot; ler içerisindeki Echo değeri karşımıza sıralanacaktır..3. Üzeri İfadeler (x², .. )Pek çok yerde karşımıza çıkabilecek olan Üzeri değer ifadeleri ile ilgili işlemleride rahatlıkla Php ile yapabiliriz. Örneğin 10 Adet iki rakamını yan yana çarpmak için Ctrl+C - Ctrl+V Fonksiyonunu kullanmamıza gerek yoktur.. <?print pow(2,10);?>Bu örnek bize 1024 Sonucunu gösterir.4. Değer YuvarlamaÇoğu matematiksel işlemde değer yuvarlamalara ihtiyaç duyarız. Kimi zaman .'dan sonra gelen değerler bizi rahatsız edebilir. Bu işlem içinde Php çok rahat ve pratize edilmiş fonksiyonlar sunar. <?print floor(98/5); // Yukarı Doğru Değer Yuvarlama.print ceil(98/5); // Aşağı Doğru Değer Yuvarlama. print round(12/8); // Tam Değer Yuvarlama.?>Yukarıdaki örneklerde 98'i 5'e bölerek önce yukarı doğru yuvarladık. Sonuç 19 Çıktı. Aynı işlemi aşağı doğru yuvarlayınca sonuç 19 çıktı. Bu yorumu php'ye yorumlatmak istiyorsanız Round() fonksiyonunuda kullanabilirsiniz.5. Maksimum ve Minumum Değerlerin TespitiBu işlemde işimize yarıycak fonksiyonlardandır. İçerisinde onlarca değeri tanımlıyan bir dize ile karşılaşırsak bu fonksiyonu kullanmamız gerekir.(* Dize değerleri ile ilgili açıklamalar bir sonraki makalede teferruatlarıyla incelenecektir. )<?$degisken=array(a=>12,b=>13,c=>14,d=>15);print max($degisken);print min($degisken);?>Yukarıdaki örnekte önce dize değerinin en küçük değerini yani 12'yi bulduk, sonra aynı değerin maksimum olan 15'i tespit ettik. 6. Karekök Değerinin TespitiBuda en sık kullanılan ekstrem matematiksel işlemlerdendir. Php bu işlem içinde pratik bi fonksiyon desteği sunar.<?print sqrt(81);?>Yukaraki örnekte 81 değerinin Karekökünü bulduk. Sonuç 9. PHP fonksiyon içerisinde fonksiyon kullanmamızada olanak sağlar. Örneğin ;<?print sqrt(pow(4,9));?>Burada da 4 üzeri 9 olan 6,561'in Karekökünü bulduk. Sonuç 81.5. Tüm Aritmetik Komutların ListesiPHP, pek çok aritmetiksel işlemi fonksiyonlarıyla destekler. Bütün bu işlemler için örnek vermemize gerek yok. Yukarıdaki örneklerde Php'nin bu fonksiyonları nasıl kullandığını gördük. Php'nin desteklediği tüm fonksiyonların bir listesi işimizi görecektir.abc() Mutlak değer acos() Yay kosinüsü asin() Yay sinusu atan() Yay tanjantı atan2() İki değişkenin yay teğeti base_convert() Keyfi esaslar arasında sayıyı çevirir bindec() Ondalığa ikilik ceil() Bir sonraki tamsasıya yuvarlama cos() Kosinüs decbin() ikiliğe ondalık dechex() Ondalığa onaltılık decoct() Sekizliğe ondalık deg2rad() Dereceyi radyana çevir floor() Bir önceki tamsayıya yuvarla getrandmax() En geniş mümkün rastgele değeri hexdec() Onaltılığa ondalık lcg_valuE() Doğrusal congruential jeneratörünün birleştir log() Doğal algoritma log10() 10 tabaına göre algoritma max() En yüksek değer min() En küçük değer mt_rand() İyi rastgele değeri üret mt_srand() İyi restgele sayı jeneratörü tohum ek mt_getrandmax() En geniş mümkün rastgele değeri göster number_format() Gruplaşmış bin ile sayıyı formatla oetdec() Ondalığa sekizlik pi() Pi sayısını pow() Üstel ifade rad2deg() Radyanı dereceye çevir rand() Rastgele değeri üret round() Yuvarla sin() Sinus sqrt() Karekök srand() Rastgele sayı jeneratörü tohumu ek tan() Teğet<br />1. Php Nedir ?Bilindiği üzere Web sistemleri zaman içerisinde popülaritesini arttırmış, hemen her sistemde az veya çok kullanılır olmuştur. Bu dillere örnek verirsek, ASP, PHP, CGI, JSP gibi komplike yeteneklere sahip pek çok dil zaman içerisinde geliştirilmiş ve yaygınlaşmıştır. Standart dil olarak sunulan HTML oldukça pratik ve hızlı olmasına karşın quot; Kütquot; bir dildi. Yani tarayıcınızın yorumlıycağı şeylerle kısıtlıydı. Sunucu tarafı size yalnızca tarayıcınızın algılıyabileceği nitelikteki bilgileri göndererek grafik ortamlı birer broşür gibi çalışırlar. Haliyle HTML Zaman içerisinde artan ihtiyaçları karşılamaktan acizdi. Bu ihtiyacın hasıl olması interaktif dillerin geliştirilmesine vesile olmuştur. İnteraktif diller Birer Program gibi çalışarak sunucu tarafında işlem yapar, size yapılan işlemin sonucunu gönderir. Bu özelliği ile Web üzerinden E-Posta işlemleri, Üyelik sistemleri, Veritabanı bağlantıları ile bilgisayarınızda kullandığınız programların yaptığı işi neredeyse birebir yapabilirler. Bu diller birer Programdırlar ve size ulaşmadan önce sunucu tarafında çalıştırılarak işlem pörtföyünüzü genişletir.Php en popüler interaktif dillerden biridir. Hatta çoğu istatistiki veriye göre en çok kullanılan ve performans bakımından diğer altirnatiflerine göre çok daha hızlıdır. Açıklıycak olursak ; Php Sunucu tarafında çalıştırılarak talep edilen bilgiyi yorumlar. Örnekliycek olursak Bir broşür gibi diyil adeta birer müşteri temsilcisi gibi davranır.Php Temelde Unix türevli bir sistemdir, Ancak pekiala Windows sistemlerdede kullanılabilecek şekilde uyarlanmıştır. Çoğu Windows tabanlı sistemler Php'yi çalıştırabildiği gibi Php'nin gelişen ve güncellenen modüllerininde desteğini sağlayabilir. Ancak söylediğimiz gibi Php Unix Tabanlı yahut Unix'den türetilen sistemler baz alınarak geliştirilmiştir. Algoritmik yapısı C'ye çokca benzer. Öyleki çoğu modül ve değeri C ile aynıdır.Php'ye bir programlama dili gibi yaklaşmak çok daha sağlıklı olacaktır. Kodlanan bir Php programcığı/sayfası derlenmeye ihtiyaç duyar. HTML gibi derlenmeye ihtiyaç duymadan direkt olarak çalıştırılamaz. Web Sunucusu Php'nin kodlarını algılamalı, program gereklerini yerine getirerek istemciye, yani Web Sayfasını ziyaret eden kullanıcıya programlandığı şekilde gönderilmelidir. Unix sistemler bu iş için biçilmiş birer kaftandır. Windows'dada bu derleme işini yapmak ziyadesiyle kolay. Unix ve türevi sistemler için geliştirilen Apache, Windows dada çalışabilme özelliğine sahiptir.2. Php'yi DerlemekBir önceki konuda da bashettiğimiz üzere Php derlenmeye ihtiyaç duyan bir programdır. Bu derleme işlemini Unix'de Apache rahatlıkla yapabilir. Biz bu bölümde bu işlemi Windows'da nasıl yapacağımızı inceliycez.Bu iş için ihtiyaç duyacağımız yazılım Apache'nin Windows için geliştirilen Yazılımı olan PhpTriad dır.. Bu yazılımı Google.com'dan aratarak rahatlıkla bulabilirsiniz. Yazılımın kurulmasından sonra yapacağınız işlemler sırasıyla ;Start > Programs > PhpTriad > Apache Console > Start Apache Betiklerini takip çalıştırmak olacaktır.Bu işlem sonrasında karşımıza küçük bir dos penceresi gelecek. Bu pencereyi kapatmamalıyız. Penceremiz bu:Şimdi Kodlarımızı c:pachetdocsAltına koymalıyız.Yani kodlarımızı bu dizindeki herhangi bir metin belgesinin içine kaydedip herhangibirbelge.php uzantısı olarak kaydetmeliyiz ardından tarayıcmızın browser'ına c:/localhost/herhangibirbelge.php adıyla giriş yapıyoruz ve karşımıza kodlarımızın karşılığı çıkıyor..Bu işlemler sonunda bilgisayarımız Bir Web Sunucusu haline gelmiştir ve kodladığımız php programlarını bize derleyerek sunmaya hazır durumdadır.3. Php Yazım Kuralları ve DenetimleriPhp programlanırken belirli kurallara uymak gerekir. Bu kurallara uymamız halinde Sunucumuz taleplerimizi doğru olarak algılar ve bize yanıt verebilir. Bu denetimler C ye ve Perl'e çokca benzer. Her Php Sayfası baştan sona Php Kodları ile dolu olmayabilirde. Örneğin bir .Php programının içerisined baştan sona HTML kodlarıda yazabiliriz. Php kodlarını belirtmek için bir Tag açarız, kodların bittiğini belirtmek için bu tag'ı kapatarak aynı program içerisinde sınırsız dag açabiliriz. Bu denetim ve kurallarının en temeli olan birkaç noktayı 3 hususu sıralayalım ;1. Bir php Programının içerisinde Php komut ve kodlamalarını quot; <?quot; ile başlar quot; ?>quot; ile biter.2. Php'de bir komutun bittiğini ekseriyetle quot; ;quot; ( Noktalı Virgül ) ile belirtiriz. ( Özel Fonksiyonlarda quot; :quot; ilede bitebilir )3. Php programı içerisinde yanlış bir kodlama var ise üretilen hatayı sunucu size rapor eder. ( Bazı sunucular bunu potansiyel tehlike olarak algıladıkları için bu hataları rapor etmiyebilir )4. En Temel Php Kodları ve KomutlarıBir programlama diline girişte bilinmesi gereken en temel ve en sık kullanılan komut ve kodlamalar çok iyi idrak edilmeli ve ne yaptığı kesinlikle doğru algılanmalı. Şimdi en temel kabul edilecek komutları sıralayalım ve inceleyelim.1. Standart Yazdırma Değeri quot; echoquot; 2. Temel Tanım değeri quot; $quot; 3. Bir alt satıra geçiş değeri quot; quot; 4. Dosya ihraç değeri quot; includequot; 1. Standart Yazma Değeri quot; echoquot; Bu değer vasıtası ile herhangi bir metin değerini tarayıcıda ***üntületebiliriz. Kullanımı oldukça basittir. Örneklerle gösterelim ;<?echo quot; Sınır Tanımayan Metinquot; ;?>Görüldüğü üzere burada quot; <?quot; değeri ile php kodlamaya başlıycağımızı belirttik. echo ile komutumuzu belirttik ve Tırnaklar kullanarak içerisindeki değeri ekrana yazdırmasını talep ederek komutumuzun bittiğini belirtmek için tırnağı kapatarak quot; ;quot; ( Noktalı Virgül ) koyduk. Son işlem olarakta quot; ?>quot; değeri ile kodlamanın bittiğini belirttik.Şimdi bu komutu bir notePat vasıtası ile .php uzantısı ile yazalım ve quot; C:pachetdocslk.phpquot; adıyla kaydedelim.Şimdi İnternet Explorer'ımızı açarak quot; 127.0.0.1/ilk.phpquot; yazıp enter'lıyalım. Karşımıza quot; Sınır Tanımayan Kodlarquot; yazısı gelecektir.Burada herzaman çift tırnak kullanmayabiliriz. Aynı işlemi tek tırnak ilede yapmak pekiala mümkün.<?echo 'Sınır Tanımayan Metin';?>Görüldüğü gibi aynı işlemi tek tırnak ile yaptık. Sonuç aynıdır. Buradaki fark quot; işareti ile belirtilen metin yorumlanır. Bu metinlerin arasına değişken değerleri yerleştirebiliriz. Örneğin ;<?$rakamla=quot; 1 2 3quot; ;$yaziyla=quot; bir iki ucquot; ;echo quot; Sayalım $rakamla Bitti. Simdi yaziyla $yaziyla Buda bitti.quot; ;?>Yukarıdaki komutları ilk.php dosyasının içerisine yazalım ve yine tarayıcımızdan görüntüleyelim. Karşımıza quot; Sayalım 1 2 3 Bitti. Simdi yazıyla bir iki uc Buda bitti.quot; değeri gelecektir. Çift tırnak kullanarak hem metin hemde değişken değerlerini bir arada kullanabiliyoruz. Aynı şeyi birde tek tırnak ile deneyelim.<?$rakamla=quot; 1 2 3quot; ;$yaziyla=quot; bir iki ucquot; ;echo 'Sayalım $rakamla Bitti. Simdi yazıyla $yaziyla Buda bitti.';?>Şimdi deneyelim alacağımız yanıtı. quot; Sayalım $deneme Bitti. Simdi yazıyla $yaziyla Buda bitti.quot; Gördüğümüz gibi Tek tırnak kullanırsak yazdıracağımız değeri sunucu tarafı denetlemeden bize gönderir. Çift tırnak ise metin değerlerini sınar ve içlerinde ayrıca bir değer olup olmadığını kontrol ederek çıktıyı gönderir2. Temel Tanım DeğeriYukarıdaki örnekte kullandığımız değişken tanımı değeri quot; $quot; bize bir değerin sonraki komut satırlarına taşınabilmesini sağlar. Böylelikle biz bir tanım oluşturarak bu tanımı sayfa içerisinde defalarca kullanabiliriz. Sayfa içerisinde defalarca kullanılan bu değeri yalnızca $ ile tanımlanan değişken değerini değiştirerek bütün sayfadaki değerleri güncellememize olanak sağlar.Bu değerin kullanımı ile ilgilide kimi kurallara uymamız gerekir. Örneğin, biz bu değeri tırnaklar olmaksızın atayamayız. Değerleri quot; çift tırnak veya ' tek tırnak ile atamalıyız ve tanımın sonuna quot; ;quot; noktalı virgülü kesinlikle koymalıyız.3. Bir Alt Satıra Geçiş Değeri quot; quot; Buda en temel kodlama tamamlayıcı değerlerinden biridir. Bu değer vasıtası ile rapor edilecek veri bittince bir alt satıra geçerek diğer verileri çıktı halinde göndermemize olanak sağlar. Örneğin ; .<?echo quot; 1- Macera Devam Ediyorquot; ;echo quot; 2- Olacak Bu iş Olacak..quot; ;?>Bu şekilde kullanarak kodlarımızı çalıştıralım. Karşımıza İlk Sırada quot; 1- Macera Devam Ediyorquot; ikinci sırada ise quot; 2- Olacak Bu iş Olacakquot; yazıyor.. Şimdi quot; quot; değerlerini kaldırarak deneyelim..<?echo quot; 1- Macera Devam Ediyorquot; ;echo quot; 2- Olacak Bu iş Olacak..quot; ;?>Görüldüğü gibi karşımızda quot; 1- Macera Devam Ediyor2-Olacak Bu iş Olacak..quot; yazıyor.3. Bir Alt Satıra Geçiş Değeri quot; quot; Php kodlarınızın içerisine hazırda bulunan bir diğer php dosyasını veya herhangi bir txt dosyasını ekliyebiliriz. Bunu bize include deyimi sağlar. Bu deyimi aşağıdaki gibi kullanabiliriz. Örneğin içerisinde Php kodlar bulunan ust.php diye bir dosyamız, birde html kodlarının bulunduğu ust.txt diye bir dosyamız olsun.<?include quot; ust.phpquot; ;include quot; ust.txtquot; ;?>Burada aynı dizin içerisinde bulunan ust.php ve ust.txt dosyasını ihraç ediyoruz.5. SonuçAslında sonuç çok açık. Php Programlama dili her nekadar zor denilsede görüldüğü üzere gayet pratik ve işlevseldir. Genel itibari ile mantık doğru şekilde benimsenirse Php ile komplike sayfalar yapabilmek için toplam 5 - 8 Saat arası yoğun bile sayılamıycak bi tempoyla öğrenilebilir. Yapmanız gereken kendinize özgü çalışma notları hazırlayarak sık aralıklarla pratikler yapmak olacaktır. Günde yarım saat - kırk dakika arası bir alıştırma ile bir veya iki haftada çalışma notlarına bile ihtiyacınızın kalmayacağını göreceksiniz.NOT:anlatacagım php dersleri toplam 5 başlık altında anlatacm..üstede söylediğim gibi bunlar ders notlarıdır.Aritmetiksel İşlemler1. Temel İşlemler ( Toplama, Çıkarma, Çarpma, Bölme )2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )3. Üzeri İfadeler (x², .. )4. Değer Yuvarlama5. Maksimum ve Minumum Değerlerin Tespiti6. Karekök Değerinin Tespiti5. Tüm Aritmetik Komutların Listesi1. Temel İşlemlerPHP her dil gibi ****metiksel işlemler içinde belirli fonksiyonlar geliştirmiştir. Bu fonksiyonlar, pek çok dile nispeten çok daha gelişmiş ve pratiktir. Şimdi Bu fonksiyonların en temeli olan toplama, çıkarma, çarpma ve bölme işlemlerini inceliycez.(* aşağıda geçen kimi fonksiyonları sonraki makalelerde detaylarıyla inceleyeceğiz, İntiba olması için örneklerle anlatılmıştır )(* // Dan sonrası açıklamadır, Kodlama ile ilgisi yoktur..(* Aşağıdaki temel örneklendirmelerde echo yerine Print deyimi kullanılmıştır. )Toplama işlemi ;<?print (5+2); // Sonuç Yedi Çıkacaktır.print (7-3); // Sonuç 4 Çıkacaktır.print (4*Cool; // Sonuç 32 Çıkacaktır.print (8/2); // Sonuç 4 Çıkacaktır.print (20%3); // Burada bölme işleminin kalanını bize verir. 20'yi üçe bölmemiz halinde kalan rakam 2 Olur.?>Bu matematiksel işlemleri değişkenler vasıtası ilede gerçekleştirebiliriz.<?$sayi1=10;$sayi2=5;$sayi3=3;$sayi4=1;print quot; $sayi1 + $sayi3quot; ;print quot; $sayi3 - $sayi4quot; ;print quot; sayi1 / $sayi4quot; ;print quot; $sayi2 % $sayi3quot; ;?>Görüldüğü gibi Temel aritmetiksel işlemler gayet kolay ve sade bir mantığa sahiptir.2. Karşılaştırma İşlemleri ( Eşit, Eşit Değil, Aynı, Büyüktür, Küçüktür, Ve, Veya )PHP, Temel fonksiyonları olduğu gibi gelişmiş pek çok fonksiyonuda desteklemektedir. Bu fonksiyonlardan biride sınamadır. Sınama operatörleri vasıtası ile çoğu işlemi PHP'ye otomize bi şekilde yaptırabiliriz. Karşılaştırma operatörlerinin listesi aşağıdaki gibidir.= = Aşittir!= Eşit Değildir= = = Aynıdır> Büyüktür< Küçüktür<= Küçük veya Eşittir>= Büyük veya Eşittir&& Ve|| VeyaYukarıdaki tabloda teme sınama operatörleri listelenmiştir. Şimdi bu operatörleri birer örnek ile açıklıyalım.'(* If Değeri ile ilgili detaylı açıklama bir sonraki makalededir )<?$sayi1=10;$sayi2=15;$sayi3=20;$sayi4=25;if ($sayi1 == ($sayi3/2)) {echo quot; Doğrudurquot; ;};if ($sayi1 != ($sayi4/$sayi2)) { echo quot; Eşit Değildirquot; ;};if ($sayi4 > 20) { echo quot; 25, 20'den Büyüktür..quot; ;};if ($sayi1 < $sayi3) { echo quot; Evet, 10 20'den Küçüktürquot; ;};if ($sayi1 == 10 && $sayi2 < $sayi3) { echo quot; Evet, 10, 10'a Eşittir ve 15 20'den Küçüktürquot; ;};if ($sayi1 > $sayi4 || $sayi4 > $sayi1) { echo quot; 10 25'den Büyüktür veya 25 10'dan Büyüktürquot; ;};?>Yukarıdaki örnekleri çalıştırmamız halinde quot; {quot; ler içerisindeki Echo değeri karşımıza sıralanacaktır..3. Üzeri İfadeler (x², .. )Pek çok yerde karşımıza çıkabilecek olan Üzeri değer ifadeleri ile ilgili işlemleride rahatlıkla Php ile yapabiliriz. Örneğin 10 Adet iki rakamını yan yana çarpmak için Ctrl+C - Ctrl+V Fonksiyonunu kullanmamıza gerek yoktur..<?print pow(2,10);?>Bu örnek bize 1024 Sonucunu gösterir.4. Değer YuvarlamaÇoğu matematiksel işlemde değer yuvarlamalara ihtiyaç duyarız. Kimi zaman .'dan sonra gelen değerler bizi rahatsız edebilir. Bu işlem içinde Php çok rahat ve pratize edilmiş fonksiyonlar sunar.<?print floor(98/5); // Yukarı Doğru Değer Yuvarlama.print ceil(98/5); // Aşağı Doğru Değer Yuvarlama.print round(12/Cool; // Tam Değer Yuvarlama.?>Yukarıdaki örneklerde 98'i 5'e bölerek önce yukarı doğru yuvarladık. Sonuç 19 Çıktı. Aynı işlemi aşağı doğru yuvarlayınca sonuç 19 çıktı. Bu yorumu php'ye yorumlatmak istiyorsanız Round() fonksiyonunuda kullanabilirsiniz.5. Maksimum ve Minumum Değerlerin TespitiBu işlemde işimize yarıycak fonksiyonlardandır. İçerisinde onlarca değeri tanımlıyan bir dize ile karşılaşırsak bu fonksiyonu kullanmamız gerekir.(* Dize değerleri ile ilgili açıklamalar bir sonraki makalede teferruatlarıyla incelenecektir. )<?$degisken=array(a=>12,b=>13,c= >14,d=>15);print max($degisken);print min($degisken);?>Yukarıdaki örnekte önce dize değerinin en küçük değerini yani 12'yi bulduk, sonra aynı değerin maksimum olan 15'i tespit ettik.6. Karekök Değerinin TespitiBuda en sık kullanılan ekstrem matematiksel işlemlerdendir. Php bu işlem içinde pratik bi fonksiyon desteği sunar.<?print sqrt(81);?>Yukaraki örnekte 81 değerinin Karekökünü bulduk. Sonuç 9. PHP fonksiyon içerisinde fonksiyon kullanmamızada olanak sağlar. Örneğin ;<?print sqrt(pow(4,9));?>Burada da 4 üzeri 9 olan 6,561'in Karekökünü bulduk. Sonuç 81.5. Tüm Aritmetik Komutların ListesiPHP, pek çok aritmetiksel işlemi fonksiyonlarıyla destekler. Bütün bu işlemler için örnek vermemize gerek yok. Yukarıdaki örneklerde Php'nin bu fonksiyonları nasıl kullandığını gördük. Php'nin desteklediği tüm fonksiyonların bir listesi işimizi görecektir.abc() Mutlak değeracos() Yay kosinüsüasin() Yay sinusuatan() Yay tanjantıatan2() İki değişkenin yay teğetibase_convert() Keyfi esaslar arasında sayıyı çevirirbindec() Ondalığa ikilikceil() Bir sonraki tamsasıya yuvarlamacos() Kosinüsdecbin() ikiliğe ondalıkdechex() Ondalığa onaltılıkdecoct() Sekizliğe ondalıkdeg2rad() Dereceyi radyana çevirfloor() Bir önceki tamsayıya yuvarlagetrandmax() En geniş mümkün rastgele değerihexdec() Onaltılığa ondalıklcg_valuE() Doğrusal congruential jeneratörünün birleştirlog() Doğal algoritmalog10() 10 tabaına göre algoritmamax() En yüksek değermin() En küçük değermt_rand() İyi rastgele değeri üretmt_srand() İyi restgele sayı jeneratörü tohum ekmt_getrandmax() En geniş mümkün rastgele değeri gösternumber_format() Gruplaşmış bin ile sayıyı formatlaoetdec() Ondalığa sekizlikpi() Pi sayısınıpow() Üstel ifaderad2deg() Radyanı dereceye çevirrand() Rastgele değeri üretround() Yuvarlasin() Sinussqrt() Kareköksrand() Rastgele sayı jeneratörü tohumu ektan() TeğetKoşul ve Sınama ( IF, Else IF, Switch )1. IF ( Eğer ) Koşulu.2. Switch ( Çoklu Koşul ve Sınamalar )1. IF ( Eğer ) Koşulu.Her programlama dili koşullar ile çalışmak zorundadır. Sınamalar, program parçalarının vazgeçilmez unsurlarıdır. Php'de bu işi IF deyimi yapar. Şimdi IF deyimini inceliyelim.<?$degera=10;$degerb=quot; abquot; ;if ( $degera==10 ) { echo '$degera nın Değeri 10 dur.'; } ;if ( $degerb==quot; abquot; ) { echo '$degerb nin değeri ab dir'; } ;?>Yukarıdaki örnekte basit bi sınama yaptık ve $deger a değişkenine verdiğimiz 10 değerini sınadık. Aynı işlemi alfabetik bir değer olan quot; abquot; ilede yaptık. Bize Burada if ( xx ) koşul olarak girilir. eğer $degerb nin değeri quot; ==quot; eşit ise quot; abquot; ye diyerek koşulumuzu belirttik, Parantezler içerisinede koşul doğru ise yapılacak işlemi belirttik.Birde koşul yanlış ise bir sınama yapalım.<?$degera=10;$degerb=quot; abquot; ;if ( $degera>15 ) { echo '$degera nın değeri 15 den büyüktür..'; } else { echo 'Hayır, $degera nın değeri 15 den küçüktür'; };?>Görüldüğü gibi burada koşul belirttik ve sınamayı yaptık. Koşulun doğru çıkmaması halinde quot; elsequot; deyimi ile yapılması gerekenleri belirttik. IF deyimi ile, Birden çok sınama işlemleride yaptırabiliriz. Birkaç sınamayı arka arkaya yaptıralım.<?$degera=10;$degerb=quot; abquot; ;if ( $degera > 15 ) { echo '$degera nın değeri 15 den büyüktür..'; }elseif ( $degera > 13 ) { echo '$degera nın değeri 13 den büyüktür'; }elseif ( $degera > 10 ) { echo '$degera nın değeri 10 den büyüktür'; }else { echo '$degera nın değeri ne 15 den, ne 13 den, nede 10 dan büyük değildir..';};?>Görüldüğü gibi yukarıda aynı IF deyiminin içerisinde birkaç sınama yaptırdık. Bu sınamalar dahada örneklendirilebilir.. Mantığı gayet açıktır.Birde IF deyiminin içerisinde kullanılan komutlar vardır. Bunlar isset(), empty(), intval(), is_integer() gibi fonksiyonlarla dahada işlevselleştirilmiştir. Şimdi bu iç fonksiyonların yaptığı işleri inceliyelim.isset() = Bu komut bir değişken tanımının içerisinde değer olup olmadığını rapor eder.empty() = Buda isset ile aynı işi görür esasında ancak sınamayı terst'den yapar. isset() de dönen değer true ise, emtpy() de aynı değer false olarak döner.intval()= Bu komutda belirtilen değerin numerik yani sayı karşılığını bize verir.is_integer() = Buda değişkenin tamsayı olup olmadığını sınayarak True yahut False değeri ile bize yanıt verir.Şimdi herbirini birer örnekler açıklıyalım ;<?$degisken=quot; denemequot; ;if ( isset($degisken) ) { echo '$degisken değişkeninin bi değeri yok..'; } else { echo '$degisken değerinin bir değeri var';};if ( empty($degisken)) { echo '$degisken değerinin bir değeri var..'; } else { echo '$degisken değerinin bir değeri yok'; };?>Görüldüğü gibi $degisken olarak quot; denemequot; değerini atadık. İlk sınamadada isset() ile bu değişkenin var olup olmadığını kontrol ettik. Değişkenin bir değer içerdiğini rapor eden isset sonucu bize rapor etti. İkinci sınamadada aynı işlemi yaptık ancak fonksiyon olarak empty() yi kullandık. Yani ilk sınamada $degisken değerinin içerisi dolumu diye sorguladık, ikinci sinamadada $degisken değerinin içeriği boşmu diye..Şimdide intval() ile sınama yaptıralım.<?$degisken1=10;$degisken2=20;if ( intval($degisken1+ $degisken2)==30 ) { echo '$degisken degerin karşılığı 30 dur';};?>Bu sorgudada intval($degisken1+$degisken2) olarak koşulumuzu belirttik. Burada intval() koşulunu kullanmayabilirdikte, ancak kimi koşullarda intval() betiğine ihtiyaç duyarız..is_integer() ilede bir değerin tam sayı olup olmadığını sınarız.<?$deger1=3;$deger2=2;if ( is_integer($deger1/$deger2)) { echo quot; Sonuç bir tamsayıdırquot; ;} else { echo quot; Sonuç bir Tamsayı Değildirquot; ; } ;?>Bu komutlar $deger1 değişkenini $deger2'ye yani 3'ü 2'ye böler. Sonuç 1.5 çıkacağından bu bir tamsayı olmayacaktır ve quot; Sonuç bir Tamsayı Değildirquot; yanıtı dönecektir.2. Switch ( Çoklu Koşul ve Sınamalar )Switch deyimide sıkça kullanılan koşul deyimlerinden biridir. Bu deyim aslında IF deyiminin birazdaha pratize edilmiş halidir. Switch koşulu vasıtası ile çoklu sınamalar yaptırmamız mümkün, Örneğin ;<?$memleket=quot; TRABZONquot; ;switch ($memleket) {case quot; Ankaraquot; ;echo quot; Şehir Ankaraquot; ;break;case quot; Orduquot; ;echo quot; Şehir Orduquot; ;break;case quot; Rizequot; ;echo quot; Şehir Rizequot; ;break;case quot; TRABZONquot; ;echo quot; Şehir Trabzonquot; ;break;echo quot; Hiçbiri Değil..quot; ;}?>Yukarıdaki örnekte $memleket değişkenini switch deyimi ile sınadık. Burada dikkat edilecek husus koşulları case quot; degerquot; ile belirterek yapılacak işlemi belirtiriz. Sınamanın bir sonraki aşamaya geçmesi için break tag'ını kullanırız.Döngüler ( While, Do-While, Foreach )1. For2. While3. Do .. whileKimi zaman uzun süreçlere ihtiyaç duyarız. Bazen bu süreçleri teker teker girmek fazla zamanımızı alır, bazı durumlarda da algoritmik yapı buna izin vermez. Böyle durumlarda döngüler imdadımıza koşar, yüzlerce satırda yapılacak işlemi tek bir fonksiyonla yapmamıza olanak sağlar. Şimdi bu koşulları inceleyelim.1. FORPhp'de en sık kullanılan döngülerden biridir. Kullanımı oldukça basit ve pratiktir. Mantık <?for ( değer ; koşul ; artış ) { işlem }?> şeklindedir. Hemen bir örnekle açıklıyalım.<?for ($islem=0;$islem<100;$islem+1) { echo quot; $islem-quot; ; } ;?>Yukarıdaki örnekte 1'den 100'e kadar saydık ve her sayının arasına quot; -quot; tire işareti koyduk. Yukarıda For'dan sonra açtığımız parantez ile $islem değişkeninin değerinin 0 olduğunu belirttik. $islem değeri 100'den küçükse işlemi sürdür diyerek $islem değerinin değerini her dönüşte 1 arttırdık. Böylelikle her dönüşte 1 artan $degisken değeri 100'ü bulunca for döngüsü dönmeyi durduracaktır.2. WhilePhp'de en çok tercih edilen döngüdür. Oldukça pratiktir ve kodlaması çok basittir. Mantık <?while ( koşul ) { yapılacak işlem };?> Şeklinde olacaktır. Bu döngüyü örneklerle açıklıyalım ;Yine Birden yüz'e kadar rakamları yazdıralım..<?$deger=1;while ( $deger == 100 ) {echo quot; Sayı = $degerquot; ;$deger++;};?>Bu kodları çalıştırmamız halinde tarayıcımız 1'den 100'e kadar bütün rakamları alt alta sıralıycaktır. Buradada while betiği ile koşulumuzu belirttik. $deger değeri 100'e eşitlenene kadar işlem devam edecek, her süreçte { parantezler içerisinde kodladığımız işlemleri yapacak. İşlemlerin içerisine değişken'in değerini her dönüşte 1 arttırdığımız belirten $deger++ ide kodlayarak sürecin adımlarını belirliyoruz.While döngüsünün bir diğer kullanım şeklide aşağıdaki gibidir..<?$deger=1;while ( $deger == 100 ) :echo quot; Sayı = $degerquot; ;$deger++;endWhile;?>Yapılan işlem her ikisinde de aynıdır. Bu alternatif kullanımda dikkat edilmesi gereken husus, While betiğinin quot; :quot; iki nokta üst üste ile bitmesidir.3. Do .. WhileDo .. While döngüsü aslında While döngüsü ile aynıdır. Aralarındaki fark While ile önce koşulu sınarken, Do .. While ile koşul en son sınanır.. Mantık <?do { yapılacak işlem } while ( koşul );?> şeklindedir. Örneğin ;<?$deger=!;do {echo quot; Sayı = $degerquot; ;$deger++;} while ( $deger == 100 );?>Buradada yine 1'den 100'e kadar saydık. Görüldüğü gibi aradaki fark işlem sırasıdır.Fonksiyonlar ( GLOBAL, Statik )Fonksiyonlar, programlama dillerinin vazgeçilmez öğelerinden biridir. Çoğu zaman fonksiyon kullanmadan tamamlamaya çalışıcağımız bir algoritma bize fazladan %30 kod yazdırır. Fonksiyonların nitelikleri bir değer biçimini belirliyceğiniz şablona yerleştirerek, türevi işlemlerde aynı şablonu kullanabilmenize olanak sağlar. Aslında fonksiyonlara, program içerisindeki progr*****larda diyebiliriz. Örnek fonksiyonların kullanımlarını aşağıda örneklerle açıklayacağız.Önce fonksiyonların yapılarını inceliyelim. Örnek bir fonksiyon kullanım standardı şu şekildedir ;<?function isim(degisken,degisken2,degisk en3) {fonksiyon içerisinde işletilecek prosedürler ve işlemler};?>Yukarıdaki şablon PHP'nin genel yazım kuralları gibidir. Basit bir IF koşulu kodlar gibi fonksiyonlar oluşturmak mümkündür. Fonksiyonlar ikiye ayrılırlar. Statik ve Dinamik. Statik fonksiyonlar değişmeyen basma kalıp şablon yapısındadır. Dinamik fonksiyonlar ise gerektiği gibi kodlanarak çok farklı işlemlerde kullanılabilir. Her iki fonksiyon tipininde kullanım ve kodlama biçimi aynıdır, birbirlerinden farkı yoktur. Aradaki fark fonksiyonun yapıcağı işlemlerin yetenekleridir. Şimdi örnek bir dinamik fonksiyon kodlayalım.<?function ilk() { print quot; Fonksiyoner Oldum..quot; ; };print ilk;?>Yukarıdaki fonksiyon değeri statik bi fonksiyondur ve yaptığı iş çok basittir. Bu fonksiyon değeri yalnızca quot; Fonksiyoner Oldum..quot; text'ini ekrana yazdırır. Tanımladığımız fonksiyonuda quot; print ilk;quot; yazarak çalıştırabiliriz. Oldukça basit bir örnekti bu.. Şimdi bu örneği biraz niteliklendirelim.Örneğin bir fonksiyon değeriyle şablon oluşturalım ve giriceğimiz değerleri bu şablon çalıştırsın.<?function ismim($isim){ echo quot; Benim adım $isim..quot; ; };print ismim(quot; Salihquot; );?>Yukarıdaki kodları çalıştırmamız halinde ekrana quot; Benim adım Sedat..quot; yazacaktır. Burada kendimize bir şablon oluşturduk... Fonksiyonumuz belirttiğimiz isimi bir cümle içerisinde kullandı.. Biz fonksiyon değerine quot; Sedatquot; bilgisini girdik.. Fonksiyonda bu bilgiyi aldı ve şablonu içerisine yerleştirdi ve Ekrana quot; Benim adım Sedat..quot; yazdırdı. Biz fonksiyonlara birden fazla değerde girebiliriz.. Bu değer girişlerinde herhangi bir kısıtlama yoktur, Yeterki kodlayalım.. Şimdi buna benzer bir fonksiyon daha hazırlıyalım..<?function tumadim($ismim,$soyismim,$yasi m){echo quot; Benim Adım $ismimquot; ;echo quot; Soyadımda $ekinci.. $yasim Yaşındayım ve PHP öğreniyorum..quot; ;print tumadim(quot; Salihquot; ,quot; Karatayquot; ,quot; 22quot; );};?>Yukarıdaki örnekte kendimize güzel bi şablon oluşturduk. İsmimizi, soyismimizi ve Yaşımızı yazdığımız zaman kendimizi tanıtıyor gibi ekrana belirli bir cümle bütünlüğü yazdırdık.. Ve karşımıza çıkan yazı quot; Benim Adım Salih Soyadımda Karatay.. 22 Yaşındayım ve PHP öğreniyorum..quot; Yazısı çıktı..Yukarıdaki örnekler birer Statik fonksiyon örneklendirmeleriydi.. Görüldüğü gibi fonksiyon yazmak oldukça kolay, bir okadarda pratik. Fonksiyon kullanımını gayet iyi kavradık madem biraz teferruata girelim. Statik fonksiyonlar kendisi dışında belirtilen değişken ve tanımlamaları kabul etmez. Bu işlemi yaptırmamız için fonksiyonumuzu dinamize etmemiz gerekiyor.. Aşağıda bununla ilgili bir örnek ;<?$degisken=quot; Amma Değiştim Yahuquot; ;function dinamikim(){global $degisken;echo quot; Yaşlandımmı nedir, $degiskenquot; ;};?>Yukarıdaki örneği çalıştırdığımız zaman karşımıza quot; Yaşlandımmı nedir, Amma Değişmi Yahuquot; yazısı çıkacaktır. Bu değeri nasıl elde ettik. Bu dinamik fonksiyon örneğinde fonksiyon dışındaki bir değeri fonksiyon içerisine aldık. Bunu global deyimini kullandık. Bu deyimi kullanmasa idik $degisken değerini fonksiyon içerisinde kullanamazdık..Görüldüğü gibi, ismini duyunca irkildiğimiz fonksiyon kodlama işlemi bukadar yalın ve basit.. Korkulacak birşey yok, Hızınızı kesmeden diğer dökümanlarada geçebilirsiniz..1. Array2. Foreach1. ArrayDizi değişkenleri aynı deyim içerisinde onlarca, yüzlerce değişkeni tanımlayabilir. Bu değişkenler aynı deyimin içerisinden ayıklanarak hem kodlamada hem algoritmada hakimiyet sağlar. Bu işlem için Array deyimi kullanılır. Kullanımı yine genel PHP mantığının dışına çıkmadan yapılır. Basit IF değerleri ve değişken tanımlamaları gibidir.. Hemen örneklendirerek açıklayalım ;<?$teklidegisken=5;$dizidegiskeni[1]=quot; 5quot; ;$dizidegiskeni[2]=quot; 10quot; ;$dizidegiskeni[3]=quot; 15quot; ;echo quot; $teklidegisken -quot; ;echo quot; $dizidegiskeni[1] -quot; ;echo quot; $dizidegiskeni[2] -quot; ;echo quot; $dizidegiskeni[3] -quot; ;?>Yukarıdaki örnekte ne görüyoruz açıklayalım.. Önce $teklidegisken diyerek 5 değerini atadık. Bu herzaman kullandığımız basit bir değişken.. Dizi değişkeninin yeteneklerini sonraki satırlarda görüyoruz.. $dizidegiskeni değerine 3 farklı veri girdik.. Önce 5 değerini girdik, sonra 10 değerini girdik, sonrada 15 değerini girdik.. Böylelikle $dizidegiskeni değişkeninin içerisinde 3 farklı değişken yerleşmiş oldu. Bu değişkenleri tanımlarken her değişken için bir ID yani yer imi belirliyoruz.. Bu yer imlerini [] içerisine giriyoruz.. Önce $dizidegiskeni[1] diyerek dizi değişkeninin içerisine 1 ID'si ile 5 değerini yerleştirdik. Daha sonra 10 ve 15'ide aynı şekilde aynı değişkenin içerisine dizilerle atadık. Bu dizileri yazdırırkende $dizidegiskeni[ID] yazarak ekrana bastırabiliyoruz..Bu dize değerlerini farklı yollarlada atayabiliriz, Mesela ;<?$pembedizi=array(1=> 'Yalan Rüzgarı', 2=>'Esmeralda',3=>'Rozalinda') ;echo $pembedizi[1];?>Yukarıdaki örnektede pembe dizilerden 3 tanesini dizi değişkeni içerisine yerleştirdik.. Ve dizi değişkenlerinden 1'incisini Ekranda görüntülettik. Dikkat edersek girdiğimiz değerleri Tek tırnak ile belirttik. Bu önemle tavsiye edilir. Kodladığınız php sayfalarının performansı önemli. Dizenin içerisine yerleştirdiğimiz her değeri virgül ile ayırarak tüm değerlerimizin girişini sağladık. $pembedizi[2] değerini yazdırsa idik quot; Esmeraldaquot; çıkıcaktı karşımıza.. Görüldüğü gibi dizi değişkenleri oldukça yetenekli değişkenler.. Bir dize değerinin içerisine ayrı ayrı veriler girebildiğimiz gibi her dize değerinin içerisindede dize değerleri oluşturabiliriz.. Şimdi bunuda bi örnekle açıklayalım ;<?$yapilacakisler=array(quot; pazartesiquot; =>array(quot; Tatili bırakıp işe gidicemquot; ,quot; Telefon faturasını ödiycem.quot; ),quot; saliquot; =>array(quot; Yapçak bi işim yokquot; ),quot; carsambaquot; =>array(quot; Bi sinamaya giderim artıkquot; , quot; Bulaşıklaaarquot; ),quot; persembequot; =>array(quot; Web Server'ı yedeklemem lazımquot; ,quot; Arkadaşlarla gezerim artıkquot; ),quot; cumaquot; =>array(quot; Off Çamaşırlar yıkancak bugünquot; ,quot; Hanki sinamaya gidiceğime karar vericem.quot; ));echo $yapilacakisler['carsamba'] [1];?>İşte haftalık bi planlama.. Biraz karışık gelebilir ama aslında çok basittir.. $yapilacakisler diyerek bir dize değeri oluşturduk.. Dize değerinin içerisinede haftaları tırnaklar içerisinde belirterek dize değerlerini => vasıtası ile () parantezler içerisine yerleştirdik. İstediğimiz veriyi içerisinden çıkarmak için echo $yapilacakisler['gun']['ID'] komutunu kullandık. Burada bişiye dikkat edelim. Dize içerisinde dizeler oluşturuyor isek dize değerleri 0'dan başlamalı. Yani $yapilacakisler dize değişkeninin içerisindeki bir dize değişkeni olan quot; carsambaquot; nın içerisinden veri alacak isek içerisindeki veriler 0'dan başlar. $yapilacakisler['carsamba'][0] Dese idik, quot; Bi sinamaya giderim artıkquot; yazısını ekrana çıkartacaktık.İyi bir programcı, hangi dilde çalışırsa çalışsır dize değişkenlerini çok iyi kavramalıdır.. Bu değişken türü hem algoritmayı rahatlatıcak, hemde programcıyı fazladan kod yazmaktan kurtaracaktır..2. ForeachForeach aslında bir döngüdür. Foreach'a döngüler bölümünde değinmememizin sebebi kullanım biçimidir. Foreach daha çok Dize değişkenlerinin içerisindeki verileri ayıklamak için kullanılır. Bunun için dizi değişkenleri hakkında malumat sahibi olmak gerekiyor.. Onun için bu makalede bahsetmeye çalışacağız. Açıklamayı fazla uzatmadan önce bir örnekle konuya girip kodlar üzerinde açıklama yapmak daha doğru olacaktır.<?$dizidizi=array('Bir','İki','Ü ç','Dört','Beş');foreach( $dizidizi as $tampon ) { echo quot; $tampon .nci satır <br>quot; ; };?>Bu örnekte $dizidizi adlı dizi değişkeninin içerisine birden beşe karak alfabetik olarak değer girdik. Daha sonra foreach döngüsü ile bütün değerleri belirlediğimiz bi şablon vasıtası ile ekrana yazdırdık.. Burada dikkat edilmesi gereken husus, foreach döngüsü $dizidizi değişkeninin içerisindeki tüm verileri alana kadar dönecek ve bu değerleri $tampon adlı tampon bir değişken vasıtası ile aktaracaktır. Yapısı gayet basitdir ve bikaç pratikle üzerinde fazla durulmadan geçilebilir bir konudur.. Parantezler içerisinde girilen değer tanımıda tek satır olmak zorunda değildir, İstenilen işlem yaptırılabilir.Foreach Döngüsünün dizi değişkenleriyle kullanıldığını bahsetmiştik.. Şimdi bir örneklede Foreach ve Array'ı birlikte kullanalım...<?$degiskenler=array('a'=>'sedat','b'=>'selma','c'=>'riza',);ksort($degiskenler);foreach ($degiskenler as $tampon){ echo quot; $tampon<br>quot; ; };?>Yukarıdaki örnekte bir dizi değişkeni tanımladık ve değişken içerisine a,b ve c ID'leri ile isimler girdik.. ksort() deyimi ile bu değişkenleri ID'lerine göre sıralayarak foreach döngüsüne aldık.. Sonuç alfabetik sıra ile sedat, selma ve rıza isimleri alt alta görünür.Şimdi birde bir dizi değişkeninin içerisinde bir değer arattıralım.. Bu işlem için array_search() fonksiyonunu kullanırız. Kullanımı aşağıdaki gibidir.<?$dizidegiskeni=array('bir','ik i','uc','dort','bes' );echo array_search('dort',$dizidegis keni);?>Bu işlem sonucunda karşımıza 3 değeri çıkacaktır.. Bu değerin anlamı, aranan değerin dize içerisindeki sıra numarası. Daha öncede bahsettiğimiz üzere alt dize değerlerinin sıra numaraları 0'dan başlayarak yükselir.. 4'üncü olarak girdiğimiz değer haliyle karşımıza 3 sıra numarası ile gelecektir..PHP ile Form İşlemleri1. GET Metodu Kullanımı2. Post Metodu KullanımıPHP ile çoğu zaman FORM işlemleri uygulamamız gerekir. PHP'nin genel yapısından farklı olmayan bu işlemler zinciri çok fazla karışık olmamasına rağmen genel HTML bilgisine ihtiyaç duyar. Bu makalede HTML kullanımınada deyinilecektir ancak ağırlık olarak PHP kodları üzerinde durulur. Form işlemlerinde temel olarak iki çeşit form işletisi kullanılır. Bunlardan biri GET, diğeri ise POST dur. GET metoduna örnek bir işlem quot; www.domain.com/islem.php?degisken=deger1&degi sken2=deger2quot; gibidir. Bu prosedürü işletmek için HTML bazında bir form değeri oluşturmamız şart değildir. Tarayıcımız vasıtasi ilede bu işlemleri yapabiliriz, Ancak POST değerleri tarayıcımız ile Web Sunucusu arasında hususi bir prosedür uygular ve adres satırında bu değerler görünmez. Şimdi sırasıyla önce GET daha sonrada POST metodunu inceleyelim.1. GET Metodu KullanımıGET metodunda daha öncede bahsettiğimiz gibi HTML üzerinden işletilme zorunluluğu yoktur. Adres satırına yazacağımız değerler ile PHP sayfamızın içerisindeki değişkenlere aktarılabilir. Hemen bir örnek ile açıklayalım ;http://127.0.0.1/deneme.php?degisken...n2=ogreniyorumŞimdi deneme.php dosyasını oluşturalım ve içerisine aşağıdaki satırları ekleyelim.<?echo quot; $degisken1 $degisken2quot; ;?>Görüldüğü üzere adres satırından GET metodu ile değişken işletmeyi ve bu değişkeni PHP sayfamız içerisinde kullanmayı basit bi kod dizisi ile örneklendirdik.Adres satırına istediğimiz kadar değişken atayıp ilgili PHP sayfasına değişkenler atamamız mümkündür.2. Post Metodu KullanımıPost metoduda yine GET metoduna çok benzer bir yöntem ile kodlanır. Yalnız kullanım prosedürü GET metodundan biraz daha farklıdır. POST metodunda ilgili PHP sayfasına HTML ile veri aktarımı yapabiliriz. Hemen basit bir örnekle anlatalım ;Aşağıdaki satırları form.htm olarak kaydedelim ;<form method=quot; POSTquot; action=quot; deneme.phpquot; ><p>Adınız <input type=quot; textquot; name=quot; adquot; size=quot; 20quot; ><br>Soyadınız <input type=quot; textquot; name=quot; soyadquot; size=quot; 20quot; ><br>Mesleğimiz <input type=quot; textquot; name=quot; meslekquot; size=quot; 20quot; ><br>Yaşımız <input type=quot; textquot; name=quot; yasquot; size=quot; 20quot; ><br><br><input type=quot; submitquot; value=quot; Gönderquot; name=quot; B1quot; ><input type=quot; resetquot; value=quot; Sıfırlaquot; name=quot; B2quot; ></p></form>Şimdi deneme.php dosyasının içerisinede PHP kodlarımızı yazalım ;<?echo quot; Adım : $ad<br>quot; ;echo quot; Soyadım : $soyad<br>quot; ;echo quot; Mesleğim : $meslek<br>quot; ;echo quot; Yaşım : $yas<br>quot; ;?>Şimdi 127.0.0.1/form.htm sayfasını tarayıcımızdan görüntüleyelim. Karşımıza adımızı, soyadımızı, mesleğimizi ve yaşımızı soran bir form görünecek. Buraya sırasıyla bilgileri girelim..Gönder'e tıkladığımızda değerler deneme.php sayfasına POST edilecek ve karşımıza girdiğimiz bilgiler çıkacaktır. Görüldüğü gibi yöntem GET metodundan çok farklı değildir. Aradaki fark yalnızca verinin aktarılma yöntemidir. GET metodunda veri tarayıcı ile görünür ve aleni bir şekilde aktarılırken, POST metodunda değerler arka planda gönderilip alınmaktadır.Bu örnekler niceliklendirilebilir. Diğer form değerleride quot; CheckBox, ListBox, ComboList, vs.quot; aynı şekilde aktarılabilir.Dosyalama ve Dizin İşlemleri1. Dosyadan Okuma2. Dosyaya Yazma3. Dosya Kopyalama ve Silme4. Mevcut Dosyaların Listelenmesi5. Dizin Oluşturma6. Dizin Kopyalama ve Silme7. Dizinlerin Listelenmesi8. Attribute ( Erişim İzinleri ve Deyimleri )Hemen her programlama dili Dosyalama işlemlerini destekler. PHP'de bu işlemler için geniş pörtföye sahiptir. Bu işlemler dizisini madde madde ayrıntılarıyla inceleyip örneklendiricez.Önce dosyalama işlemleri için temel prosedürleri maddeleyelim ;a. Var olduğumuz dizini Tespit edelimb. Dosyamızın var olduğundan emin olalım.c. Çalışacağımız Dosyanın boyutunu öğrenelimd. Dosya izinlerini kontrol edelim.e. Dosyanın oluşturulduğu tarihi öğrenelimf. Erişim izinleri tablosunu inceleyelim.a. Var olduğumuz dizini Tespit edelimÖnce çalıştığımız alanı bulalım. Bu işlem için aşağıdaki basit komut dizisi işimizi görecektir.<?echo realpath(quot; .quot; );?>Bu komutları çalıştırdığımız takdirde karşımıza çalışan php dosyamızın sistem üzerinde hanki dizinde bulunduğunu gösterir. Dikkat edilmesi gereken husus tırnaklar içerisine yazdığımız değerdir. Biz yukardaki örnekte nokta girdik. Sistem dilinde nokta işareti mevcut dizini gösterir. İki nokta quot; ..quot; bir alt dizini, quot; /quot; slaş işaretide kök dizini gösterir.--------------------------------------------------------------------------------b. Dosyamızın var olduğundan emin olalım.Bir dosyanın var olduğunu aşağıdaki komut ile öğrenebiliriz.<?if ( file_exists(quot; deneme.txtquot; ) ) { echo quot; Dosya var.quot; ;} else { echo quot; Dosya Yokquot; ;};?>Burada kullandığımız fonksiyon quot; file_exists()quot; dir. Parantez içerisine tırnaklar içerisine girdiğimiz veri var olduğundan emin olmak istediğimiz dosya olmalıdır. Dosya eğer mevcut ise quot; Dosya var.quot; çıktısını alırız. Bu bölüme bir değişkende atayabilirdik. Kullanımı niteliklendirirsek girilen değerin dosyamı veya dizinmi olduğunuda öğrenebiliriz.<?if ( is_file(quot; deneme.txtquot; ) { echo quot; Dosyadır.quot; ; } else { echo quot; Dosya değildir.quot; ; };?>Bu kodlarda girdiğimiz değerin bir dosyamı olduğunu bize verir.. Aynı işlemi dizin içinde gerçekleştirelim.<?if ( is_dir(quot; deneme.txtquot; ) { echo quot; Dizindir.quot; ; } else { echo quot; Dizin değildir.quot; ; };?>Yukardaki komutlarda girilen değerin dizin olup olmadığını kontrol eder.--------------------------------------------------------------------------------c. Çalışacağımız Dosyanın boyutunu öğrenelimAşağıdaki kodlar ilede çalıştığımız dosyanın boyutunu öğreniyoruz.<?echo filesize(quot; deneme.phpquot; );?>Bu değer bize dosya boyutunu quot; bytequot; cinsinden verir. Mevcut değerin KB karşılığını quot; 1024quot; e bölersek KB, quot; 1048576quot; ile çarparsakta MB cinsinden değeri bulmuş oluruz.--------------------------------------------------------------------------------d. Dosya izinlerini kontrol edelim.Çalışıcağımız dosya üzerinde herzaman her işlemi yapamıyabiliriz. Dosya yazmaya izin vermeyebilir, veya aynı şekilde okunamazda olabilir. Bu kontrolleri aşağıdaki komutlarla yapabiliriz.<?if ( is_readable(quot; deneme.phpquot; )) { echo quot; Dosya Okunabilir.quot; ; } else { echo quot; Dosyanın Okuma İzni Yok.quot; ; };?>Yukarıdaki kodlar dosyanın okuma izni olup olmadığını kontrol ederken ,<?if ( is_writable(quot; deneme.phpquot; )) { echo quot; Dosya Yazılabilirquot; ; } else { echo quot; Dosyanın Yazma İzni Yok.quot; ; };?>Bu kodlarda dosyanın yazma izni olup olmadığını kontrol eder.--------------------------------------------------------------------------------e. Dosyanın oluşturulduğu tarihi öğrenelimÇalıştığımız dosyanın oluşturulma tarihini öğrenmek için aşağıdaki komutu kullanırız.<?echo date(quot; d/m/yquot; ,quot; deneme.phpquot; );?>Yukarıdaki komut bize dosyanın oluşturulma tarihini verir.--------------------------------------------------------------------------------f. Erişim izinleri tablosunu inceleyelim.Şimdi dosya ve dizinler üzerinde çalışırken sıkça kullanacağımız erişim denetimlerine ait fonksiyon değerlerini inceleyelim. İlgili tablo aşağıdaki gibidir.r Okunabilirw Yazılabilira Dosya sonuna yazar.r+ Okunabilir ve Yazılabilirw+ Yazılabilir ve Okunabilira+ Dosya sonuna hem Okur hem YazarYukardaki tablo çoğu dosyalama ve dizin üzerinde yaptığımız işlemlerde bize yardımcı olacak fonksiyonlarda kullanılacaktır.--------------------------------------------------------------------------------Dosyalama üzerine edinmemiz gereken temel bilgileri gördük. Şimdi uygulamalara geçebiliriz.1. Dosyadan OkumaDosyalama işlemlerinde en çok kullanacağımız prosedürlerden biridir. Bir dosyayı okumak için aşağıdaki işlemi kullanırız.deneme.txt adında bir dosya oluşturalım ve içerisindeki metni ekrana yazdıralım.<?readfile(quot; deneme.txtquot; );?>Görüldüğü üzre bir dosyanın içerisindeki bilgiyi okumak ve ekranda görüntüler. Çoğu programlama dilinde bir Metin dosyasının okunması için ayrıntılı ve komplike kodlar kullanılırken php bu işlem için oldukça kullanışlı bir fonksiyon verir bize.Şimdi aynı işlemi bir diğer şekilde yapalım.<?$aktarim=file(quot; deneme.txtquot; ;echo join(quot; quot; ,$aktarim);?>Bu şekildede bir metin dosyasının içeriğini alıp ekrana yazdırabiliriz. file() fonksiyonu metin okumak için hazırlanmamış olsada genel anlamı ile metin dosyaları için PHP tarafından atanmış bir fonksiyondur. Biz bu fonksiyonu bir metin dosyasının içeriğini ekrana yazmak için kullandık.Şimdi birazdaha komplike bir örnek verelim ve hazır pasta yemiyelim, kendi pastamızı kendimiz yapalım.<?$islem=@fopen(quot; deneme.txtquot; ,'r' );while ( ! feof ( $islem )) {$aktarim= fgets ( $islem,10240 );echo quot; $aktarimquot; ;} fclose($islem);?>Bu kod dizisi bize quot; deneme.txtquot; dosyasının içerisindeki metin değerlerini ekrana yazdıracaktır. Kodları biraz inceleyelim.$islem=@fopen() fonksiyonu dosya okuyabilmek için kullanılan profesyonel bir fonksiyondur. Bu fonksiyon ile $islem adında bir değişken atayıp okuma işlemini bu değişken vasıtası ile dosyanın içerisindeki veriyi ekrana yazdırırız. Bu bir dizi değişkenidir. Parantez içerisine gireceğimiz değer (quot; dosyaadiquot; ,'erisim') olacaktır. Tek tırnak içerisine dosyayı okumak için hangi erişim denetimi ile açacağımızı belirtir. Dosyanı yazma izni yok ise quot; wquot; seçeneğini belirtmemeliyiz.while döngüsü ile değeri alırken parantez içerisinde quot; feofquot; değeri ile karşılaşırız. Bu değer quot; File end Of Filequot; yani File değerinin sonuna gelene kadar demektir. ! ünlem işareti daha önceki dökümanlarda gördüğümüz üzre quot; Değil İsequot; anlamını taşır ve Dosya Sonu Değilse döngüye devam et anlamını taşır.$aktarim değişkeni ilede veri alımının etaplarını bir değişken vasıtası ile kodumuza geçeriz. fgets değeri dosyanın içerisindeki veriyi alır, Burada kullanılan fonksiyonu incelersek fgets($islem,10240), $islem olarak dosyanın açıldığı dize değerini belirterek dosyayı 10'ar KB ile alacağımızı belirtiriz. Buraya 1 dersek dosyayı 1'er Byte olarak okur, 1024 yaparsak birer KB olarak okur.echo quot; $aktarimquot; ; diyerekte $aktarim değişkeni içerisindeki veriyi ekrana yazdırırız.fclose($islem); diyerekte dosya okuma işlemini sonlandırdığımız belirterek kodumuzu tamamlarız.Bir dizinin içerisindeki veriyi okumak için dosya adı bölümüne quot; dizin/dosyaadiquot; şeklinde girdi belirtmemiz gerekir. Bir alt dizindeki veriyi almak içinde quot; ../dosyaquot; şeklinde girebiliriz.Görüldüğü üzere alanımız üzerindeki bir dosyayı bu şekildede rahatlıkla okuyabiliriz.2. Dosyaya YazmaMevcut bir dosyaya bilgi girişi veya var olan bir dosyanın içerisindeki bilginin güncellenmesi ve sıfırdan yazılması için PHP ile aşağıdaki kodları kullanabiliriz.<?$metin=quot; Ben bir Ceviz Ağacıyım, Gülhane Parkında..quot; ;$islem=fopen(quot; yenidosya.txtquot; ,' w');fwrite($islem,$metin);fclose($islem);?>Yukarıdaki işlem bize quot; yenidosya.txtquot; adında bir metin dosyası açıp içerisine $metin değişkeni içerisindeki veriyi girmemizi sağlar.Yaptığımız işlemleri satır satır inceliyelim.$metin değişkeni ile dosyamıza yazmak istediğimiz bilgiyi belirtiyoruz.$islem değişkeninen fopen() fonksiyonunu atıyoruz ve (quot; dosyaadiquot; ,'erisim') şeklinde fonksiyonumuzu kullanıma açıyoruz. Bu fonksiyon bize yazma hakkı ile yeni bir dosya açıyor.fwrite() fonksiyonu ilede (quot; işlemdeğişkeniquot; ,metin) şeklinde gireceğimiz veriyi dosyanın içerisine yazdırıyoruz.fclose() fonksiyonu ile dosyalama işlemimizi sonlandırarak kod girişimizi tamamlıyoruz.melihbakir07-22-2005, 07:35 PMGörüldüğü üzere bir dosya oluşturmak ve içerisine veri girmek oldukça kolay ve pratik. Bu işlemi biraz daha teferruatlandıralım ve aynı metin dosyasının sonuna bir değer daha girelim.<?$metin=quot; Ne sen bunun farkındasın, nede polis farkında.quot; ;$islem=fopen(quot; yenitosya.txtquot; ,' a');fputs($islem,$metin);fclose($islem);?>Bu kodlarlada yenidosya.txt dosyasının sonuna $metin değişkeninin içerisindeki veriyi ekliyoruz. Aradaki fark kullandımız fputs() fonksiyonudur. Bu fonksiyon ile dosyaya birşey yazarken dosyanın içerisindeki veriyi silmeden sonuna ekleriz.3. Dosya Kopyalama ve SilmePHP ile dosyalarımızı kopyalayıp silme olanağınada sahibiz. Bu işlemler için aşağıdaki kodları kullanabiliriz.<?copy(quot; yenidosya.txtquot; ,quot; yenidosy a2.txtquot; );?>yenidosya.txt'yi aynı içerik ile yenidosya2.txt dosya ismiyle kopyaladık. Görüldüğü üzere kullanımı gayet kolay, açıklamaya gerek yok. Dosya silmek içinde ;<?unlink(quot; yenidosya2.txtquot; )?>Kodlarını kullanabiliriz. Dosya silmek için quot; Unlinkquot; komutunu kullanırız. Görüldüğü üzere bu işlemde oldukça basitdir.4. Mevcut Dosyaların ListelenmesiKimi zaman alanımız üzerindeki dosyaları listelememiz gerekebilir. PHP bize bu olanağıda sağlar. Bu işlem için aşağıdaki komutlar işimizi görecektir.<?$islem=@opendir(quot; .quot; );while (($tampon=readdir ($islem))){if ( is_file($tampon)){echo quot; $tampon<br>quot; ;};};?>Bu komutlar ile dizin olarak belirttiğimiz alandaki tüm dosyaları listeleriz. Komutları sırası ile inceleyelim.$islem dizi değişkeninin içerisine @opendir() fonksiyonu ile değer girişine başladık. @opendir() fonksiyonu PHP'nin bize dosyalama işlemleri için atadığı fonksiyondur. Kullanımı oldukça basittir. @opendir(dizin) şeklinde atanabilir.While döngüsü ilede $tampon adında bir tampon değişken atayıp $islem değişkeninin içerisindeki dizileri tek tek ayıklıyoruz ve readdir($islem) diyerek dizi değişkenini baz alarak dizindeki dosyaları readdir() fonksiyonu ile okuyoruz. Bu işlem bize dosya ve dizinlerin tümünü döndürür.is_file fonksiyon değerini kullanarakta dönen değerlerin içerisinde dosya olanları ekrana yazdıracak bir sınama işlemi yapıyoruz.Bu işlemler sonunda tüm dosyalar ( Gizli dosyalarda dahil ) listelenecektir.5. Dizin OluşturmaPHP ile dosyalama işlemlerindeki pratiklik dizin işlemlerindede geçerlidir. Dizin işlemlerine Basit bir örnekle giriş yapalım ve bir klasör oluşturalım.<?mkdir(quot; Denemequot; ,0777);?>Görüldüğü gibi PHP'De dosya işlemleri olduğu gibi dizin işlemleride aynı mantık ile çalışır. mkdir() fonksiyonunun kullanımı örnektede görüldüğü üzere mkdir(quot; Klasör Adıquot; , Erişim İzni) şeklindedir. 0777 erişim izni yani Attribute'dur. Bu değerler döküman sonunda ayrıntılı olarak anlatılacaktır.6. Dizin Kopyalama ve SilmeDizin kopyalama ve silme işlemleride dosyalama işlemlerinde olduğu gibidir. Hatta hemen hemen aynıdır diyebiliriz. Dizin kopyalama ve silme işlemleri için aşağıdaki kodlar işimizi görür.<?copy(quot; Denemequot; ,quot; Deneme2quot; );?>Yalnız bu fonksiyonu kullanırken dikkat edeceğimiz husus, Erişim denetimi yani quot; Permissionquot; dur. Windows tabanlı sistemlerde bu kodu deniycek olursak bize Permission'lar izin vermiycektir. Her nekadar Attribute'u 777 bile olsa bu işlemi Windows tabanlı bir sistemde yapamayız. Unix sistemlerde Dizin kopyalama işlemi Erişim izni var ise rahatlıkla yapılabilir.Mevcut bir klasörü silmek içinde Dosya işleminde kullanılan quot; Unlinkquot; fonksiyonu kullanılır..<?rmdir(quot; Denemequot; );?>Görüldüğü gibi Var olan bir dizini silmek için RmDir() fonksiyonunu kullanıyoruz. Hatırlıycak olursak dosya silmek için quot; Unlinkquot; i kullanmıştık. dizin işlemlerinde kullanacağımız fonksiyon farklılık gösterir.7. Dizinlerin ListelenmesiDizinlerin listelenmesi PHP'de dosyaların listelenmesi ile aynı fonksiyon ile kullanılır. Dosyaları listelediğimiz kodları hatırlıycak olursak küçük bir değişiklikle dizinleride listeleyebiliriz.<?$islem=@opendir(quot; .quot; );while (($tampon=readdir ($islem))){if ( is_dir($tampon)){echo quot; $tampon<br>quot; ;};};?>Görüldüğü gibi yalnızca dizi değerinin bize dönen yanıtını sınarken is_file yerine is_dir fonksiyonunu kullandık.8. Attribute ( Erişim İzinleri ve Deyimleri )PHP ile dosyalama ve dizinler üzerinde yaptığımız işlemleri tamamladık. Şimdi dosyalama işlemlerinin erişim denetimlerini inceleyebiliriz. Unix ve türevi sistemlerde ( Linux, BSD, Vs. ) dosya ve dizin yapısı Windows'dakinden daha farklıdır. Her nekadar Windows üzerinde PHP çalıştırabiliyor olsakta PHP bize Unix'in temellerini baz alarak bu işlemleri yaptırır.. Bir dosyayı okumak, yazmak ve çalıştırmak için aşağıdaki şablonda anlatılan biçimde bu denetimleri sağlar.Dosya Sahibi Gruplar Herhangi Bir KullanıcıYazma 400 200 100Okuma 40 20 10Çalıştırma 4 2 1Yukarıdaki tabloya göre örnek birkaç erişim denetimi için kod türetelim.1. Yalnızca Yöneticinin Okuması, yazması ve çalıştırması mümkün olsun.2. Yalnızca yöneticinin yazma izni olsun, diğer kullanıcılar okuyabilsin.3. Tüm kullanıcılarda, yöneticide okuyup çalıştırabilsin ama yalnızca yönetici yazabilsin.4. Tüm kullanıcılar ve yönetici okusun, yazsın ve çalıştırabilsin.Şimdi tablodaki rakamları toplayarak Attribute Türetelim.1. 7002. 7053. 7554. 777Görüldüğü üzere bu tablo ile Dosya erişimleri ve izinleri (Attributes) kontrol altında tutulur.. PHP ile dosya ve dizin işlemleri yapacak isek bu tabloyu benimsemek şartdır.Çerezler ve Oturum Yönetimi ( Cookie - Session )1. Çerezler nedir, Nasıl Kullanılır.2. Çerezlerin kullanımı.3. PHP'de Oturum Yönetimi ( Session )4. Oturum Yönetimi ( Session ) Kullanımı.1. Çerezler nedir, Nasıl Kullanılır.Çerez nedir. Çoğu yerde karşımıza çıkmıştır bu terim. Özellikle Anket formlarında ve üyelik sistemlerinde kullanılan bu terim hakkında üstünkörüde olsa bi bilgiye sahibiz. Önce Çerezleri ( Cookies ) tam olarak tanıyalım, işlevlerini benimseyelim.Çerezler, Web sayfasın ile bilgisayarımız arasındaki referansımızdır. Daha önce girdiğimiz bir web sayfasına girişlerimiz çerezler sayesinde otomize edilebilir. Yani daha sonra aynı sayfaya girmemiz halinde girdiğimiz sayfa bizi tanır, bize kimi referans bilgileri verir, sayfayı daha sonra ziyaret ettiğimizde bu referans bilgileri web sayfasına otomatik olarak iletilir.Çerezler hangi sistemlerde kullanılır. Esas olarak çerezler iki sistemde kullanılır. Bunlardan biri Anket formları, diğeri ise üyelik sistemleridir. Anket formlarında oy kullanmamız halinde sistemimize bir çerez atılır, daha sonra bu forma tekrar oy kullanır isek geçersiz sayılır. Üyelik sistemlerindede çerezler bizi şu şekilde tanır. Sayfaya girişin bir kullanıcı adı ve şifre ile mümkün olduğunu varsayalım. Sayfaya üye olduktan sonra kullanıcı adımızı ve şifremizi gireriz. Daha sonra bu web sayfasına girmek istediğimizde sistemimize atılan çerez ile web sayfası arasında otomasyon kurulur, şifreyi tekrar girmemize gerek kalmaz. Aslında çerezler daha pek çok işlemde kullanılır. Anket formları ve Üyelik sistemleri en sık çerez kullanılan sistemler olduğu için bunları örnek verdik.Peki çerezler nekadar güvenlidir ? Aslında hiç güvenli değildir. Bu çerezlerin içeriği şifrelenmez. Birebir işletim sistemimiz altındaki quot; Cookiesquot; klasörü altına atılır. Çerez dosyasının içeriğine bakmak istediğimiz zaman referans bilgileri karşımıza çıkacaktır. Haliyle Bu bilgiler bilgisayarımızın diğer kullanıcılarınada açıktır.Çerezleri yeterince tanıdık. PHP çerez işlemleri için salt prosedürler işletir. Şimdi bu prosedürleri tanıyalım ve örnek işlemlerle öğrenmeye başlayalım.2. Çerezlerin kullanımı.Çerezler, yukarıda da bahsettiğimiz üzere web sayfası ile ziyaretçi arasındaki referans bilgisidir. PHP ile bu referans bilgisini ziyaretçinin sistemine nasıl işleteceğimizi görelim.<?setcookie ( quot; referans1quot; , quot; 123quot; , time()+3600 ) ;?>Yukarıdaki örnekte php sayfamızı çalıştıran ziyaretçinin sistemine bir çerez değeri girdik. Bu çerez değerleri quot; referans1quot; ve quot; 123quot; değerlerini içerek iki adet referans bilgisi işletecektir. Çerezimizin yaşama süresinide time()+3600 değerini girerek 3600 saniye yani 1 Saat olarak belirledik.Şimdi sisteme yüklenen bu çerez ile aynı ziyaretçiyi sayfaya birdahaki girişinde tanısın.<?if ( $HTTP_COOKIE_VARS['referans1']==quot; 123quot; ) {echo quot; referans değeriniz 123 dürquot; ; ] else { echo quot; Çerez yüklü değilquot; };?>Şimdi yukarıdaki kodları çalıştırdığımızda sistemimizde çerez var ise bize quot; referans değeriniz 123 dürquot; yazacaktır. Eğer ilk örnekteki kodları çalıştırmasa idik quot; Çerez yüklü değilquot; metni ile karşılaşacaktık.Şimdi birde şöyle bir örnek yapalım. Web sayfamıza giren kullanıcıların sayfaya daha önce kaç kere girdiğini sayalım ve kullanıcıya bunu rapor edelim.<?$tampon=$_REQUEST['giris'];echo quot; $tampon<br>quot; ;setcookie ( quot; girisquot; , quot; 2quot; , time()+3600 );if ( $tampon > quot; 0quot; ) {echo quot; Sayfaya daha önce $tampon kere girdiniz.quot; ;$tampon++;setcookie ( quot; girisquot; , $tampon, time()+3600 );} else {echo quot; Sayfaya ilk girişiniz..quot; ;setcookie (quot; girisquot; ,quot; 1quot; ,time()+3600);};?>Yukarıdaki komutlar sayfaya girişlerimizi sayacaktır. Sayfaya ilk girişimizde quot; Sayfaya ilk girişiniz..quot; ibaresi ile karşılaşacağız. Daha sonraki girişlerimizde sayfaya kaç kere girmiğimizi gösterecektir. Burada dikkat etmemiz gereken husus, quot; $_REQUESTquot; birimini kullandığımız. Herzaman $HTTP_COOKIE_VARS deyimini kullanmayabiliriz. Çerez değerini alırken $_REQUEST metodunuda kullanabiliriz.Şimdi son bir örnek daha yapıp çerezlerin kodlanmasını tamamlayalım.Şimdiki örnekte bir kullanıcı adı ve şifre sınayacağız.<?setcookie ($kullanici,$sifre,time()+3600 );echo quot; Kayıt Yapıldıquot; ;?>Yukardaki kodları çalıştırıp sayfamızı quot; ?kullanici=sedat&sifre=12 3quot; şeklinde çalıştıralım. quot; sedatquot; yazan yere kendi ismimizi, quot; 123quot; yazan yerede herhangi bir numara yazabiliriz. Bu bilgilerin üye giriş sayfalarındaki girişlerden biri olduğunu varsayalım. Sistemimize bir çerez atılacak ve bu çerez bizi sayfaya birdahaki girişimzed bizi tanımasını sağlıycaz.<?if ( $_REQUEST[$kullanici]==$sifre ) { echo quot; Şifreli Alandasınızquot; ; } else {echo quot; Şifreyi yanlış girdiniz..quot; ; }?>Şimdi yukarıdaki kodları quot; ?kullanici=sedat&sifre=12 3quot; şeklinde çalıştıralım. İlk çerezde girdiğimiz değerlerle son girdiğimiz değer aynı ise bizi şifreli alana atayacaktır.Özellikle üyelik sayfalarında kullanılan çerezler, bu tarz sistemlerde de yukarıdaki şekilde çalışır. Hemen her üyelik sisteminde bizi daha sonraki girişlerde tanısınmı seçeneği vardır. Bu işareti seçer isek ilgili sistem, bizim çerez sürelemizi maksimum uzunlukta tutar. Sayfaya girişimizde çerezdeki Kullanıcı adı ve Şifre bilgisini veritabanıyla karşılaştırır, uyuşuyor ise bizi şifreli alana atar. Eğer çerezimizi siler isek bu sınamayı yapmayacak, bize kullanıcı adı ve şifremizi girmemizi isteyecektir. Veritabanı ile ilgili uygulama konu dışında olduğu için konu ile ilgili dökümanı okuyarak örnek uygulamalar geliştirebilirsiniz.3. PHP'de Oturum Yönetimi ( Session )Oturum Yönetimi ( Session ) PHP'de çok sık kullanılan prosedürlerden biridir. Session'lar ziyaretçi ile web sayfası arasında oluşturulan, ziyaretçinin sayfalar arasında gezinirken bir sayfadan diğer sayfaya taşıdığı değerleri ihtiva eden işlem dizisidir. Aslında çerezler ile kıyasladığımızda oldukça benzer yanları vardır. Şöyle düşünelim, Ziyaretçi kullanıcı adı ve şifresini girdikten sonra şifreli bir alana geçer. Sayfa içerisindeki link'lerden birine tıkladığı zaman sayfa değişecektir. Açılan bu yeni sayfada şifre korumalıdır, kullanıcı bir önceki sayfaya şifre ile girmiştir ancak bu sınama önceki sayfada gerçekleşmiştir. Yeni açılan sayfadada bi sınamaya ihtiyaç duyar. Yani ziyaretçinin izni yeniden kontrol edilmelidir. Bunun için ziyaretçinin kullandığı şifre bu sayfaya bir şekilde aktarılmalıdır. Çerezler bu işlem için kullanılabilir, ancak bu güvenli bir yöntem değildir. Çünki çerezler sayfa kapatıldığı zaman silinmezler, sistemde muhafaza edilmeye devam edilir. Güvenlik sorunu nedeniyle çerezler bu işlem için ideal değildir. Onun için diğer alternatifleri değerlendirmemiz uygun olacaktır. Bir diğer alternatifimizde bu kullanıcı adı ve şifre bilgisini adres çubuğu vasıtası ile sayfadan sayfaya taşımaktır, ki bu işlemde güvenli sayılmaz, çünki ilgili şifre adres çubuğunda bil fiil görünür. Bununla birlikte sayfa içerisindeki kodlamayı daha karmaşık hale getirir.Oturum Yönetimi Prosedürü Session'lar burada devreye girer. Sayfalar arasında veri akışını sağlar. İlgili kullanıcı adı ve şifre bir sayfadan diğer sayfaya taşınarak kullanıcının tekrar tekrar şifre girmesine gerek kalmaz. Bu oturum denetimi web penceresini kapatana kadar devam edecektir.Kısaca özetlersek, Session'lar bize sayfalar arasında verilerin taşınmasına olanak sağlar. Bu veriler herzaman üyelik sayfalarındaki kullanıcı adı ve şifreler olmayabilir. Üyelik sistemleri Session'ların kullanıldığı en yaygın sistemlerdir.melihbakir07-22-2005, 07:38 PM4. Oturum Yönetimi ( Session ) Kullanımı.Session olgusunu tanıdıktan sonra oturum denetimi prosedürünü kodlamaya başlayabiliriz. Session değerlerinin oluşturulması ve taşınması için kullanacağımız en temel fonksiyonlar aşağıdaki gibidir.session_start();session_register();Oturum denetimi ile ilgili veri akışları ve bu akışların kodlanması yukarıdaki temel fonksiyonlar ile sağlanır. Şimdi örnek bir işlem yapalım ve bir değeri Session'a alalım.<?$deneme=quot; 123quot; ;session_start();session_register(deneme);?>Yukarıdaki işlem ile ziyaretçi ile sayfamız arasında bir oturum açtık ve oturum değeri olarak quot; 123quot; verdik. Bu değer, sayfalar arasındaki geçişlerde diğer sayfalara da aktarılabilir hale gelmiştir artık. Bu değeri bir şifre olarak kabul eder isek ziyaretçi sayfadan sayfaya geçerken şifresini tekrar tekrar girmek zorunda kalmayacak, aynı zamanda sisteminde bir çerezde yüklememiş olacak.Şimdi bu örneği niteliklendirelim. Kullanıcı şifresini girsin. Ziyaretçi Diğer sayfaya geçtiğinde kullanıcının şifresinin diğer sayfaya aktardığına pratik yaparak şahit olalım.---- giris.php -----<?$deger=$sifre;session_start();session_register(deger);?><a href='icerik.php'>Tıklayalım</a>?>--- icerik.php ----<?session_start();session_register(quot; degerquot; );echo $_SESSION[deger];?>Şimdi yukarıdaki işlemleri uygulayalım. İlk kodu giris.php olarak kaydedelim. İkinci koduda açıklamadaki şekilde icerik.php olarak kaydedelim. Şimdi Adres çubuğuna quot; giris.php?sifre=123quot; yazarak şifremizi sisteme girelim. Alttaki quot; Tıklayalımquot; linkine tıkladığımızda bizi icerik.php' sayfasına yönlendirecektir. icerik.php açılınca bize giris.php'de girdiğimiz şifremizi gösterecek. Dikkat edelim ; biz şifremizi giris.php'ye girdik. giris.php bize bi oturum açarak şifremizi quot; degerquot; imiyle kaydetti ve diğer sayfa olan icerik.php'ye taşıdı.Burada bir noktaya daha dikkat edelim. Oturum içerisinde akan verileri quot; $_SESSIONquot; değişkeni ile alabiliriz. Bu değişkende sert parantezler içerisine yazacağımız oturum değeri [deger] bize oturumdaki veriyi iletecektir. Üyelik sayfalarında da bu yöntem kullanılarak sayfalar arasındaki geçişlerde şifremiz sayfadan sayfaya güvenli bi şekilde taşınır.Biz yukarıdaki örneklerde oturum değerine tek bir değer yükledik ve sayfadan sayfaya taşıdık. Oturum yönetimi prosedürünü uygularken birden çok değeri kaydedebiliriz. Yukarıdaki örneği Kullanıcı Adı ve Şifre olarak iki ayrı değer ile kaydedelim.---- giris.php -----<?$ver1=$kullaniciadi;$ver2=quot; $sifrequot; ;session_start();session_register(ver1);session_register(ver2);?><a href='iki.php'>Tıklayalım</a>--- icerik.php ----<?session_start();session_register(quot; ver1quot; );session_register(quot; ver2quot; );if ($_SESSION[ver1] == quot; SEDATquot; and $_SESSION[ver2]==quot; 123quot; ){echo quot; Giriş Yapıldı..quot; ;}else{echo quot; Giriş Başarısızquot; ;};?>Yukarıdaki örnektete ilkindeki gibi sayfalar arasında veri akışı gerçekleştirdik. giris.php'yi ?kullanici=SEDAT&sifre=123quot; şeklinde çalıştıracak olursak bize quot; Giriş Yapıldı..quot; sonucu çıkacaktır. Yaptığımız işlemleri sırası ile açıklayalım.Giris.php'ye iki tampon değer atadık. $ver1 ve $ver2. Bu değerlere adres çubuğundan aldığımız $kullaniciadi ve $sifre değerlerini atadık. Session_start() diyerek oturum açtık ve önce ver1 değerini Oturuma kaydettik, sonra ver2 değerini. quot; Tıklayınquot; yazan link'e tıklayarak icerik.php'ye yönlendik. Burada yine session_start(); fonksiyonunu kullanarak oturum açtık, ve session_register(); fonksiyonları ile önce ver1 değerini aldık, sonra ver2 değerini. Son işlem olarak kullanıcı adını ve şifreyi bir IF deyimi ile sınadık..Üyelik sistemlerinde kullanılan işlemin birebir aynısını gerçekleştirdik. Tek fark, Kullanıcı Adı ve Şifre'yi veritabanından sınamayarak direkt olarak girdik.Sedat EKİNCİ ( 6 Kasım 2004 )KapatAventGRup© Döküman :Tarih İşlemleriPHP bize tarih işlemleri içinde çok gelişmiş kullanım avantajları sağlar. PHP ile Gün, ay, Yıl, Hafta, Saat gibi birimleri her optimasyonu ile rapor edebilme olanağımız var. Dikkat etmemiz gereken husus, PHP tarih işlemlerini kullanırken sunucu tarafındaki değerleri kullanır. Yani bu bilgileri, sunucu üzerindeki tarih ayarlarını baz alarak bize rapor eder. Kullanımı ile ilgili örnekler aşağıdaki gibidir ;<?$tarih=date(quot; d/m/yquot; );echo $tarih;?>Bu kodlar bize tarihi quot; Gün / Ay / Yılquot; şeklinde tarihi rapor eder. Örneğin quot; 23/10/2004quot; . Yukarıdaki örnek PHP'nin tarih işlemi için kullanılan en basit kod dizisidir. Burada bize rapor edilecek verinin formatını date(quot; xquot; ) fonksiyonu içerisindeki quot; xquot; bölümünde belirtiyoruz. Burada belirteceğimiz seçeneklerle sonucu optimize edebiliriz.Önce bu alanda kullanacağımız değerleri inceleyelim.a Saat için öğleden önce/sonra betiğidir.d Ay içerisindeki gün değerini verir.f Kısaltılmış ay adını verir. quot; Jenquot; g 12 lik dilim üzerinden saati verir. quot; 9quot; h 12 lik dilim üzerinden saati verir. quot; 09quot; i Dakikayı verir quot; 30quot; l Günü belirtir. quot; Kısaltılmışquot; m Yıl içerisindeki ay değerinin sayısal değerini verir. quot; 01quot; n Yıl içerisindeki ay değerinin sayısal değerini verir. quot; 1quot; O Milletler arası saat farkını hesaplar quot; +0300quot; r Ref formatı ile saati bildirir. quot; Sun, 23 Sep 2004 20:49 +300quot; s Saniyeyi verir. quot; 00quot; t Belirtilen ayın kaç gün çektiğini verir.w Haftanın gün sayısını verir.y Yıl sayısını verir. quot; İki Haneliquot; z Yılın gün sayısını verir.Yukarıdaki fonksiyon değerleri ile tarih işlemlerini pratize edebiliriz. Yukarıdaki taploda kullandığımız değerlerin hepsi küçük harfledir. Bu harfleri büyük harflerle kullanırsak kısaltılan işlemleri uzatır. Örneğin quot; fquot; ile bulunduğumuz ayın adını bize kısaltarak verir. Bu değeri büyük harfle kullanırsak bize ay adını tam olarak vericektir. Yada quot; gquot; değerini kullanarak 12 lik dilim ile aldığımız saat değerini, quot; Gquot; yi kullanarak 24 saatlik dilim halinde görüntüleyebiliriz.Şimdi buradaki tablodan örnekler türetelim.<?$gun=date(quot; dquot; );$ay=date(quot; mquot; );$yil=date(quot; Yquot; );$saat=date(quot; Gquot; );$dakika=date(quot; iquot; );echo quot; Tarih : $gun - $ay - $yil<br>quot; ;echo quot; Saat : $saat:$dakikaquot; ;?>Aynı şablon kullanılarak saniye ve haftalarda hesaplanabilir ve rapor edilebilir<br />