Formlar



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ü