Bölüm 7

Formların Düzenlenmesi

Sayfa 1


Formlara Giriş

Formlara Genel Bakış

Formlar, bilgi vermek amacı ile başlayan Internet serüvenini, bilgi verebilme yeteneğine kavuşturan ve bununla bilgi toplumunun yolunu açan, çok değerli HTML öğeleridir. Formların geliştirilmesine kadar tek yönlü yürtülen iletişim, formların kullanıma girmesi ile birlikte iki yönlü olarak yürütülebilme olanağına kavuşmuş, bu şekilde kullanıcıların kendi özel ortamlarından her türlü veri bankasına ulaşıp bilgi vermeleri ve bilgi almaları olasılığı doğmuştur. Bu olanağın, çağdaş yaşamı şekillendirdiğini ve bu etkinin daha da artacağını söylemek yanlış olmaz. Bugün Internet ortamında bankacılık adeta klasik banka banka şubelerine üstünlük sağlamıştır. Aynı şekilde e-devlet, e-ticaret, Internet ortamında öğretim ve daha sayılmayacak kadar çok modern hizmet bu iki yönlü iletişimin sağladığı olanaklar ile ortaya çıkmıştır. Bugün laboratuvatuvarınıda çektiğiniz bir Infrared Spektrogramın ana merkeze iletilip değerlendirildikten sonra yeniden laboratuvarınızdaki ekrana yansıtılması kimseyi şaşırtmamaktadır. Açıkça görülüyor ki olanaklar sonsuzdur ama bu olanakların kullanılması için de yüksek bir bilgi düzeyi gereklidir. Bu bölümde, istemci ve sunucu bilgisayarlar arasında önemli bir iletişim yöntemi olan formları inceleyeceğiz. Kullanıcıların formlardan yararlanarak göderdikleri bilgiler sunucularda sınırsız olarak değerlendirilebilecek olduklarından form kontrollerinden sunuculara bilgi akışının yetkin bir şekilde sağlanabilmesi için kuramsal ve uygulamada çok iyi bilgi düzeyine ulaşmış olmak gerekir. Bu derslerin amacı da öğrencileri olabildiğince iyi yetiştirmektir.

 

Formlar ve İstemci Tarafı Programlama

 

İstemci tarafı DHTML etkileri, form nesneleri dışında HTML elementlerinin birçoğu ile sağlanabilir. Bir çok element fare tıklaması gibi etkilere, bir script programını çalıştırarak tepki verir. Bu etkiler sadece fare tıklaması, bir tuşa basılması, bir resmin üstüne odaklanılması gibi HTML DTD sinde tannımlanmış belirli standart olay (event) etkileridir. Bu etkilerle ancak önceden hazırlanmış olan programlar çalıştırılabilir. Form nesnelerinin bu işlemler için kullanımı ise, olaya inanılmaz bir iletişim derinliği sağlar ve Web sayfalarına tam bir programlama ortamı niteliği kazandırır. Bu kazanımın en büyük nedeni form nesneleri ile script programlarına veri sağlanması olanağının bulunmasıdır. Bu olanak, bir Web sayfasını bir Visual Basic Formuna eşdeğer bir programlama ortamı haline getirir, üstelik bu ortamda herşey ücretsiz ve yasaldır. Kullanıcı tarafı programlamada uygun tüm script dilleri kullanılabilir.

İstemci tarafı programlamada, iletişim olayı yoktur. Program HTML sayfasının <script> elementinin içeriği olarak veya yine aynı bilgisayarda bulunabilen bir dış program sayfası ile sağlanır. Eğer dış program dosyası bir Intranet veya Internet üzerinde başka bir adreste ise, iletişim sadece bu dış dosyanın bulunması için gerekir, yoksa tüm hesaplar yerel istemci bilgisayarı üzerinde yürütülür.

