Ayrıntılı Konu Bilgileri
Sayfa BaşlığıKonu: Php İşbaşında
Mesaj SayısıMesaj Sayısı: 0 cevap var
OkumaGösterim: 735
Google Özel Arama

Gönderen Konu: Php İşbaşında  (Okunma sayısı 735 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

    sevdaligul

  • Administrator
  • *

  • İleti: 13121
  • Nerden: Konya
  • Rep: +6511/-0
  • Cinsiyet: Bay
  • GüLe SeVDaLı Bir GeNç
    • MSN Messenger - sevdaligul@gmail.com
    • Profili Görüntüle GüLe SeVDaLı BiR GeNçLiK
  • Çevrimdışı
Php İşbaşında
« : 27 Mart 2011, 14:30:18 »


 

PHP İşbaşında
PHP'de bir programı oluşturmaya ve programın akışını kontrol etmeye yetecek kadar bilgi sahibi olduk. Bu bölümde, bu bilgilerimizi uygulamaya koyacağız; ve bu arada halâ öğrenmemiz gereken bir iki noktaya ayrıntılı olarak değineceğiz. Özellikle metinlerin düzenlenmesi konusuna bakmamız ve ve Düzenli İfadeler (Regular Expressions) denen kavramla tanışmak ve bunun araçlarını öğrenmek zorundayız. PHP'nin işbaşında olması demek, PHP bilgimizi HTML sayfalarımızı PHP ile oluşturma, Form bilgilerini derleme, bir veritabanından veri alarak bunları sayfalarımızda kullanma ve ziyaretçinin vereceği bilgileri veritabanına işleyebilmek demektir. Şimdi kolları yeniden sıvayalım ve PHP'yi uygulamaya koyulalım.
Formlar
Web sunucusu ve istemcisi (Browser) arasındaki etkileşme ve alışverişin nasıl işlediğine ilişkin bilgilerimiz olduğunu varsayarak, sadece Internet'te Form, bir Web sayfasının ziyaretçiden veri alabildiği ve bunları Web sunucusuna ulaştırabildiği başlıca araç olduğunu hatırlayalım. Form, ziyaretçinin bizim istediğimiz bilgilerin yanı sıra ziyaretçinin bilgisayarından Web sunucusu bilgisayara, daha bir çok bilgiyi de beraberinde getirir. Web programcısı ve Web tasarımcısı olarak bu bilgileri bilmeye daima ihtiyacımız var. Söz gelimi, ziyaretçimizin Browser türünü ve sürümü belirleyerek, onu, uygun sayfaya yönlendirmekten tutun, ziyaretçiden istediğimiz bilgilerin Sunucu'ya ulaştığında nerede ve hangi değişkende tutulduğuna kadar, gerekli bir çok bilgi Sunucu çievre değişkenleri ve Sunucu değişkenleri dediğimiz dizilerde bulunur. Form tasarımına ve bir Form'un bilgilerini PHP ile yakalamaya ve işlemeye geçmeden önce Web Server'ı ve bize verdiği bilgileri daha yakından tanınamız yararlı olur.
Bunun için önce şu programı formlar01.php adıyla kaydedin ve çalıştırın:
<HTML>
<HEAD>
<TITLE>PHP'de Nesneler</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY>
<?php
foreach ($GLOBALS as $anahtar=>$deger ) {
   print ($anahtar . " =  " . $deger . "<br>");
   }
?>
</BODY>
</HTML>
Şimdi Browser penceresinde gördüğünüz bilgileri irdeleyelim; çünkü biraz sonra ziyaretçiden Form ile gelen verileri yakalarken ve işlerken bu bilgilerden yararlanacağız. (Bu programı kişisel bilgisayarınızda, kişisel Web sunucuda çalıştırıyorsanız, aynı programın gerçek bir Unix-tabanlı Web sunucuda (Apache) nasıl sonuç verdiğini Linklerin Görülmesine İzin Verilmiyor. Üye Ol ya da Giriş Yap adresinde görebilirsiniz. Sunucu'nun oluşturduğu diğer değişkenleri ise Linklerin Görülmesine İzin Verilmiyor. Üye Ol ya da Giriş Yap adresinde inceleyebilirsiniz.)
Bu programla PHP'nin daima varolan $GLOBALS dizisinin üyelerini görüntülüyoruz. $GLOBALS bir ilişkili-dizi-değişken, yani değişken değerlerinin endeks adı (anahtarı) bulunan bir dizi olduğu için, içerdiği değerlere adları ile ulaşabiliriz. Bu programda, $GLOBALS'ın anahtarlarını $anahtar, değerlerini ise $değer değişkenine yazdırıyoruz ve bir foreach döngüsü ile Brnowser penceresine gönderiyoruz. Programı çalıştırdığımız sisteme ve Web sunucu programına bağlı olmak üzere, ekranımızda bir çok değişken görebiliriz. Bunlar arasında bütün HTTP Server programları için ortak ve Web programcısı için önemli değişkenler şunlardır:
HTTP_ENV_VARS   HTTP Sunucu programın çalışmakta olan PHP dosyası için oluşturduğu çevre değişkenlerinin yazılı olduğu dizi değişken. Bu değişkenin içinde şu unsurlar bulunur:
   HOSTNAME: Sunucunun IP adresi
   SHELL: Unix sisteminde kullanılan Shell programı
   HOSTTYPE: Sunucunun adı ve sürünü
   OSTYPE: Sunucu'nun işletim sistemi
   HOME: Çalışan programın kök dizini
   PATH: Çalışan programın Sunucu'daki yolu
HTTP_SERVER_VARS   Sunucu programın çalışmakta olan PHP dosyasına sunduğu bazı bilgilerin bulunduğu dizi değişken. Bu değişkenin içinde şu unsurlar bulunur:
   PHP_SELF: Çalışan PHP programının bulunduğu dizin ve adı
   PATH_TRANSLATED: Çalışan PHP programının fiziksel yolu
HTTP_GET_VARS   Bir Form'dan GET metoduyla alınan bilgilerin anahtar=değer çiftleri olarak kaydedildiği dizi değişken
HTTP_POST_VARS   Bir Form'dan POST metoduyla alınan bilgilerin anahtar=değer çiftleri olarak kaydedildiği dizi değişken
HTTP_USER_AGENT   Ziyaretçinin bilgisayarında kurulu Internet Browser programı
QUERY_STRING   Form ile bilgi alırken    GET metodunu kullandığımız takdirde, Browser'ın göndereceği bilgilerin tutulduğu değişken
REMOTE_ADDR   Ziyaretçinin bilgisayarına ISS tarafından atanmış IP adresi
REQUEST_METHOD   Form ile gelen bilgilerin gönderildiği metod: GET veya POST
REQUEST_URI   O anda çalışmakta olan PHP dosyasının adı ve varsa bu ada eklenmiş Query_String
SCRIPT_FILENAME   O anda çalışmakta olan PHP programının dosya adı
SCRIPT_URI   O anda çalışmakta olan PHP programının tam URL adresi
SERVER_ADDR   Sunucunun IP adresi
SERVER_PROTOCOL   Sunucunun HTTP protokolünün sürümü
Form'dan GET Metoduyla Gelen Bilgiler
Ziyaretçilerimizin ne tür Browser kullandıklarını HTTP_USER_AGENT değişkeninin değerini alarak ve bu değerin içinde belirli anahtar kelimeleri aratarak bulabiliriz. Form ile gelen bilgiler, GET metodu ile alınıyorsa, hem QUERY_STRING, hem de HTTP_GET_VARS dizisine kaydolur. POST metoduyla aldığımız bilgileri HTTP_POST_VARS değişkenin değerleri arasında buluruz. Bunları öğrendiğimize göre, şimdi gerçekten bir HTML Form'u yapabil ve bununla ziyaretçimizden bilgi alabiliriz.
Basit bir HTML Form'u tasarlayalım. Aşağıdaki kodları formlar02.htm adılyla kaydedin:
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY>
<FORM ACTION="formlar02_isle.php" METHOD="GET">
Adınız, Soyadınız: <INPUT TYPE="TEXT" NAME="adi">
<br>
Elektronik Adresiniz: <INPUT TYPE=TEXT" NAME="adres">
<br>
<INPUT TYPE="SUBMIT" VALUE="Gönder Gitsin!"> <INPUT TYPE="RESET" VALUE="Vazgeç, Gönderme!"> 
</FORM>
</BODY>
</HTML>
Bu Form'la Web tasarım yarışmasına katılmayacağımıza göre, şimdilik sadece Web Sunucuya bilgi göndermekte kullanabiliriz. Form'un ACTION parametresine dikkat ederseniz, formlar02_isle.php adlı bir dosyanın adını göreceksiniz. Bu, ziyaretçinin Gönder düğmesini tıklamasıyla birlikte Form'un içerdiği bilgilerin METHOD parametresinde pazılı olan GET yöntemiyle Sunucu'da gönderileceği programın adıdır.  Bu sayfa, Browser'da şöyle bir görüntü verecektir:
<php00021.tif>
Şimdi bir an için ne olacağını düşünmeden, formu doldurun ve Gönder düğmesini tıklayın; ve Browser'ınızdaki hata mesajına aldırmadan, URL adres kutusunda ne yazdığını okuyun:
Linklerin Görülmesine İzin Verilmiyor. Üye Ol ya da Giriş Yap
Bu, HTTP protokolüne göre GET yoluyla bilgi göndermekte kullanılan yöntemin tam bir örneğidir: Browser, GET yoluyla bilgi göndereceği zaman, Form'daki bütün bilgileri URL-Encoding denen sistemle kodlar; Form'un alan adlarına o alanlara ziyaretçinin yazdığı bilgileri bir eşittir işaretiyle ekler; bu tür alan=girdi çiftlerinin arasına & (ve işareti) koyar ve gönderir. Web sunucu, bu bilgileri alınca, önce kendi oluşturduğu bazı değişkenlere (hem QUERY_STRING, hem de HTTP_GET_VARS dizisine) yazar ve sonra URL hanesinde adı yazılı olan programa (sayfaya) verir. Şimdi bizim bu bilgilerin gönderildiği PHP programını kendisine verilecek bu bilgileri işlemeye hazır şekilde yazmamız gerekir. Şu aşağıdaki kodları formlar02_isle.php adıyla kaydedin:
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY>
<?php
print ("Sayın  <b>$adi</b>\n\n");
print ("<p>Elektronik adresiniz: <b>$adres </b></p>\n\n");
?>
</BODY>
</HTML>
Şimdi, Browser'ınızda formlar02.htm sayfasını yeniden açın, Form'u doldurun ve gönderin. Açılacak sayfa, Form'un gönderecğii bilgileri alacak ve kendi görünteleyecektir.
<php00022.tif>
Fakat burada gördüğünüz gibi Sunucu'nun ziyaretçiden gelen bilgileri depoladığı dizileri kullanmadık. Bunu yaparken, GET ile gelen bilgiler kendisinde verildiğinde PHP programının alan adlarını değişken adı, bunların karşısında yazılı olan verileri de bu değişkenin değeri saymasından yararlandık. Fakat isteseydik, bu değişkenleri, Sunucu'nun oluşturduğu dizilerden de alabilirdik. Şimdi hem Form'umuzu geliştirelim; hem de bu kez okuma işini Sunucu dizisinden yapalım.
Önce Form'umuzu değiştirelim ve formlar03.htm adıyla kaydedelim:
<FORM ACTION="formlar03_isle.php" METHOD="GET">
Adınız, Soyadınız: <INPUT TYPE="TEXT" NAME="adi">
<BR>
Elektronik Adresiniz: <INPUT TYPE=TEXT" NAME="adres">
<BR>
Hangi notunuzu öğrenmek istiyorsunuz?
<BR>
<SELECT NAME="hangi_not">
<OPTION>--Lütfen seçiniz--
<OPTION>Sınav 1
<OPTION>Sınav 2
<OPTION>Ortalama
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Gönder Gitsin!"> <INPUT TYPE="RESET" VALUE="Vazgeç, Gönderme!"> 
</FORM>
Yeni Form'da yeni bir HTML unsuruna yer verdiğimizi ve SELECT..OPTION etiketi ile ziyaretçiye bir seçim imkanı verdiğimizi görüyorsunuz. Şimdi, bu Form'un göndereceği bilgileri işleyecek PHP programını yazalım. Aşağıdaki kodları formlar03_isle.php adıyla kaydedelim:
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY>
<?php
   foreach ($HTTP_GET_VARS as $anahtar=>$deger ) {
      print ("<b>$anahtar = $deger <br>\n");
   }
?>
</BODY>
</HTML>
Demiştik ki, Web sunucu, bir istemci Browser'dan kendisine GET yöntemiyle yollanan Form bilgilerini $HTTP_GET_VARS adlı dizi değişkende tutar. Yine daha önce görmüştük ki dizi değişkenlerin içinde ya sayı ya da isim olarak bir anahtar ve bu anahtarın temsil ettiği bir değer vardır. Burada, $HTTP_GET_VARS değişkeninin anahtar ve değerlerini $anahtar ve $deger değişkenlerine => operatörünün yardımıyla, bir foreach döngüsü içinde atıyoruz. Döngü kullanmamızın sebebi, dizi değişkenin içinde birden fazla anahtar=değer çifti bulunması ihtimali bulunması; döngü olarak da foreach kullanmamızın sebebi dizide kaç adet anahtar=değer çifti bulunduğunu bilmememizdir.
<php00023tif>
Form sayfasının gönderdiği bilgilerin nasıl derlenip toplanıp URL-koduyla Sunucuya gönderildiğini, Form'un Gönder düğmesini tıkladığımızda Browser'ın URL adres hanesinde ilen bilgilerin görülecektir. Buradaki örnekte bu bilgi (HTTP bölümünü  ve URL kodlarını kaldırarak):
adi=Şahika+Tabak&adres=stabak@somenet.com&hangi_not=Sınav+1
şeklindedir. Bu bilgi, sunucu tarafından $HTTP_GET_VARS dizi değişkeninin içine yazıldığına göre, daha önce gördüğümüz gibi dizi değişkenlerin anahtarlarını ve bu anahtarların temsil ettiği değerleri bir döngü içinde $anahtar ve $deger değişkenlerine atarsak, daha sonra bu değişkenlerin değerlerini Browser penceresine göndermemiz mümkün olur.
Aklımdaki sensin
Fikrimdeki Sen
Sen tekderdimsin
Gülüm Benim


Paylaş delicious Paylaş digg Paylaş facebook Paylaş furl Paylaş linkedin Paylaş myspace Paylaş reddit Paylaş stumble Paylaş technorati Paylaş twitter