Yazar: dream41 - 09-01-2015, 12:33 AM - Forum: C#
- Yorum Yok
1950’li yıllardan başlayıp günümüze kadar uzanan yazılım sektöründe her geçen gün yeni şeyler duymak mümkün. Çünkü insanlık tarih boyunca işlerini kolaylaştıracak ürünler üretmeye meyilli olmuştur. Programlama ise 20. ve 21. yüzyılda insanların hayatını kolaylaştıran ürünler üretmek için kullanılan bir araç olmuştur. Günümüze kadar pek çok programlama dilleri geliştirilmiştir. Bunlar kullanılacak platformlara göre yada dil yapısına göre farklı alanlarda kullanılır. Tüm dillerden arasında özellikle nesnel programlama alanında iki programlama dili insanlık için oldukça önemlidir. Bu dillerin ilki ortak platform olarak çalıştırılabilen Java ikincisi ise .net kütüphanesi ile entegre edilerek tüm dillerle ortak platformda programlanabilir ve kolay kodlama yapısı ile C# (CSharp) programlama dilidir. Bu yazı C# programlama dili hakkında tüm teknik detaylar yer alacak şekilde hazırlandı. C# diline giriş yapacak olan kişiler yada C# dilinin tam olarak ne olduğunu anlamaya çalışanlar için oldukça ideal bir kaynak olacaktır. Bu yazıda C# diline kısa bir giriş yaptıktan sonra C# nedir? Ne işe yarar?, sorusunun cevabını vereceğim. Sonrasında ise C# ile neler yapılabilir? sorusu içinde C# dili ile ne tür uygulamalar yazılabileceğini açıklayacağım. Bu yazıdaki tek hedefim ise C#’a yeni başlayan bireylere birer rehber kaynak oluşturmaktır. C# Programlama Diline Giriş C# Nedir? C#, yazılım sektörü içerisinde en sık kullanılan iki yazılım dili olan C ve C++ etkileşimi ile türetilmiştir. Ayrıca C#, ortak platformlarda taşınabilir bir (portable language) programlama dili olan Java ile pek çok açıdan benzerlik taşımaktadır . En büyük özelliği ise .Net Framework platformu için hazırlanmış tamamen nesne yönelimli bir yazılım dilidir. Yani nesneler önceden sınıflar halinde yazılıdır. Programcıya sadece o nesneyi sürüklemek ve sonrasında nesneyi amaca uygun çalıştıracak kod satırlarını yazmak kalır. Microsoft tarafından geliştirilen C#, C++ ve Visual Basic dillerinde yer alan tutarsızlıkları kaldırmak için geliştirilmiş bir dil olmasına rağmen kısa süre içerisinde nesne yönelimli dillerin içinde en gelişmiş programlama dillerinden biri olmayı başarmıştır. Ayrıca gelişmiş derleyicisi (debugger) ile hata olasılığını ortadan kaldırmaktadır. Yazılan program çalıştırıldıktan sonra derleyici tarafından algılanan Sınıf (Class) ve söz dizimi (syntax) hataları yazılımcıya ayrı bir ekranda ayrıntısı ile gösterilir ve yazılımcı bu hata penceresinden hataları tespit ederek kolayca düzeltebilir. Ayrıca pek çok programcı tarafından kullanılan bir dil olmasından ötürü takıldığımız noktalarda uzman programcılardan yardım almak oldukça kolaydır. .NET Framework Nedir? C# ve .Net Framework bazı kişiler tarafından tek bir kavram olarak algılanmaktadır. Fakat bu iki kavram birbirlerinden tamamen farklı amaçlar için geliştirilmiştir. C#, nesne yönelimli bir programlama diliyken .Net Framework ise C# için geliştirilmiş bir çalıştırma ortamıdır. Aslında C# dili, Microsoft tarafından .Net platformu için kod geliştirmek amaçlı tasarlanmış ve C# içerisindeki tüm kütüphaneler .Net platformu içinde tanımlanmış kütüphanelerdir. Java’dan önce, geliştirilen yazılımlar makine koduna çevrilerek çalıştırılırdı. Java ise program kodlarını önce byte sayı sistemine çevirir. Sonrasında Java Sanal Makinesi (JVM – Java Virtual Machine) bu kodları işletim sisteminin istediği koda çevirerek programın çalışmasına sağlar. .Net Platformu da Java diline benzer bir çalışma mantığı izleyerek kodları çalışabilir hale getirmektedir. .Net platformunda kod ilk önce Microsoft Intermediate Language (Microsoft Ara Dili) olarak isimlendirilmiş dosya haline dönüştürülür bu dosya içerisinde derlenen kodların Microsoft’un standart haline getirdiği bir assembly dili haline dönüştürür. Bu ara dil de saklanan dosyalar çalıştırılmak istendiğinde ise CLR adı verilen sistem MSIL kodlarını çalıştırır.
Ortak dil çalışma zamanı ( CLR – Common Language Runtime ) sisteminin temel görevi ise C# dilini taşınabilir kılmak ve diğer diller ile güvenli bir şekilde çalışmayı sağlayan sistemdir. CLR, .Net platformuna ait bir kod çalıştığı zaman JIT (Just in Time – Tam Zamanında ) derleyiciyi aktif hale getirir. Aktif hale gelen JIT derleyici, MSIL kodlarını yerel kod yapısına göre çalıştırarak ortak platform yapısı sağlanmış olur.
C# ile Neler Yapılabilir Bu kısımda ise sizlere C# ile proje geliştirme hakkında basit ipuçları ve giriş yapılacaktır. Aşağıda Visual C# kullanarak ne tür uygulamalar geliştirebileceğimizi anlatmaya çalıştım. Konsol Uygulamaları (Console Applications) Grafiksel kullanıcı arayüzünden çok, komut satırı penceresinde programcı tarafından yazılan uygulama çalışmalarına verilen isimdir. Konsol uygulamaları MS- DOS olarak ifade edilen nesne yönelimli programlamanın yaygınlaşmadığı dönemlerde kullanılan bir arayüz olmuştur. Bu uygulama modelini kullanıcının etkileşim kurması gerekmeyen uygulamalarda basit bir arayüz oluşturmak için kullanılabilir.
Windows Form Uygulamaları (Ado.Net)
Grafiksel kullanıcı arayüzü (GUI – Graphical User Interface) olarak tanımlanır. Windows form uygulamalarını, konsol uygulamalarından ayıran en önemli özelliği de budur. Windows Form uygulaması oluşturmak için Toolbox adı verilen araç kutusundan nesnel araçlar sürükle bırak yöntemi ile kolayca oluşturulabilir.
Windows Form uygulamaları, bilgisayar programları geliştirmek amacıyla kullanılmaktadır. Windows Forms Application seçeneği ile yeni bir windows uygulama penceresi açılarak program geliştirmeye başlanabilir. Ayrıca Windows Form uygulaması içinde grafiksel olarak daha gelişmiş çalışmalar yapmak da mümkün hale getirilmiştir. Daha güçlü grafiksel arayüzler için WPF ile uygulama geliştirmek gerekmektedir.
Windows form uygulamaları için veritabanı bağlantısı kurabilmek için kullanılan .Net kütüphanesinin adı Ado.Net olarak tanımlanmıştır. Bu konu üzerinde çalışmak isteyenlerin internet üzerinde Ado.Net olarak arama yapmaları gerekmektedir. Web Form Uygulaması (Asp.Net) Web form uygulamaları ise Ado.Net yerine ASP.Net sayfa yapısı ile çalışmaktadır. Web form uygulamaları temel olarak Windows Form Uygulaması gibi düşünülebilir. Fakat aralarında temel faklılıklar vardır. Web Form uygulamaları internet üzerinden erişilebilen form uygulamalarıdır. Bundan dolayı uygulamalar kişisel bilgisayar yerine web tarayıcısı ile çalışmaktadır.
ASP.Net kullanılarak oluşturulan bir web uygulaması içerisinde bir yada birden daha çok ASP.Net sayfası olabilir. Web formları, .Net kütüphanesinde özel etiketler içeren bir HTML sayfalarıdır. Web Formları, uzantısı .aspx olarak işlenir. Ayrıca her web form uygulamasında Web.config ile belirtilen bir yapılandırma dosyası vardır. Bu dosya XML biçimindedir ve web uygulamasının güvenlik, önbellek yönetimi gibi ilgili işlerin bilgilerini içerir.
Mobil Programlama
Windows Phone işletim sistemleri için uygulama geliştirme kısmıdır. Eğer Windows Phone için uygulama geliştirmek istiyorsanız bu kısmı kullananız gerekmektedir. Mobil Programlamaya başlamak istiyorsanız daha önce hazırladığımWindows Phone uygulaması geliştirme adlı yazıma bakabilirsiniz.
Web Servisleri
Kısaca veri iletimi için kullanılan sistemlerdir diyebiliriz. Biraz daha açacak olursam ise Evrensel veri transer metodu sayılan XML ve HTTP kuralları ile internet ağı ile dünyanın her hangi bir yerine veri taşıyan sistemlerdir. Web servisi işlemlerinde veriler bir başka kullanıcıya gönderildiği için güvenlik ve adresleme gibi konular oldukca önemlidir. Microsoft, C#’ta web servisleri kullanımını güvenli kılan pek çok işlemler yapmaktadır. Web servisleri ile ileri zamanlarda daha geniş bir yazı yazmayı planlamaktayım.
DLL yazma İlk olarak DLL nedir? diye soranlara DLL hakkında bilgi vereceğim. Sonrasında ise DLL’i açıklayacağım. DLL: Dinamic Link Library ifadesinin kısaltılmasıdır. yani dinamik kütüphaneler oluşturmak için kullandığımız yapıdır. Örnek verecek olursam C#’ta bir yapıyı sürekli kullanıyorsunuz böyle bir durumda hem kod sayfasında bir karmaşa olacak hem de sürekli aynı kodları yazmak zorunda kalacaksınız. İşte bu iki sorunu ortadan kaldırmak için DLL yazarsınız. DLL yazdıktan sonra uygulama sayfasında sürekli aynı kodları yazmak yerine yazılan DLL’i çağırarak ilgili kodları çalıştırırız.
Php ile Yönlendirme Dersi [b]Web yazılımda kaçınılmaz ihtiyaçlardan biri de yönlendirme. Bir işlemin olumlu veya olumsuz sonucunda, işleme göre bir sayfaya yönlendirme yapmamız gerekebilir.
Eğer bir süre sonra yönlendirme olmasını istersek benzer bi şekilde
Kod:
Kod:
header("Refresh:2; url=http://destek.mbtr.net/");
[b]Yukarıdaki betikte ise Refresh:2; ifadesinde saniye cinsinden ne zaman yönlendirmenin gerçekleşeceğini belirttik.[/b] PHP'de Array ( Dize ) Kullanımı
Dize, birden fazla değişken barındıran veri grubudur. Bu değişkenler aynı türdedir ve tek bir ana değişken içerisinde bulunurlar.
Şanslıyız ki bu modeller 4 tane, ya 400 tane olsaydı? Tek tek yazacak mıydık? Elbette hayır, çünkü dize kullanarak işimizi hızlandırabiliriz.
Sayısal Dizeler
Gruba dahil her değişkenin bir numara ile belirtildiği yapıdır. 2 şekilde yapılır. PHP'nin Kod Yapısı ve Değişkenler
[b]Basit PHP Kod Yapısı
PHP Scriptleri <?php ile başlar ve ?> ile biter. PHP Kodlarımız bu aralığa yazılır. Ayrıca çoğu sunucu <? ile başlamasına da destek verir. Buna karşın <?php olarak başlatmaya kendinizi alıştırmanız faydanıza olur.
Yukarıdaki örnekte görüldüğü üzere her php komut satırı noktalı virgül ( ile biter.
PHP'de yazı yazdırmanın iki basit kodu vardır: echo ve print, yukarıda echo ile yazı yazdırdık.
Açıklamaların Yazılımı
PHP Kodlarımız arasına satır ya da uzun bölümler halinde açıklama eklememiz mümkün. Bunlar php tarafından görülmez ve bize kolaylık sağlar:
PHP Kod:
Kod:
<html>
<body>
<?php
// Bu bir açıklama
/* Bu da
bir
açıklama */
?>
</body>[font=Ubuntu, sans-serif][/font]
</html>[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
PHP Değişkenleri
PHP'de kullanacağımız sayısal değer, kelime, dize gibi değişkenler dolar işareti ($) ile başlar. A-Z, a-z, 0-9 ve _ karakterlerinden oluşabilir.
PHP'de bir değişken önceden tanımlanmadan kullanılır. Örneğin bir değişken belirlediğimizde, o bu değeri ilk kez alıyordur. Buna bağlı türü, yapısı vb değişkenlik gösterebilir.
Bu durumun istisnası DEFINE( tanım, değer ) komutudur. Böylelikle $ işareti ile başlamayan değişmez bir değer oluşturmuş oluruz:
PHP Kod:
Kod:
<?php
define('PI', 3.14);
echo PI; // 3.14 yazdırır.
?>
PHP Switch Kodu
[b]Switch Kodunun Kullanımı
Bir değişkene bağlı koşullu işlem yaparken IF, ELSEIF, ELSEIF ... şeklinde uzunca bir komut kullanmak hem zamanımızı alır, hem php derleyiciyi yorar. Bu gibi durumlarda Switch kodu işimizi kolaylaştırır.
[/b] PHP Kod:
Kod:
<?php
$secim = 3;
switch( $secim )
{
case 1:
echo "Benim sayım 1!";
break;
case 2:
echo "Benim sayım 2!";
break;
case 3:
echo "Benim sayım 3!";
break;
default:
echo "Benim sayım 1, 2 veya 3 değil!";
}
?>
[font=Ubuntu, sans-serif][/font]
Yukarıdaki örnekte görüldüğü üzere $secim değişkeninin aldığı değere göre switch komutuyla işlem yapılmasını sağladık. Burada case 1:, değişkenin hangi değerde olması durumunda işlem yapacağını bize bildirir. break; ise switch'den çıkılması gerektiğini php ye anlatmamıza yarar. default: olarak belirtilen son satır ise hiçbir koşul sağlanmadığı takdirde yapılacak işi tanımlar.
Aşağıda başka bir örnekte string (alfasayısal) bir değişkenle Switch kullandık:
PHP Kod:
Kod:
<?php
$kimin = "Ali";
switch( $kimin )
{
case "Ali":
echo "Ali'nin";
break;
case "Hasan":
echo "Hasan'ın";
break;
default:
echo "Kimsenin değil!";
}
?>
PHP Operatörleri
[b]PHP - Operatörler [/b]
PHP Kod:
Kod:
$a = 1;
Yukarıda 'a' değişkenine 1 değerini atadık.
Not : ' = ' işareti atama operatörüdür.
Php de bunun dışında en çok kullanılan operatörler ;
Op. Açıklama Sonuç
+ Toplama 1 + 2 = 3
- Çıkarma 2 - 1 = 1
* Çarpma 2 * 2 = 4
/ Bölme 4 / 2 = 2
% Kalan 10 / 3 = 1
Basit örnekler vermek gerekirse ;
PHP Kod:
Kod:
[align=center]<?$a = 10;[/align]
[align=center]$b = 2;[/align]
[align=center]$c = 3;[/align]
[align=center]echo $a + $b;[/align]
[align=center]echo "<br>"; // Burada <br> html kodu olarak bir alt satira geç anlamindadir. // '//' ise daha önce gördügümüz gibi açiklama satiri açar.[/align]
[align=center]echo $a - $b;[/align]
[align=center]echo "<br>";[/align]
[align=center]echo $a * $b;[/align]
[align=center]echo "<br>";[/align]
[align=center]echo $a %$c;?>[/align][font=Ubuntu, sans-serif][/font]
[align=center][/align] [font=Ubuntu, sans-serif][/font]
Yukarıdaki satırların çıktısı ;
Alıntı: Nickli Kullanıcıdan Alıntı:12
8
20
1
Php de bu operatörler dışında birleşik atama operatöleride vardır. Aşağıda bu operatölerin bir listesini görebilirsiniz.
Not : Birleşik atama işaretlerini kısaca anlatmak gerekirse herhangi bir değişkenin değerini alıp belirten bir değer ile işle olarak tanımlayabiliriz.
Bu konuyu kolayca anladığınızı düşündüğüm için fazla uzatma gereği duymuyorum gelişmiş kodlar yazdıkça vede buradaki örnekleri iyice anladığınız zaman zaten uzatmama gerekçemi anlıyacaksınız.
Php de işlenmesi gereken bir diğer operatörler ise arttırma ve azaltma operaötleridir.
Bunların dışında php de karşılaştırma operatörleri vardır.
Op. Açıklama Örnek
== Eşitse $a == 2
!= Eşit Değilse $a != 2
=== Aynı İse $a === 2
< Küçükse $a < 2
> Büyükse $a > 2
<= Küçük veya Eşitse $a <= 2
>= Büyük veya Eşitse $a >=2
|| Veya doğru || yanlış = doğru
or Veya doğru || yanlış = doğru
&& Ve doğru && yanlış = yanlış
and Ve doğru and yanlış = yanlış
Xor Şartlı Veya ( Sadece sol veya sağ ) doğru Xor yanlış = doğru
! Değer yoksa !doğru = doğru
Fakat bu operatörler için şuan örnek vermek önemli bir konuyuda içine alıcağından bu operatörleri bahsi geçen önemli konuda ele almak daha doğru olacaktır. Php bölümünün başındada yazdığım gibi Php dili belli bir düzende ve herkesin anlıyabileceği bir şekilde ilerlemek zorundadır. Sabrınız ve ilginiz için teşekkür ederim.
Şimdi kısa bir özet yapalım.
1 - Php dilinde bir değere atama yapmak için ' = ' atama operatörü kullanılır.
2 - Birleşik atama operatörleri uygulanan değişkenin değerini alarak ve yine uygulanan birleşik operatördeki işlemi uyguladıktan sonra sonucu işleyen ve çıkaran operatörlerdir.
3 - Php de matematik işlem operatörlerinin dışında ayrıca karşılaştırma operatörleri vardır bunlar sonuçları kontrol etmemizi vs.. leri sağlarlar. enel Bakış
PHP'de alfasayısal yani içerisinde harf, sayı vb. barındıran değişkenlerin kullanımından ve bunlara özel işaret ve fonksiyonlardan bahsedelim.
1. Bir alfasayısal değeri belirtirken tırnak işareti kullanabildiğimiz gibi (') üst ayıraç da kullanabiliriz.
PHP Kod:
Kod:
<?php
$kelime = "Hatasız Kul Olmaz.";
$kelime = 'Hatasız Kul Olmaz.'; // Yukarıdakinin aynısı
echo $kelime;
?>
[font=Ubuntu, sans-serif][/font]
Bu kodu çalıştırsaydık, sunucu bize aşağıdakini gönderecekti:
Alıntı: Nickli Kullanıcıdan Alıntı:Hatasız Kul Olmaz.
2.Tırnak işareti kullandığımız string değerlerde değişkenleri bunların içerisinde kullanabilmekteyiz.
PHP Kod:
Kod:
<?php
$adet = 7;
$kelime = "$adet kedi beni $adet!";
echo $kelime;
?>
[font=Ubuntu, sans-serif][/font]
Bu kodu çalıştırsaydık, sunucu bize aşağıdakini gönderecekti:
Alıntı: Nickli Kullanıcıdan Alıntı:7 kedi beni 7!
3.Alfasayısal değeri belirtirken tırnak ve üst ayraç kullanımına dikkat etmek gerekir. Aşağıda hata verecek ve vermeyecek kullanımlar bir arada gösterilmiştir:
PHP Kod:
Kod:
<?php
$kelime = "İstanbul'dan kız mı alınır?"; // Doğru
$kelime = 'İstanbul'dan kız mı alınır?'; // Yanlış, doğrusu:
$kelime = 'İstanbul\'dan kız mı alınır?'; // Doğru
Görüldüğü üzere bir değişken hangi karakterle başladıysa, içerisinde yer alan bu tarz karakterler kaçış işareti ile (\) belirtilmelidir. Aksi takdirde hata verecektir.
Kelimeleri Birleştirme (.)
Sadece string değişkenlerde geçerli olarak değişkenler arası nokta işareti kullanarak kelimeler birleştirilebilir.
PHP Kod:
Kod:
<?php
$kelime1 = "Hatasız Kul Olmaz.";
$kelime2 = "Hatamla Sev Beni.";
Bu kodu çalıştırsaydık, sunucu bize aşağıdakini gönderecekti:
Alıntı: Nickli Kullanıcıdan Alıntı:5
PHP'nin Kurulumu
[b]Neye İhtiyacınız Var? [/b]
Eğer web siteniz zaten PHP destekliyorsa bu kısmı geçebilirsiniz. Bir sunucunun php desteğini anlamak için bir not defteri açın ve aşağıdakileri yazıp uzantısını php olarak kaydedin (örneğin index.php) ve sunucunuzda bu sayfayı açmayı deneyin:
Eğer tablolar içinde php özellikleri sıralanan bir sayfa açıldıysa PHP desteği vardır, eğer yoksa aşağıdaki adımları takip ederek olmasını sağlayabilirsiniz:
Evde bilgisayarınızda LOCALHOST (yerel sunucu) kurmak ve php yi çalışır hale getirmek için tüm kurulumları gerçekleştirin. Ayrıca XAMMP ve EasyPHP kurarak da kolaylıkla bahsedeceğimiz kodları çalıştırabilir ve denemeler yapabilirsiniz.
[b]UYARI: Windows 7'de PHP çalıştırmak için ZIP kurulumu yapmalısınız. EXE sorun çıkarabilir.[/b] PHP nedir?
PHP ile artık oturup her türlü işlevselliği sahip programlar yazabilirsiniz; yani PHP başlı başına uygulama alanları bulabilecek düzeye ulaşmıştır. Başka bir deyişle PHP ile oyun programından tutun veritabanı yönetimine kadar hemen her türlü programı yazabilirsiniz. Bizi bu kitapçıkta ilgilendiren tarafıyla PHP, Web Sunucu'ya bir takım işler yaptırmak için program yazma dilidir. Tıpkı CGI/Perl veya ASP ya da ColdFusion, Java (Javascript değil!) gibi! PHP kodları, oluşturacağımız HTML sayfalarında HTML
etiketlerinin arasında kendi özel ayracı içinde yazılır:
İster kişisel bilgisayarımızda, ister gerçek Internet ortamında olsun, bir Web Sunucu, ziyaretçinin (Internet istemci programının, Browser'ın) talep ettiği dosya adının uzatması olarak ".PHP," ".PHP2," ".PHP3," veya ".PHP4" görünce, kendine kendine, "Yine bana iş çıktı!" diye düşünür! Çünkü Web Server, uzatması ".htm" veya ".html" olan bir dosyayı, kendi sabit disklerinden birinde bulur ve zahmetsizce, ziyaretçinin bilgisayarına gönderir. Fakat, ".asp," .pl," ".cfm" gibi, ".PHP" uzatması, Web Sunucu'ya bu sayfayı olduğu gibi, alıp ziyaretçinin Browser'ına göndermek yerine, önce PHP yorumlayıcıyı çağırarak, ona teslim etmesi gerektiğini bildirir. PHP yorumlayıcısı (yani Windows ortamında PHP.exe veya 4'ncü sürümle gelen PHP4isapi.dll, Unix ve türevlerinde çalıştırılabilir PHP dosyası), kendisine teslim edilen bu belgede önce "<?PHP" ve "?>" ayraçları arasındaki PHP kodlarını seçerek alır ve gereği ne ise onu yapar. Bu ayraçların içinde kalan kodlar, bizim yapılmasını istediğimiz işlemin komutlarıdır. HTML ile yetinmeyip, PHP kullanmamızın sebebi, bu komutların HTML'in yapayacağı şeyleri yapmasıdır.
HTML'in yapamayacağı şeylerin başında, Web Sunucusu'nda yapılacak işler vardır. Sözgelimi HTML etiketlerini kullanarak, Web Sunucusu'ndaki bir veritabanı dosyasını açıp, içindeki verileri okuyamayız. HTML yoluyla Web Sunucusu'nun sabit disklerindeki düz yazı dosyalarını da okuyamayız ve bu disklere dosya yazamayız. HTML etiketleri ile Web ziyaretçimizden bilgi edinebilir ve bunları Sunucu'ya yollayabiliriz; ama o kadar! Bu bilgileri işe yarar şekle sokmak için bize Server'da çalışan bir program gerekir. Server'da çalışan program, EXE ve DLL veya JSP (Java Server Pages) gibi bir "gerçek program"; veya Perl, ASP ve PHP gibi Script diliyle yazılmış bir program olabilir. (Gerçek programları yazanlar, tabiî, sizin Script diliyle yazılmış programlara "program" demenize çok kızarlar! Ama bu Script pogramlarının program olmasını hiç engellemez.)
Ne diyorduk? Web Sunucu, ".PHP" uzatmasını görünce telaşa kapılır, bu dosyayı PHP yorumlayıcısına verir ve o da "<?PHP" ve "?>" ayraçları içindeki kodları icra eder, demiştik. Bu icraatın sonunda ortaya çıkan ürün eğer ziyaretçiye gönderilecekse, HTML etiketleri içinde gönderilir; yani ziyaretçi asla PHP kodlarını göremez. Kimi zaman PHP programımızın çalışması sonucu ortaya ziyaretçiye gönderilecek bir ürün çıkmaz; elde edilen sonuç ya başka bir programa (örneğin elektronik ileti gönderen bir Sendmail progamına) hammadde olarak verilir, ya da Server'da sabit diske yazılır. Fakat her durumda, Web ziyaretçimiz bizim PHP kodlarımızı göremez; bu Web sayfalarımızda PHP kodu kullanmamız halinde, sayfalarımızın Browser tarafından tanınması veya tanınmaması gibi bir durumun ortaya çıkmaması demektir. Ziyaretçi ne tür Browser kullanırsa kullansın, kendisine Sunucu'dan daima saf HTML kodu geleceği için, sayfalarımızı rahatça görebilecektir. Tabiî bir nokta var: Sayfalarımızda herhangi bir Browser'ın arızalı yorumladığı veya hiç yorumlayamadığı HTML etiketleri bulunabilir; ya da söz gelimi ziyaretçiye giden HTML'in içinde Browser'da çalıştırılacak olan başka Script kodları bulunabilir; ve Browser bu kodları anlamayabilir. Örneğin, HTML sayfanızda VBScript kodları kullanmış iseniz, Netscape ile sitenize bağlanmış olan kişiler bu kodun oluşturmasını istediğiniz etkiyi göremeyeceklerdir; çünkü Netscape VBScript anlamaz! PHP ile yazacağınız Web programlarının (eski deyimiyle "sayfaların") oluşturacağı HTML belgesinin Browser türleri ve sürümleri ile uyarlılığını sağlamak yine Web programcısı olarak sizin sorumluluğunuzdadır.
Özetlersek, PHP bir CGI programlama dilidir; bu dille, Web Sunucusu ile Web ziyaretçisi arasındaki buluşma noktası olan CGI'da bilgi alışverişi yapılabilir; Sunucu'da bulunan başka programlar çalıştırılabilir ve böylece Web sayfalarımıza HTML'in sınırlamalarının ötesinde hareket ve ziyaretçi ile etkileşme olanağı kazandırılabilir. PHP If-Else-Elseif Karar Yapıları
Koşullara Dayalı İşlemleri Gerçekleştirme Kod yazarken sıklıkla kullanılan koşul belirteçleri, duruma bağlı olarak işlemler yapmamıza olanak sağlar. Genel yapıları 3 şekildedir:
1. if ( koşul ) - koşul gerçekleşirse komut uygulanır.
2. if ( koşul ) else ... - koşul gerçekleşmez ise ELSE'de belirtilenler uygulanır.
3. if ( koşul ) elseif (koşul ) else ... - İlk koşul gerçekleşmezse alternatif koşullar elseif ile belirtilebilir.
Örnekler Aşağıdaki örnekte $islem 4 değerini alır, koşul cümlesi olarak yazdığımızda php bize bu yargının doğru olduğunu echo da belirttiğimiz cümle ile gösterir:
PHP Kod:
Kod:
<?php
$islem = 2 + 2;
if ( $islem == 4 ) {
echo "2 + 2, 4 eder!";
}
?>
NOT: Koşul gerçekleşirse yapılacaklar { ... } şeklinde belirtilir. Ancak yapılacak iş tek satırlık ise direkt altına yazarak işlem yaptırtabiliriz:
PHP ile değişken tanımlayıp, değişkenlere atadığımız değerleri rahatlıkla kullanabiliyoruz. Fakat, değişkenler script içinde sonradan rahatlıkla değiştirebilen yapılardır. Scriptin yapımına başlayıp sonradan değiştirelemeyen bir değer kullanmak istersek sabitler (constants) işimize yarayacaktır. Bu sabitleri PHP’nin define() fonksiyonu ile tanımlayabilmekteyiz.
Sabitleri tanımladıktan sonra, kullanımına baktığımız zaman, değişken kullanımından tek fark başına $ işareti koyulmamasıdır. $ işareti olmadan sadece sabit ismi yazılmaktadır. Kod:
[b]SQL injection denen method ile, veritabanınıza yetkisiz işlem yaptırılabilir. Bu yetkisiz işlemler ile, veritabanınızdaki bir tablo tamamen boşaltılabilir, veriler silinebilir veya veri eklenebilir, daha da kötüsü yazdığınız script bir yönetim paneline sahipse buraya izinsiz girişler olabilir. [/b]
SQL injection methodları farklılık gösterebilir, URL ile yapılabilir(GET), sitedeki formlar ile yapılabilir(POST). Temel mantığı ise, sizin yazdığınız SQL sorgularını safdışı bırakarak çalıştırılmak istenen sorguların çalıştırılmasıdır. Burada bu methodları tabi ki anlatmayacağım, bunun yerine PHP’de SQL injection’a karşı nasıl önlemler alabileceğimizi anlatacağım.
Basit bir SQL sorgumuz olsun, url ile gelen id’ye sahip makaleyi veritabanından seçelim.
PHP Kod:
Kod:
Kod:
$query = mysql_query("SELECT * FROM makaleler WHERE id=$_GET['id']", $baglanti);
Bu şekilde kullandığınızda, çok büyük bir tehlike içerisindesiniz demektir. Bu sorguyu güvenli hale getirmek için sprintf fonksiyonunu da kullanacağız(bunu sadece daha düzenli bir kod yazımı için kullanıyoruz) ve sorgumuzu aşağıdaki hale getireceğiz:
Kısacası, [b]URL veya POST ile gelen bütün verileri bir filtreden geçirerek, bu gelen verinin içinde bulunabilecek ‘ işaretlerini \’ haline getiriyoruz. Böylece bu gelen verilerdeki zararlı işaretler, sorgumuzun içine karışmıyor ve SQL injection ile sitemize zarar vermek isteyen kişiler avuçlarını yalıyorlar. [/b] PHP İle Ekrana Yazı Yazdırma
Merhaba arkadaşialr,php iile ekrana yazı yazdırmayı anlatcam sizlere olabildiğince basit ve net bir şekilde anlattım herkes rahatlıkla yapabilir.
PHP ile ekrana yazdırmak için üç yöntem kullanılır.
1-echo
2-print
3-printf
Ancak bu yöntemlerin en çok kullanılanı echo komutudur. Yazımızda biz üç komut içinde örneklere yer vereceğiz.
Komutlarda echo ve print komutu aynı şekilde yazılıyor ancak printf komutunda parantez kullanılıyor.
[b]Ancak her üç komuttada ekrana çıkacak olan yazı aynı şekilde çıkıyor.[/b] PHP mysql_connect() Fonksiyonu
PHP'yi mükemmel yapan bir özelliği de veritabanı bağlantılarıdır.Şimdi sizlere mysql_connect() fonksiyonunu ve kullanımını anlatacağım.
mysql_connect() fonksiyonu veritabanına bağlanmamıza yarar.Bu fonksiyonu kullanabilmek için öncelikle bir mysql veritabanımızın olması gerekir.Bunun için de cpanelden yeni bir mysql veritabanı oluşturmalıyız.
mysql_connect() fonksiyonun kullanımı şu şekildedir :
Host adı bölümüne mysql hostun adını yazıcağız.Bunu da cPanel'de bulabilirsiniz.mysql kullanıcı adını ve şifresini veritabanını oluştururken şeçiyoruz.
Bu fonksiyon genelde bu şekilde kullanılmaz.Bir değişkene aktarılır.Çünkü bu fonksiyondan çıkan sonucu veritabanı seçmede ve/ya bu fonksiyonun doğru çalışmaması durumunda yapılacak işlemleri seçerken kullanırız.
Bu fonksiyonun bir de kardeşi var.Eğer bir PHP script inceleme fırsatınız olduysa veya bir script kurulumunda config.php düzenlerken mutlaka görmüşsünüzdür.Evet doğru mysql_select_db() bu fonksiyonu da diğer dersimizde inceleyeceğiz.Bir de bu fonksiyondaki parametler de değişken olarak kullanılabilir.install.php şeklinde bir kurulum scripti yazarken bunu kullanabilirsiniz.Veya daha kolay olması açısından config.php'de script kullanıcılarına değişkenleri değiştirme kolaylığı sağlayabilirsiniz.Buna da örnek verelim.
Son bir not değişkenlere yazdığım değerler scripti localhost ta yazanlar için geçerlidir.Yani Easyphp gibi bir program ile kodluyorsanız bu değerlerin aynısını yapın. PHP mysql_select_db() Fonksiyonu
u yazıda sizlere "mysql_select_db()" fonksiyonunu anlatacağım.Önceki konuda sizlere mysql_connect() fonksiyonun kardeşi olarak tanıtmıştım bu fonksiyonu.O yüzden bu fonksiyonu kullanmak için önce MySql bağlantısı gerçekleştirmeliyiz.Bu da mysql_connect() ile yapılıyor.
PHP Kod:
Kod:
<?php
$link = mysql_connect('hostadi', 'mysql_kullaniciadi', 'mysql_sifre');
if (!$link) {
die('MySql Bağlantı Hatası : ' . mysql_error());
}
?>
Yukarıdaki kod ile MySql'e bağlandık.Şimdi hostun paneli aracığıyla yeni bir veritabanı oluşturalım.Veritabanına "veritabani" adını verdiğimizi varsayarsak veritabanına bağlanmak için şu kodu kullanmak yeterlidir.
PHP Kod:
Kod:
<?php
$vtsec = mysql_select_db('veritabani', $link);
if (!$db_selected) {
die ('Veritabanı Bağlantı Hatası : ' . mysql_error());
}
?>
Bu kod ile yukarıdakini birleştirirsek ;
PHP Kod:
Kod:
// MySql Bağlantısı
$link = mysql_connect('hostadi', 'mysql_kullaniciadi', 'mysql_sifre');
if (!$link) {
die('MySql Bağlantı Hatası : ' . mysql_error());
}
// Veritabanı Bağlantısı
$vtsec = mysql_select_db('veritabani', $link);
if (!$db_selected) {
die ('Veritabanı Bağlantı Hatası : ' . mysql_error());
}
?>
Burada dikkat etmemiz gereken bir şey var.mysql_select_db() fonksiyonunda ikinci parametreye $link yazdık.Yani $link değişkenindeki MySql'in veritabanını seçtik.Başka bir MySql bağlantısı için başka bir değişken yazmamız yeterlidir.Ancak yazmazsak program hata vermez.En son tanımlanan MySql'e bağlanır. PHP ile Beni Hatırla Yapmak
Merhaba bu dersimizde PHP kodları ile Beni Hatırla seçenek kutusu yapmayı öğreteceğim.Daha doğrusu direk kodları vereceğim.
PHP Kod:
Kod:
<?
$islem2=$_POST["islem2"];
// Burada eğer üyemiz doğru bilgiler ile giriş yapmış ise bilgilerini alıp session oluşturuyoruz ve Beni Hatırla seçeneğini seçili bırakıyoruz. Tabi paylaşacağım kodları siz kendi üye panelinize göre entegre etmelisiniz.
if (isset($_SESSION['uyeid'])){
$uyebilgisi=mysql_fetch_array(mysql_query("SELECT * FROM uyeler where uyeid='$uyeid'"));
$uyeismi=$uyebilgisi["uyead"];
if($islem2=="benikaydet"){
$benihatirlasec=$_POST["benihatirlasec"];
if($benihatirlasec=="1"){
$_SESSION["benihatirla"] = "1";
$_SESSION["ad2"] = "$ad";
}else{
$_SESSION["benihatirla"] = "";
$_SESSION["ad2"] = "";
}
}
if($benihatirla=="1"){
?>
<input type="checkbox" name="benihatirlasec" value="1" checked="checked" /> Beni hatırla[font=Ubuntu, sans-serif][/font]
<?
}else{
$_SESSION['ad2'] = null;
unset($_SESSION['ad2']);
$_SESSION['benihatirla'] = null;
unset($_SESSION['benihatirla']);
?>
<input type="checkbox" name="benihatirlasec" value="1" /> Beni hatırla[font=Ubuntu, sans-serif][/font]
<? } ?>
PHP ile Sayfa Şifreleme
Güvenlik amacıyla kullanıcı adı ve şifre girişli sayfalara ihtiyaç duyabiliriz. En basit haliyle aşağıdaki fonksiyonu kullanarak şifreli girişe sahip bir sayfa oluşturabiliriz.
PHP Kod:
Kod:
<?php
function SifreliGiris($kullanici,$sifre) {
if(empty($_SERVER['PHP_AUTH_USER']) || empty($_SERVER['PHP_AUTH_PW']) || $_SERVER['PHP_AUTH_USER'] != "$kullanici" || $_SERVER['PHP_AUTH_PW'] != "$sifre")
{
header('WWW-Authenticate: Basic realm="Lütfen kullanıcı adı ve şifreyi giriniz."');
die(header('HTTP/1.0 401 Unauthorized'));
}
}
//Giriş Bilgileri
$kullanici = 'mbtr';
$sifre = '1234';
PHP Site Meta Bilgilerini Çekme PHP4 ve PHP5′te bulunan get_meta_tags() fonksiyonu ile ise belirttiğimiz siteye ait belirli meta bilgilerini dizi oluşturacak şekilde çekebiliriz. Bu fonksiyonla sitenin keywords, description, author ve geo_position meta etiketlerini çekebiliriz.
Bu php dersimizde bir link olan resimi hostumuza kayıt etmeyi göreceğiz.Yani urlden resim yükleme yapacağız.Öncelikle mantığını anlatayım.
Verilen urleyi file_get_contents ile resmi oluşturan kaynak metni alıyoruz.Daha sonra aynı uzantıda kendi sitemizde bir dosya oluşturup bu aldığımız verileri file_put_contents ile içine yazıyoruz.Bu kadar basit.Kodlarımıza geçelim.
Kullandığımız kodlar;
Yazıyı ortalama
Yazıya renk ekleme
Yazının altını çizme
Yazıyı italik yapma
Yazıyı değiştirme(font ekleme)
H4 yazı boyutu ve bu yazıyı büyütme..
PHP Kod:
<h4 align="center"><i><u><font size="+3" color="Blue" face="comic sans ms">Html Öğreniyorum..</font></u></i></h4>
PHP (açılımı PHP: Hypertext Preprocessor) geniş bir kitle tarafından kullanılan, özellikle sanal yöreler üzerinde geliştirme için tasarlanmış HTML içine gömülebilen bir betik dilidir.
Tamam da, bu tam olarak ne anlama gelmektedir? Bir örnek:
Örnek 1 - Başlangıç olarak bir örnek
Kod:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Örnek</title>
</head>
<body>
<?php
echo "Merhaba, ben bir PHP betiğiyim!";
?>
</body>
</html>
Her şeyi. PHP temel olarak sunucu-taraflı programlamaya odaklanmıştır, bu nedenle CGI uygulamalarının yaptığı her şeyi, örneğin formdan veri toplama, devingen sayfa içeriği oluşturma, ya da çerez alıp gönderme gibi işlemleri yapabilirsiniz. Ancak PHP bunlardan çok daha fazlasını yapabilecek yetenektedir.
PHP betiklerinin kullanıldığı başlıca üç alan vardır.
Sunucu-taraflı programlama. Bu PHP için en geleneksel ve en temel olan alandır. Sunucu-taraflı programlama için üç şeye sahip olmanız gerekir. PHP çözümleyici (CGI ya da sunucu modülü), bir HTTP sunucusu ve bir tarayıcı. PHP programlamada deneyimliyseniz tüm bunları evinizdeki makinede çalıştırabilirsiniz. Yapılandırma ve Kurulum bölümünden bununla ilgili daha fazla bilgiye ulaşabilirsiniz. Komut satırı uygulamaları. Bir PHP uygulamasını komut satırından hiçbir sunucu ya da tarayıcı uygulama kullanmadan çalıştırabilirsiniz. Burada tek ihtiyacınız olan PHP çözümleyicidir. Bu tür kullanım cron üzerinden (Windows eşdeğeri görev yöneticisi) düzenli çalıştırılan işlemler ya da basit metin işleme görevleri için idealdir. PHP'nin komut satırında kullanımı bölümünde daha ayrıntılı bilgiye ulaşaşabilirsiniz. Masaüstü uygulamalarının yazımı. PHP için görsel uygulamaların yazılabileceği en iyi dil diyemeyiz, ancak PHP'yi iyi biliyorsanız ve PHP'nin birtakım ileri seviye özelliklerini kendi istemci taraflı uygulamalarınızda kullanmak istiyorsanız, PHP-GTK eklentisini bu tip programlar yazmak için kullanabilirsiniz. Bu şekilde platformdan bağımsız uygulamalar yazma şansına da kavuşacaksınız. PHP-GTK, PHP için bir eklentidir ve ana dağıtımda yer almaz. PHP-GTK ilginizi çektiyse, » kendi sitesini ziyaret edebilirsiniz. PHP bütün büyük işletim sistemlerinde, Linux, birçok Unix türevi (HP-UX, Solaris, OpenBSD vb.), Microsoft Windows, Mac OS X, RISC OS dahil olmak üzere çok çeşitli platformlarda çalışabilir. PHP benzer biçimde bugün yaygın biçimde kullanılan HTTP sunucularının büyük kısmını destekler. Bunlara Apache, IIS ve daha birçok sunucuyu örnek gösterebiliriz. Bunlara FastCGI PHP çalıştırılabilirini kullanan lighttpd ve nginx gibi sunucular da dahildir. PHP modül olarak kullanılabildiği gibi bir CGI işleyici olarak da çalıştırılabilir.
Sonuç olarak, PHP ile işletim sistemi ve HTTP sunucusu seçme özgürlüğüne sahipsiniz. Dahası, hangi programlama yöntemini kullanacağınıza, işlevsel yaklaşımı mı yoksa nesne yönelimli yaklaşımı mı yoksa her ikisini birden mi kullanacağınıza kendiniz karar verebilirsiniz.
PHP'nin yetenekleri yalnızca HTML çıktı üretmekle sınırlı değildir. PHP'nin yetenekleri arasında resim çıktısı üretebilme, PDF oluşturabilme ve hatta Flash filmleri oluşturabilme (libswf ve Ming kullanarak) bulunmaktadır. Aynı şekilde XHTML ya da XML gibi her tür metin tabanlı dosyayı oluşturabilmeniz mümkündür. PHP bu dosyaları özdevinimli olarak oluşturabilir ve ekrana yazdırmanın yanında sizin için dosya sisteminde saklayabilir, böylece devingen içeriğiniz için sunucu-taraflı bir depo sistemini kullanımınıza sunabilir.
PHP'nin en güçlü ve en çok üstünde durulan özelliklerinden biri, sahip olduğu geniş ve gelişmiş veritabanı desteğidir. Veritabanlarına özgü eklentilerden birini (örn. mysql) kullanarak veya PDO gibi bir soyutlama katmanı kullanarak PHP ile veritabanı bağlantılı site sayfaları oluşturmak ya da ODBC eklentisi üzerinden bu standardı destekleyen bir bağlantı açmak son derece basittir. Diğer veritabanları için cURL eklentisi veya soketler (CouchDB gibi) kullanılabilir.
PHP, farklı hizmetlerle LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (Windows için) ve daha sayısız protokol aracılığıyla iletişim kurabilecek bir altyapıya da sahiptir. Hazır modüllerin haricinde ham ağ soketleri açıp bu soketler üzerinden istediğiniz bütün protokollerle çalışabilirsiniz. PHP, WDDX üzerinden sanal olarak sanal doku üzerinde hangi dilde yazılmış olursa olsun tüm uygulamalarla haberleşebilir. Ayrıca Java nesnelerinin oluşturulabilmesi ve şeffaf biçimde PHP nesneleri olarak kullanılabilmeleri önemli bir diğer özelliktir.
PHP oldukça faydalı belge işleme özelliklerine sahiptir. Bu yelpaze Genişletilmiş POSIX ya da Perl düzenli ifade komutlarından (PCRE) XML dosyalarını okumaya ve çözümlemeye kadar uzanır. PHP tüm XML uzantılarını libxml2 tabanında tek bir standartta toplamış ve SimpleXML ile XMLReader ve XMLWriter desteğini de bünyesine katarak sunduğu imkan yelpazesini genişletmiştir.
Alfabetik olarak ve sınıflandırılarak belgelenmiş daha pek çok ilginç eklenti vardır. Bunlara ek olarak » XDebug gibi PHP kılavuzu içinde belgelenmiş ya da belgelenmemiş PECL eklentileri de mevcuttur.
Google, “googol” sözcüğünün üzerinde oynanmasıyla ortaya çıkmıştır. Edward Kasner adındaki Amerikalı matematikçinin yeğeni Milton Sorotta tarafından üretilmiş olan “googol” sözcüğü 1 ve onun ardından 100 sıfırın gelmesiyle oluşan rakamı belirten matematiksel bir terimdir. Google’ın bu terimi kullanması, şirketin dünyadaki tüm bilgiyi organize etme misyonunu yansıtır. Google dünyanın en büyük arama motorlarından birinin ve geliştiricisi olan şirketin adıdır. Stanford’da doktora yapan iki öğrenci, Larry Page ve Sergey Brin, Google’ı 1998'de 25 milyon dolar yasal sermaye ile kurdu. Şirketin GooglePlex denen merkez ofisi Kaliforniya’da bulunur ve tüm dünyada 7,000 üzerinde personel barındırır.