Php de 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 http://www.mycgiserver.com/~ocal/formlar01.php adresinde görebilirsiniz. Sunucu’nun oluşturduğu diğer değişkenleri ise http://www.mycgiserver.com/~ocal/php.php 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ü