Web Tabanlı Programlama – Etkileşim ve Veri Yönetimi

6. Etkileşim ve Veri Yönetimi

Etkileşim denildiğinde, web programlama ile ilgili Javascript kodlama üzerinde durulmuştu. Veri yönetimi denildiğinde ise sunucu üzerinde çalışan (sunucu tabanlı) araçlar içerisinden Mysql’ in türevi olan MariaDB yönetimi ve sql kodlama üzerinde durmuştuk.

Web programlama yaparken web sitesi kaynakları ile veri tabanı yönetiminin birbirinden ayrıldığını hatırlayınız. Web sitemiz şu ana kadar öğrendiğiniz kodlar üzerinden hareketle HTML, CSS ve Javascript kodlarının bir birleşiminden meydana geliyordu. Bunun dışında veri yönetimi için phpMyAdmin paneli ile tanıtılmıştı. Fakat bu panel site kodlarından ayrılıyordu. Bu panel ile site kodlarını konuşturmak içinse sql kodlarının kullanılma gereksiniminden bahsedilmişti.

HTML, CSS ve Javascript kodları veri yönetimi yapmak yani sql kodlarını çalıştırmak için yeterli değildir. Bunun için sunucu tabanlı çalışan bir başka kod yapısına ihtiyaç vardır. Bu ihtiyacı PHP, ASP, CSharp vb. programlama dilleri karşılayabilir. Biz bu ünitede PHP üzerinde durulacak.

PHP (HYPERTEXT PREPROCESSOR)

PHP dinamik ve etkileşimli web sayfaları yapmak için sunucu tabanlı bir kodlama dilidir. “Hypertext Preprocessor” kelimelerinin kısaltılmasıdır. Yaygın olarak kullanılan, açık kaynak kodlama dilidir.

PHP dosyaları

• Metin, HTML, CSS, JavaScript ve PHP kodu içerebilir.

• PHP kodu sunucuda yürütülür ve sonuç tarayıcıya düz HTML olarak döndürülür.

• PHP dosyalarının uzantısı “.php” dir.

PHP,

• Dinamik sayfa içeriği üretebilir.

• Sunucudaki dosyaları oluşturabilir, açabilir, okuyabilir, yazabilir, silebilir ve kapatabilir.

• Form verilerini toplayabilir.

• Çerezleri gönderebilir ve alabilir.

• Veri tabanınızdaki verileri ekleyebilir, silebilir, verileri değiştirebilir.

• Veri şifreleyebilir.

PHP kodlarını tarayıcılar HTML, CSS ya da Javascriptte olduğu gibi tek başına çalıştıramaz. Bu yüzden PHP kodlarını yorumlayabilecek bir ara birime ihtiyaç vardır. Hatırlarsanız veri yönetimi için bir ara birim kurulumu (XAMPP) yapılmıştı. Bu ara birim, içerisinde hem veri yönetimi yapabileceğimiz phpMyAdmin panelini hem de PHP kodlarını çalıştırabileceğimiz Apache sunucusunu içerisinde barındırmaktadır. Eğer XAMPP kurulumunu bilgisayara yaptıysanız yeni bir kurulum yapmanıza gereksinim yoktur.

Php kodlama yaparken site kaynak dosyalarınızı, XAMPP kurulumunu yapmış olduğunuz dizin içerisinde (Varsayılan olarak C:\xampp\htdocs) saklamanız gerekir. Böylece Apache tarafından php kodlarınız yorumlanabilir. Basit bir örnek uygulama üzerinde testini yapalım. Notpad++ üzerinde aşağıdaki kodu yazın ve dosya uzantısı .php olacak şekilde kaydediniz.

rnek1 1

Daha sonra bu dosyayı C:\xampp\htdocs dizinine kopyalayınız. Aynı şekilde htdocs altında yeni bir klasör (Ör: phpsite) oluşturup bu klasör içerisine de kaydedebilirsiniz. Şimdi sıra tarayıcıdan bu dizine erişmeye geldi. http://localhost/test.php ya da http://localhost/phpsite/test.php adreslerini kullanarak ilk php örneğimizin çıktısına erişilebilir.

rnek1 2

Php kodlarını nasıl çalıştırabileceğinizi gördük şimdi php üzerinde daha detaylı duracağız.

DEĞİŞKENLER

PHP’de bir değişken tanımlanırken, $ işaretiyle başlanır ve sonrasında değişken adı yazılır.

• Değişken adı ise, kısa (x ve y gibi) veya daha açıklayıcı (yaş, arabaadi, toplam) olabilir.

• Değişken adı bir harf veya alt çizgi karakteriyle başlar. Bir sayı ile başlayamaz.

• Değişken adı yalnızca alfasayısal karakterler (A-z, 0-9) ve altçizgi ( _ ) içerebilir.

