AÖF Soru Bankası

Web Sunucu ProgramlamaÜnite 7 Özeti

Veri Giriş İşlemleri

BİL206U-WEB SUNUCU PROGRAMLAMA

Ünite 7: Veri Giriş İşlemleri

Giriş

Web programcılığının bu kadar popüler hale gelmesinde rol oynayan önemli faktörlerden birisi veri giriş işlemleridir. Statik web’den dinamik web’e geçtiğimiz bu dönemde “kullanıcı-içerik” ve “kullanıcı-kullanıcı” etkileşimi veri girişi işlemini önemli kılmaktadır. Sosyal medyaya üyelik ve bu uygulamalarda yapılan (içerik veya yorum şeklindeki yazı, film, resim gibi) paylaşımlar, mobil veya masaüstü uygulamaları ile alışverişte önemli bir yer edinen ticari web siteleri, e-Okul gibi öğrenci bilgi sistemlerine yönelik okul uygulamaları, firmaların muhasebe, stok veya ticari faaliyete yönelik işlemleri, farklı amaçlara yönelik çoğu Web 2.0 araç/siteleri, e-Devlet uygulamaları vb. tüm web hizmetleri veri girişine dayalı uygulamalardır. Bu bağlamda veri giriş işlemi olmadan günümüz web ortamında yer bulmanın zor olduğu ifade edilebilir.

Veri ve Verinin Web Ortamına Aktarılması

Veri ve Çeşitleri

Veri, bilgilerin sunucu ortamında saklanıldığı kullanıcıdan/ortamlardan alınan girdileri ifade etmektedir. Ad, soyad, doğum tarihi, anne-baba adı, adres, telefon numarası, e-Posta hesabı, kimlik numarası, öğrenci numarası gibi tanımlayıcı her türlü bilgi veri olarak ilk akla gelenlerdir.

PHP türündeki sunucu tabanlı programlama dilleri sunucuya yüklendikten sonra tüm işlev sunucu içinde gerçekleştirilir. İstemci bilgisayardan sunucuya gelen veri ise artık kullanıcıdan çıkmıştır. Sunucu içerisinde gelen adımlara göre farklı bir bilgisayarda programlama dilleri kurallarına göre süreçler yönetilmektedir. Bu açıdan değişken kavramı ortaya çıkmaktadır. Değişkenler ile gerekli işlemler yapılarak istenirse sunucuya cevap olarak yönlendirilebilir. Bu durumda PHP doğası gereği tekrar HTML olarak istemci bilgisayara cevap göndermektedir ve sunucu değişkeni tekrar HTML’nin anlayacağı betiklere dönüştürmektedir. Bu nedenle çalıştırılan bir PHP sayfasının kaynağı görüntülenecek olursa PHP kodları yerine HTML kodları görünecektir. Diğer yandan MYSQL, ORACLE, GOOGLE FIREBASE gibi veri tabanlarında verilerin depolanması istenirse, bu durumda farklı bir dünya devreye girmektedir. Her veritabanı kendine gelen veriyi, kendi kuralları ile işlemektedir. Bu açıdan web programlamada üç farklı dünya söz konusudur ve programlama sürecindeki konuma ve gerçekleştirilen işlemlere göre farklı veri türlerinden söz edilebilir.

Veri girişinde en çok kullanılan veri türünün metin türü olduğu ifade edilebilir. Üzerinde matematiksel bir işlem yapılması mantıken hatalı olan veriler, metin veri tipinde değerlendirilebilir. Ad-soyad, adres, yorum gibi işlemler için kullanılan verilerin çoğu metin türündedir. En çok kullanılan diğer bir veri tipi ise sayısal veri tipidir. Bu veri tipleri az önceki verilen örneklerin tam tersi olarak üzerinde işlem yapılması mantıken hatalı olmayan verileri saklamak amacıyla kullanılırlar. Örneğin bir ürünün fiyatı veya bir kimsenin aldığı maaş, bir öğrencinin notu, bir kişinin boy

uzunluğu gibi üzerinde işlem yapılabilecek veriler olarak nitelendirilebilir. Veri türü olarak kullanılacak bir diğer veri tipi ise boolean tarzı veri tipidir. Bu veri tipinin program içi kontrolde etkin olarak kullanım potansiyeli bulunmaktadır. Programcı kullanıcıya yönelik farklı senaryolar için boolean veri tipi ile geri planda istediği kontrollerini yapabilmektedir. Bunların yanı sıra class tipi veri, sabit tanımlama, diziler gibi veri türleri de bulunmaktadır.

Web ortamında PHP ile veritabanı uygulaması gerçekleştirecek bir kişi için; form nesnesi olarak, PHP değişkeni olarak ve veritabanı (MYSQL) olarak üç tip veri bilgisi gerekmektedir. Form nesnesi olarak veri tipleri olarak; text, number, password, checkbox, radio, hidden, color, date, time, datetime-local, email, file, image, tel, url, submit, button, reset vb. kullanılmaktadır. PHP değişkeni olarak veri tipleri; string, integer, float, boolean’dır. Veritabanı (MYSQL) olarak veri tipleri; int, tinyint, smallint, medıumınt, bigint, decimal, float, double, char, vharchar, text, date, boolean vb. kullanılmaktadır.