İstemci tarafı programlar, sunucu tarafı tam iletişimli programlar için bir ön filtreleme görevi de yapabilirler. Verilerin geçerliliği önce istemci tarafı programlarla kontrol edilir. Uygun olan veriler sunucuda değerlendirilmek üzere iletişimle sunucuya aktarılır. Uygun olmayan veriler, düzeltilmek üzere yeniden kullanıcı bilgisayarının form sayfasına geri döndürülür. Bu yöntem, form değerlendirmesinde yaygın olarak kullanılır.

İstemci tarafı script programlama dili olarak, ilk sırada JavaScript (ECMAScript) olmak üzere, VBScript, PerlScript script programlama dilleri kullanılabilir. Bunlardan sadece JavaScript belirli kıstlamalar ile hem IE hem de Netscape sınıfı belge çözümlerce desteklenmektedir. Diğerleri ise sadece IE tarafından desteklenebildiğinden genel kullanıma açık programlarda kullanılamamaktadırlar.

JavaScript programlama dili olağanüstü genişliği ve kullanım kolaylığı ile dikkat çekicidir. Bu dilin tamamı değil, fakat büyük bir kısmı tüm belge çözümleyiciler tarafından desteklenmektedir. Tamamı ile ücretsiz bu programlama ortamı, karmaşık problemlerin bile çözümü için yeterli olabilecek son derece gelişmiş olanaklar sağlar. Görüldüğü gibi kısmen destek genel sağladığı için, istemci tarafı script programlanmasının tek seçeneği JavaScript programlama dilir. Bu konuda, bu dilin sadece kısmen ortak olarak desteklendiğine, dikat edilmeli, ortak destek dışındaki programlama ifadelerindn kaçınılmalıdır.

Yine ücretsiz olan JAVA dili de çok gelişmiş bir programlama ortamıdır ve istemci tarafında bir script dili olarak değil <applet> ve <object> elementlerinden yararlanılarak bir programlama ortamı olarak kullanılabilir. Fakat Java aynı zamanda kullanıcıların özel bilgilerine de ulaşma yolları açabildiğinden, güvenlik açısından günümüzde kullanımı sınırlandırılmaktadır.

İstemci tarafında fazla bir script dili alternatifi yoktur. Microsoft'un geliştirdiği VBScript, Netscape ailesi kod çözücülerle çalışmadığından yaygınlık kazanmamıştır. Fakat bu script dili de son derece yetkin bir programlama ortamı sağlayabilmektedir. Özel gereksinmeler için bu programlama dilinin olanaklarından yararlanılması özellikle sağlık verilir. Yani, eğer bir Web paylaşımı yapılmayacaksa, kendi istemci bilgisayarımızda, VBscript ile programlama yapabilir ve rahatlıkla bu programları kendi bilgisayarımızda Internet Explorer ile açabiliriz. Bu programları kendi arkadaş grubumuza, sadece Internet Explorer ile açılması kaydı ile dağıtabiliriz. VBScript içeren bir HTML sayfası Web de paylaşıma açılacaksa, dosyanın sadece Internet Explorer de açılması uyarısı ile yayınlayabiliriz. VBScript, son derece güçlü bir programlama dilidir. Bu dilin gücünün algılanması için, son yıllarda Web' den dağılan birçok virüs programının VBScript ile yazılmış olduğunun bilinmesi yeterli olacaktır.

Yine istemci tarafında, sadece Internet Explorer tarfından desteklenen PerlScript script programlama dili, orijinal sunucu tarafı PERL programlama dilinin istemci tarafı versiyonudur. PerlScript programlama dili, genel sunucu tarafı PERL script dilinin tüm gücünü kendisinde toplamaktadır. Bu dilin sadece IE tarafından desteklenmesi aynen VBScript gibi büyük şansızlıktır. Fakat, yine aynen VBScript gibi her türlü özel kullanıma uygun bir genel amaçlı programlama dili işlevini yapabilmektedir.

Sonuç olarak, bugüne kadar fazla kullanılmamış bir alan olan istemci tarafı programlama ortamı, özellikle ücretsiz bir programlama ortamı arayanlar için çok kullanışlı ve yasal bir programlama ortamı olanağı sunmaktadır..

 