• Değişken adları büyük küçük harflere duyarlıdır. ($yas ve $YAS iki farklı değişkendir) Şimdi bu ölçütlere göre tanımlanmış bazı değişkenleri bir uygulama üzerinde inceleyiniz.

rnek2 1

rnek2 2

Bu örnekte herhangi bir etkileşim olmadığını fark etmiş olmalısınız. Web tarayıcısını açtığınızda doğrudan yukarıdaki ekranla karşılaştınız. Etkileşimli bir örnek tasarlayınız. Örneğin site kullanıcısından kendi doğum tarihini girmesini isteyiniz ve buna göre kullanıcının yaşını hesaplayınız. Bu ve benzer örnekler için kodlamaya geçmeden önce PHP Form Kullanımı ile ilgili bilgi sahibi olmanız gerekiyor.

FORM KULLANIMI

Daha önceden PHP nin sunucu tabanlı çalıştığını dile getirmiştik. Bunun anlamı, kullanıcı herhangi bir eyleme geçtiğinde diğer bir ifadeyle sayfa ile etkileşim kurduğunda (örneğin veri girdi ve butona bastı) her seferinde öncelikle sunucuya bizim bilgisayarımızdan bir istek gönderilir daha sonra kodlar sunucuda yorumlanır, HTML’ye dönüştürülür ve son olarak bizim bilgisayarımıza geri gönderilir. Bilgisayarımızdan sunucuya veri gönderilirken daha önceden de görmüş olduğumuz form elementleri kullanılır. Form elementlerine girilen değerler ise POST ya da GET yöntemleri ile taşınır. İlk olarak POST yöntemini ele alınız.

POST YÖNTEMİ

POST YÖNTEMİPOST YÖNTEMİ2POST YÖNTEMİ3

GET YÖNTEMİ

Bu yöntemle çalışırken POST yöntemi ile yazmış olduğunuz kodlar üzerinde aşağıdaki değişiklikleri yapmanız yeterli olacaktır.

get yöntemiget yöntemi2get yöntemi3get yöntemi örnek

HTML Kodları (dosyayukle.php)

HTML Kodları dosyayukle.php

CSS Kodları (dosyayukle.php)

CSS Kodları dosyayukle.php

PHP Kodları (dosyayukle.php)

PHP Kodları dosyayukle.php

Ekran Görüntüsü dosyayukle.phpEkran Görüntüsü dosyayukle.php2Ekran Görüntüsü dosyayukle.php3Ekran Görüntüsü dosyayukle.php4

CSS Kodları (dosyaal.php)

CSS Kodları dosyayukle.php  1

PHP Kodları (dosyaal.php)

Senaryoya göre dosyanın gönderilip gönderilmediği, istenen özelliklere (ör: 3MB dan küçük olması) uygun olup olmadığı kontrol edilecekti. Bu doğrultuda, genel kod algoritması aşağıdaki şekilde oluşturulabilir.

PHP Kodları dosyaal.php5

Bu algoritmada, dosyayukle.php sayfasına geri nasıl yönlendirme sağlanacağı ve dosyanın sunucuya kaydedilmesi ile ilgili işlemler gösterilmemiştir. Şimdi bu iki kodlama üzerinde duralım.

Php ile Sayfa Yönlendirme Kodu

header (“Location:yonlendirileceksayfa.php”);

Get Yöntemi ile Sayfa Yönlendirme

header (“Location:yonlendirileceksayfa.php?degiskenismi=deger”);

Dosyanın Sunucuya Kaydedilmesi

Dosyanın Sunucuya Kaydedilmesi

Şimdi bu kodları algoritmadaki yerlerine uygun şekilde yazalım. Daha sonra sayfamızı test edelim.

rnek4

PHP İLE VERİ YÖNETİMİ

PHP ile veri tabanına veri ekleyebileceğimizden, veri tabanından veri silebileceğimizden ve veri tabanındaki verileri değiştirebileceğimizden bahsedilmişti. Bir uygulama üzerinden php ile veri yönetiminin nasıl yapılabileceği üzerinde durunuz.

Uygulama

• Kullanıcı uyeol.php sayfasını ziyaret eder. Karşısına çıkan formu doldurur ve veri tabanına yazdırılması için gönderir.

• Site yöneticisi olan bir kişi, yönetim panelinden giriş yapar ve bu verileri görüntüler. Yanlış veri girişi yapmış olan kullanıcıların bilgilerini siler ya da günceller.

Bu senaryo için

• Veri tabanında kullanıci isimli bir tabloya,

• Kullanıcılar bilgilerini girebileceği bir uyeol.php sayfasına,

• Yöneticilerin giriş yapabileceği bir giriş.php sayfasına,