Form Tanımlama ve Form Verileri

Formlar bir html etiketidir. Temel görevi metin, sayı, e-Posta, şifre, onay kutuları, radyo düğmeleri, butonlar gibi ögeler ile kullanıcıdan veri girişini sağlamaktır. Bu yönü ile web ortamında kullanıcı-içerik etkileşimi formlar aracılığı ile sağlanır. Kullanıcıdan alınan veriler hangi programlama dili kullanılacaksa, o programlama dili yazım kuralları çerçevesinde ama çoğunlukla benzer yöntemler ile programa dahil edilir ve istenilen işlemler yapılır. Bir başka deyişle PHP gibi sunucu tabanlı programlama dilleri verileri HTML ortamından formlar aracılığı ile çekmekte ve programcının talepleri doğrultusunda işlemektedir.

Form gönderim yöntemi olarak GET ve POST metotları kullanılmaktadır. Bunların hangisinin tercih edileceği programcının bilgi seviyesine, sitenin amacına, güvenlik seçeneklerinin önemine göre değişmektedir. Başlangıç seviyesinde GET metodu aşamaları tercih edilirken, ileri düzey kullanımlarda POST metodunun kullanılması önerilmektedir.

Form Elementleri ve Parametreler

Veri girişinde form nesneleri için en çok kullanılan form etiketi input’ur. Input’un en çok kullanılan parametresi name ve type’dır. Bilgi girişi için açılacak kutunun nasıl bir reaksiyon göstermesi gerektiği type tagi ile ayarlanmaktadır. Name ise değişkenin yani kutuya yazılacak bilginin karşıya hangi değişken ile aktarılacağını göstermektedir. Input elementinde en sık kullanılan type değerleri ve görevi aşağıda kısaca açıklanmıştır.

• text: Tek satırlık bir metin (ad, soyad vb.) giriş alanı tanımlar. • number: Tek satırlık sayısal bir giriş alanı (not, maaş vb.) tanımlar. • password: Girilen metni şifreli (*****) şeklinde gösterir. • email: e-Posta girilmesinde kullanılırken aynı zamanda e-Postanın geçerliliğini kontrol eder.


• radio: Tek bir seçenek seçilebilen (cinsiyet, sınıf, okul türü vb.) seçimde kullanılır. • checkbox: Birden fazla yapılabilecek (sevilen film, müzik türleri vb.) seçimlerde kullanılır. • hidden: Formun submit edilmesi durumunda gizil bir değişken tanımlar. • date: Doğum tarihi gibi tarihlerin girilmesinde takvim seçeneğini açar. • color: Renk seçimine yönelik tercih için renk paletini açar. • tel: Telefon numarası girişlerinde kullanılırken numaranın geçerliğini de kontrol eder. • textera: Adres bilgisi, şikâyet konusu gibi çoklu satıra dayalı veri girişinde kullanılır. • submit: Formun onayını yani action’daki adrese gönderimini sağlar. • reset: Submittin tamamlayıcısı olup, submit için doldurulan inputların içini sıfırlar. • button: Tıklanabilir buton sunar ve onclick gibi eventler sayesinde Javascript dahil site içi farklı etkileşim fırsatları sunar.

Bunların yanı sıra veri girişini düzenleyen ve form nesnesine göre farklılık gösteren type, placeholder, value, required, min, max, size, maxlenght, readonly, disabled ve autocomplete gibi çok sayıda parametre bulunmaktadır. Bu parametreler ve görevleri şu şekilde sıralanabilir:

• type: En çok kullanılan input parametresidir. Hangi veri türünde giriş olacağı bu parametre ile ayarlanır. Örneğin ˂input type=”email”name=”eposta”˃ submit yapılması durumunda girilen metnin eposta olup olmadığı da kontrol edilmektedir. Geçersiz ise kullanıcıya giriş esnasında uyarı verilmektedir. • Placeholder: Input ile oluşturulan metin kutusunun içinde default bilgi gelmesi sağlanır. Ancak imleç ile metin kutusuna tıklanması durumunda otomatik olarak yazılan kaybolmaktadır. • Value: placeholder gibi metin kutusu içerisinde değer aktarmak için kullanılır. Metin kutusuna tıklanmasında veri kaybolmaz ancak delete veya backspace tuşları ile silinebilir. Genellikle daha önce girilen bir değişkene ait değerin alınmasında kullanılır. Bunun amacı üyelik gibi bir işlemde yanlış bir değer girilmesi durumunda, tüm formun yeniden doldurulması yerine girilen değerlerin tekrar bu bölüme getirilmesidir. • required: Doğrudan required şeklinde input satırına eklenen bu parametre ilgili metin kutusuna değer girilmemesi durumunda formun gönderilmesine izin verilmez. * ile zorunlu olan alanlarda, tüm alınması istenilen zorunlu bilgilerde input kısmına required yazılarak bu işlem kolaylıkla sağlanabilir. • min ve max: Sayısal ve tarihsel verilerin sınır aralığı tanımlanmasında kullanılır.

• size: input ile ekranda gösterilecek metin veya sayı miktarını gösterir. Bir başka ifade ile metin uzunluğunun ekranda ne kadar uzunlukta olması (genişliği) şeklinde de yorumlanabilir. Ancak bu içine yazılan karakter sınırı anlamına gelmez. • maxlenght: Size parametresi metin kutusunun genişliğini ifade ederken, maxlength kaç karakter uzunluğunda girilebileceğini belirtir. • readonly: Inputta hangi tipte yer alırsa alsın bu parametrenin kullanılması durumunda veri girişi almak yerine input içerisinde sadece verilerin görüntülenmesi sağlanabilir. • disabled: Readonly parametresine çok benzer. Metin kutusu gri hale gelir ve içinde değer görünür. Ancak readonly kullanımında gönder butonuna basılması durumunda veri gönderilirken, disabled kullanımında ise formla birlikte değer gönderilmemektedir. Disabled veri tabanından bilgi çekilip sadece gösterilmesi istenilen, verinin bozulması istenilmeyen durumlarda kullanılabilir. • autocomplete: Değer olarak on veya off değerlerini alır. On atanması durumunda metin kutusu içerisine daha önce girilmiş olan değerler listelenir ve kullanıcı doğrudan bunlardan tıklayarak giriş yapabilir. Off olması durumunda ise bu işlem iptal edilecek, her defasında yeni veri girişi yapılacaktır.

Bu parametreler haricinde özellikle html5 ile birlikte gelen multiple, pattern, step gibi farklı parametrelerde bulunmaktadır.

HTML Link Etiketi ile Veri Girişi ve Aktarımı

HTML ortamında form haricinde veri göndermek için kullanılabilecek yöntemlerden birisi de linklerdir. Linkler resim ve yazıya tıklama özelliği kazandıran <a href> </a> etiketi ile kullanılmaktadır. <a> link </a> etiketleri arasında yer alan link eğer bir yazı ise sayfada bu yazının tıklanabilir olduğu mavi renkli ve altı çizili olarak vurgulu hale getirmektedir. Href parametresi hangi siteye gideceğini ifade ederken, href= “iletişim.php” şeklinde kullanılmaktadır. Ancak veri gönderimi açısından ele alındığında veri gönderiminde ? ve & karakterleri devreye girmektedir. “href=iletiş[email protected]&mesaj=sistemi kullananlar için temel gereksinimler” şeklinde veri gönderimi gerçekleşmektedir. “e-Posta” ve “mesaj” değişkenlerken, =’den sonraki ifadeler ise gönderilen değerlerdir. & işareti ise ve bağlacı olup, birden fazla değişkenin gönderilmesi bu işaretle yapılmaktadır. Href ile link kullanarak veri gönderimi, gönderim yöntemi açısından GET’e daha yakın olup tarayıcı adres çubuğunda veriler görünmektedir. Site ve veri güvenliği açısından programcılar tarafından farklı kullanıcıların özellikle üye id gibi özel bilgilere ulaşmaları istenmez. Bu nedenle <a href> önemli bir veri gönderim yöntemi olmasına karşın, özel bilgilerin aktarılmasında SESSION gibi gizil veri gönderim yöntemleri daha çok tercih edilmektedir.


SESSION ile Veri Girişi ve Aktarımı

SESSION kullanımında ilk akla gelen kavram “oturum açma” işlemi olarak düşünülmektedir. Ancak SESSION gerek oturum açma işlemi, gerekse diğer süreç işlemlerinde sayfalar arasında gizil şekilde veri gönderme amacıyla kullanılabilecek bir yöntemdir. Veri gönderim yöntemi açısından formların GET metoduna benzerken, SESSION formun POST metoduna daha yakındır. Bu nedenle verinin daha gizil gönderildiği ve güvenliğin sağlandığı söylenebilir. Bir başka deyişle tarayıcıda gönderilen veri görünmemektedir. SESSION’lar sunucu bilgisayarda oluşturulur. Genellikle üye girişi ile kimin sisteme giriş yaptığı bilgisi gönderilmekte diğer tüm sayfalarda bu bilgiye ulaşılabilmektedir. Diğer yandan üye “id” gibi bir işlem yerine sepete ekleme vs. gibi işlemlerde de anlık, istenilen bir verinin gönderilmesi de SESSION kullanımında mümkündür.

Bu ünitenin sorularını uygulamada çözŞıklar, doğru cevaplar ve süreli sınav modu AÖF Soru Bankası uygulamasında