Formlar ve Sunucu Tarafı Programlama

 

Sunucu tarafı programlama form bilgilerinin değerlendirilmesi amacı ile yapılır. Sunucu tarafı programlar, çok sayıda kullanıcının verilerinin değerlendirildiği, genel olarak on-line alışveriş, anket, seçimler, nufus idaresi verileri gibi veri temeli çalışmalarıdır. Verilerin her işletim sistemi ve her belge çözümleyiciden tek bir programa akması ve sonuçların aynı genel ortamda yayınlanabilmeleri, sunucu tarafı programlara olağanüstü bir uygulama genişliği ve derinliği kazandırmiştir. Burada hesaplar sunucu üzerinde yapıldığından verilerin istemciden sunucuya, sonuçların da sunucudan istemciye uygun bir şekilde iletimi kritik bir işlem olarak ortaya çıkar. İletilen veriler ve alınan sonuçların karakter kodlaması , MIME bilgileri gibi bilgileri iletişim protokolları yardımı ile bilgisayarlar arasında aktarılır.

Sunucu tarafında çalışan script dilleri hem sayıca daha çoktur, hem de bunlar daha kapsamlı program dilleri niteliğindedirler. Burada biribiri yerine kullanılacak kapsamlı script dilleri arasında Perl script dili son derece geniş olanakları olan yetkin bir script dilidir. Perl dili biraz karmaşık olduğundan, bir Perl türevi olan PHP (Hipertext Preprocessor) son yıllarda kullanıma girmiştir. PHP ile ücretsiz MYSQL veri temeli dilinin birlikte kullanılabilmesi bu ikilinin yaygınlaşmasını sağlamıştır. Microsoft desteği ile ASP (Active Server Pages) programlama dili, ADO ve MSSQL desteği ile ve .NET integrasyonu ile bir başka geniş programlama alanını oluşturur. TCL, Python gibi daha başka diller yanında Java Server Pages (JSP) servletleri de sunucu tarafında kullanılan kapsamlı script programı dillerine örnektir.

 

Kontroller

 

Formlar bilgileri kontroller yardımı ile oluştururlar. Kontroller düğmeler, radyo düğmeleri, metin alanları gibi görsel etki yapan öğelerdir.

Kontroller, <form> elementi içeriği olarak ve kendibaşlarına kullanılabilirler. Kontroller, istemci tarafı programlaması için veri girişlerinin sağlanabilmesi amacı ile form elementi dışında kullanılırlar. Kontroller, <form> elementi içeriği olarak kullanıldıklarında, sunucu tarafına veri aktarımında bilgilerin toplanması görevini üstlenirler.

Her kontrolün bir kimliği (name veya id niteliği) vardır. Bir <form> elementi içinde bildirilen bir kontrolun kimliğinin kapsamı (name veya id nitelikleri), bildirildiği <form> elementi ile sınırlıdır.

Her kontrolün bir başlangıç değeri (veya varsayılan değeri) vardır. Başlangıç değeri genellikle kontrolun value niteliğinin değeridir. Fakat <textarea> elementinin başlangıç değeri kendi içeriği ile belirlenir. Kontrolun başlangıç değeri daima aynıdır. Eğer kontrol reset edilirse, daima orijinal başlangıç değerine geri döner. Eğer bir kontrolün belirli bir başlangıç değeri yoksa, reset olayından sonra alacağı değer belirsizdir.

Her kontrolün geçerli değeri vardır. Geçerli değer, başlangıç değerinin kullanıcı tarafından elle veya script programları ile değiştirildiği yeni değerdir.

Bir form, sunucuya sunulduğunda (submit) her kontrolun kimliği ile geçerli değeri birleştirilmeye çalışılır. Bu birleştirme başarılı olursa, kontrol başarılı kontrol karakteri kazanır. Ancak başarılı kontrollerin kimlik/değer çiftleri sunucuya iletilebilirler.

Bir form elementi içeriği dışındaki kontroller, başarılı kontrol olamazlar.

 

Kontrol Türleri

Düğmeler

 

HTML üç tür düğme oluşturma olanağı tanır. Bunlar :

Düğmelerin yaratılması için <button> veya <input> elementinden yararlanılabilir. <button> Elementi daha gösterişli düğmeler oluşturur.

Onay Kutuları

Onay kutuları, onaylandığında içinde bir işaret çizilen kare şeklinde kutulardır. Birden çok kutuya aynı isim verilirse, her kutu için ismin onaylı veya onaysız durumda değişik bir nitliğinin sunucuya iletilebilmesi olanağı sağlanır. Örnek olarak, üye isimli üç tane onay kutusu olsun, birinci kutu erkek olursa onaylanır, ikinci kutu lise mezunu ise onaylanır, üçüncü kutu üniversite mezunu ise onaylanır. Böylece bir üyenin cinsiyeti, lise mezunu olup olmadığı, üniversite mezunu olup olmadığı, sunucuya aktarılabilir. Onay kutularının oluşturulması için, <input> elementi kullanılır.

Radyo Düğmeleri

Radyo düğmeleri, onaylı veya onaysız değerlerini alabilen kontrollerdir. Radyo düğmeleri, varsayılan değer olarak "onaylı" değerindedir, fakat bu durum belge çözümleyicisine göre değiştiğinden kullanıcılar varsayılan değeri kontrol etmek durumundadır. Birden fazla radyo düğmesi aynı adı paylaşırsa, içlerinden sadece bir tanesi, "onaylı" olabilir diğerleri otomatik olarak "onaysız" durumundadır.

Radyo düğmeleri, <input> elementi ile oluşturulabilir.

Menüler <select> elementi ile yaratılır. Bu kontroller, kullanıcıya seçenekler sunan menüler oluşturur. Kullanıcılar <optgroup> ve <option> elementleri yardımı ile bu menülerden uygun değerleri seçerler.

Metin Girişi

<input> elementi tek satır metin girişi, <textarea> elementi çok satırlı metin girişi sağlarlar. Bu iki kontrolün geçerli değerleri içerdikleri metinlerdir.

Dosya Seçimi

<input> Elementi bir dosya seçimi kontrolu yaratabilir. Seçilen dosya, formla birlikte sunucuya aktarılır.

Gizlenmiş Kontroller

Gizlenmiş kontrollerin gizlilikle ilgisi yoktur. Bu kontroller sadece görüntülenmezler. Gizlenmiş kontroller, <input> elementi kullanımı ile oluşturulabilir. Gizlenmiş kontroller, şifreler gibi özel bilgilerin sunucuya iletilmesi için kullanılır.

Kontrol Nesneleri

Yeterince desteklenemeyen generik nesne üreticisi <object> veya yeterince desteklenen geleneksel resim görüntüleyicisi <img> elementinden yararlanılarak form nesnesi kontrolü görevini de üstlenebilen çeşitli görüntü nesneleri yaratılabilir.

Form Elementi Dışında Oluşturulan Kontroller

Form elementi dışında oluşturulan kontrolller, "başarılı" yani sunucuya bilgi iletebilir nitelikte kontroller olamazlar. Bu kontroller, kullanıcı arabirimlerinin tasarımında kullanılabilirler. Bu tip kontroller, istemci bilgisayarı ile kullanıcı arasında etkileşimli Web sayfaları oluşturmak için yararlı olurlar. Etkileşimli kullanıcı arayüzleri oluşturulması için Macromedia Flash gibi birçok özel program da kullanılabilmektedir. Burada hatırlanması gereken nokta, eğer üzel bir arayüz programı kullanılmışsa, belge çüzümleyicisinin, bu kodları deşifre etmek için plugin (eklenti) olarak adlandırılan bazı üzel programlara gereksinme duyacağıdır. Bunlar arasında özellikle Flash eklentisi belge çözümleyiciler için en yaygın olan indirilnesi kolay bir eklentidir.

 

Wednesday, October 5, 2005 17:48

validate in W3C !Valid HTML 4.01!