• Yöneticilerin giriş yaptıktan sonra verileri görebileceği, güncelleyebileceği ya da silebileceği bir yönetim.php sayfasına ihtiyaç var.

1-Veri tabanı Tablosunun Hazırlanması

I. Öncelikle “site” isimli bir veri tabanı oluşturunuz.

II. Daha sonra, kullanıcı ile ilgili “kullanıcı adı”, “şifresi”, “adı soyadı”, “e-postası”, “öz geçmişi”, “rolü” bilgilerini tutacak bir tablo tasarımı yapınız.

1 Veri tabanı Tablosunun Hazırlanması

2- Kullanıcıların Bilgilerini Girebileceği uyeol.php Sayfasının Hazırlanması
Veri tabanında kullanıcı ile ilgili bilgi tutabileceğimiz tablomuzu oluşturduk. Şimdi senaryomuzdaki sırayı takip ederek, resimdeki gibi bir uyeol.php sayfası oluşturalım. Öncelikle sayfanın tasarımını daha sonra ise, veritabanı bağlantısı ve veri ekleme işlemlerini yapacağız.

2 Kullanıcıların Bilgilerini Girebileceği uyeol.php Sayfasının Hazırlanması

CSS Kodu

CSS Kodu

Kullanılan Form Elementleri

Kullanılan Form Elementleri

Php Kodu

Daha önceden de bahsetmiş olduğum gibi, kodlamış olduğumuz web sayfası ile veri tabanı birbirinden farklı platformlardır. Biz kodlayıcı olarak önce bu platformaları birbiri ile konuşturmalıyız. Bunu yaparken php kodlarını kullanacağız. İşlem adımlarımız şekildeki gibidir.

Veritabanına Bağlan

Eğer bağlantı başarılı şekilde gerçekleştirildi ise, veri tabanı seçme işlemine geçilir. Senaryomuz gereği “site” isminde veri tabanı oluşturmuştuk.

Veritabanı Seç

Veritabanı Seç

Eğer veri tabanı seçme işleminde de herhangi bir sorunla karşılaşılmadı ise, artık sorgumuzu gönderebiliriz. Senaryomuz gereği kayıt ekleme işlemini yapacağız. Bu işlem için, kullanici tablosuna ekleyeceğimiz kayıtların değerlerini form elementlerinden gelen bilgilerle dolduracağız. Öncelikle bir veri ekleme sql cümleciğinin nasıl olduğunu hatırlayalım.

INSERT INTO tablo_adi (sutun1, sutun2,sutun3, …)
VALUES (‘sutun1_deger’, ‘sutun2_deger’, ‘sutun3_deger’, …);

Php ile bir sql cümleciğinin veritabanında çalıştırılmasını sağlayan kod ise mysql_query’ dir.

Sorgu Gönder

Sorgu Gönder

Bağlantıyı Kapat

Kayıt ekleme işlemimiz de bittiğine göre artık veri tabanı bağlantımızı kapatalım.

Bağlantıyı Kapat

uyeol.php sayfanızı ilk açtığınızda şekildeki gibi hatalar göreceksiniz. Bu hataları sayfayı ilk açtığımızda post edilen bir form elementi olmadığı için alıyoruz. Hatırlarsanız form elementlerinin verilerini çekerken sayfanın post edilme durumunu kontrol ediyorduk. Şimdi php kodunuzun başladığı yere sayfada post edilen bir form elementi olup olmadığını kontrol eden bir kontrol yapısı ekleyiniz. Sadece bir tane form elementini (Ör: “kadi” isimli form elementi) kontrol etmeniz yeterli olacaktır.

kadikadi2

Bunun dışında bir küçük problemle daha karşılaşmanız olasıdır. Kayıt ekleme işlemlerini yaptıktan sonra phpmyadmin panelinden kullanıcı tablonuza baktığınızda, Türkçe karakterlerin (ç,ğ,ı,ö,ş) gösteriminde hatalar olduğunu göreceksiniz. Bu türden bir hata olmaması için Php kodlarında mysql ile veri işlemleri yapmadan önce karakter kümesini UTF-8 olarak ayarlamalısınız. Bu işlemi veritabanı bağlantısını kurduktan sonra yapabilirsiniz.

bağlantı

Üye olma ekranının görünümü

ye olma ekranının görünümü

Phpmyadmin panelindeki kullanıcı tablosunun görünümü

Phpmyadmin panelindeki kullanıcı tablosunun görünümü

3. Yöneticilerin giriş yapabileceği giriş.php sayfasının hazırlanması

Bu sayfada yönetici olan bir kişinin kullanıcı adı ve şifresini girmesi istenecektir. Daha sonra, bu bilgiler veri tabanındaki bilgilerle karşılaştırılacaktır. Eğer bilgiler birbiri ile tutarlı ise, oturum başlatılıp yönetim.php sayfasına yönlendirme yapılacaktır.

3. Yöneticilerin giriş yapabileceği giriş.php sayfasının hazırlanması

Form Elementlerinin HTML Kodu

Form Elementlerinin HTML Kodu

PHP kodu

PHP koduPHP kodu2

Sayfayı test ettiğinizde, eğer tüm kodlarınız içerisinde herhangi bir sorunla karşılaşılırsa, giriş.php sayfasında size hata verilecek, karşılaşılmazsa yönetim.php sayfasına yönlendirileceksiniz.

4.Yöneticilerin giriş yaptıktan sonra verileri görebileceği, güncelleyebileceği ya da silebileceği yönetim.php sayfasının hazırlanması

Sayfamızın senaryomuzdaki gibi tüm işlemleri yapabilecek hale gelmesi için kodlama sırası aşağıdaki gibidir.

Yöneticilerin giriş yaptıktan sonra verileri görebileceği güncelleyebileceği ya da silebileceği

1. Oturum kontrolü

İlk olarak sayfayı sadece adı soyadı için oturum açılmış bir kullanıcı görebilir. Dolayısı ile oturum açılıp açılmadığı ile ilgili bir kontrolümüz olmalıdır.

1. Oturum kontrolü

2. Veri tabanı bağlantısı ve veri tabanı seçimi

2. Veri tabanı bağlantısı ve veri tabanı seçimi

3. Veri tabanı bağlantısının kapatılması

3. Veri tabanı bağlantısının kapatılması

4. Veri tabanındaki en güncel kayıtların sayfada gösterimi

Bu bölümde veri tabanındaki kullanıcı tablosundan tüm kayıtları çekerek ve bu kayıtları sayfada gösterebilecek bir kodlama yapacağız. Bunun için iki basamaklı bir kodlama yapacağız.

1. Veri tabanındaki kullanıcı tablosundan tüm kayıtların getirilmesi

4.Veri tabanındaki en güncel kayıtların sayfada gösterimi

2. Kayıtların sayfada gösterimi

2. Kayıtların sayfada gösterimi2. Kayıtların sayfada gösterimi2Ekran Görüntüsü

5. Veri güncelleme ve silme işlemleri

Bir önceki aşamada tablo içerisine verilerle birlikte düzenle ve silme linkleri oluşturmuştuk. Kodu daha detaylı incelediğimizde get yöntemi ile eylem ve kadi değişkenlerinin taşındığını göreceğiz. Dolayısı ile ilk olarak sayfamızda get yöntemi ile taşınan bu isimlerde veriler olup olmadığını kontrol etmemiz gerekmektedir. Bu bölümdeki kodlamamızın genel algoritması aşağıda gösterilmektedir.

5. Veri güncelleme ve silme işlemleri

Veri Güncelleme Formunun Hazırlanması

İlk olarak bir kaydın sütun verilerinde güncelleştirme yapabilmemiz için veri eklemede olduğu gibi, form öğelerini kullanmamız gerekmektedir. Fakat burada önemli bir ayrıntıdan bahsetmemiz gerekiyor. Veri ekleme için boş form ögelerine değerler yazıyorduk. Şimdi ise değerleri girilmiş verimiz üzerinde değişiklik yapmak istiyoruz. Dolayısı ile, güncelleme yapmak istediğimiz kaydın sütun değerlerini veri tabanından çekerek, form elemetleri içerisine yazmamız gerekmektedir.

Veri Güncelleme Formunun Hazırlanması

Ekran Görüntüsü3Ekran Görüntüsü4

Veri Güncelleme İşlemi

Oluşturmuş olduğumuz form üzerinde yönetici değişiklik yaptıktan sonra kaydet butonuna bastığında sayfa tekrar yönetim.php sayfasına post edilecektir. Dolayısı ile herhangi bir form elementinin post edilip edilmediğinin kontrolünden sonra artık veri güncelleme için gerekli olan sorguyu oluşturabiliriz.

Veri Güncelleme İşlemi

Veri güncelleme işlemi yapıldıktan sonra veri tabanındaki verilerin güncel hâli ekranda gösterilecektir. Örneğin “Myildiri” kullanıcı isimli kaydın mail adresi ve rolünü değiştirelim.

Veri Silme İşlemi

Veri Silme İşlemi 1

Veri silme işlemi yapıldıktan sonra veri tabanınındaki verilerin güncel hali ekranda gösterilecektir. Örneğin üç kaydımız vardı. “Myildiri” kullanıcı isimli veriyi sildiğimizde ekranda sadece iki kayıt gösterilmelidir.

Ekran Görüntüsü4 1

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir