PHP’de ziyaretçilerden ve kullanıcılardan bilgi almak için formları kullanacağız. Formlar sayesinde kodları dışarıdaki verilere ve dinamik içeriklere açarız. Mesela giriş formları, e-mail gönderme formları, hesaplama formları, yönetim panelleri vesaire.

Ziyaretçilerin forma yazdıkları değerleri burada bahsettiğimiz $_GET, $_POST ve $_REQUEST global dizileri aracılığyla PHP’de bir değişkene atarız.

HTML formu ile PHP scriptimize göndereceğimiz her bir form elemanı PHP de gönderdiğimiz metod türüne göre $_GET ya da $_POST içinde bir eleman olur. Yani bizi dışarıdaki hayata bağlayan ve dışarıdan bilgi almamızı sağlayan köprülerimiz, pencerelerimiz $_GET ve $_POST global değişkenleridir.

HTML Form yapımı
PHP’ye verileri göndermek için önce bir arayüz tasarlamamız gerekiyor. Verilerin gönderileceği bir form tasarlamamız gerekiyor.

Bir HTML formunu taslak şeklinde çizelim:

buraya ise formun elemanları gelecek.

Temel form elemanları
Formun içerisine yerleştireceğimiz bir çok form elemanı mevcut. Metin alanları, parola alanları, çoklu onay kutucukları, radyo butonları, gönderme butonları, dosya seçim elemanları gibi çeşit çeşit form elemanı mevcuttur.

Her bir form elemanında “name” parametresi olmak zorundadır. Bu paramtre o elemanın ismini belirtir. Her form elemanının bu parametresine yazacağımız isim sayesinde PHP’de buluruz.

Aynı şekilde varsayılan form elemanı değerini belirlemek ya da radyo butonların değerini belirlemek içinde “value” parametresini kullanırız. Bu parametreye yazacağımız değerler PHP’de o elemanın değerini belirler.

İşte HTML form elemanları ve örnek kullanımları:

Eleman tipi Açıklaması Örnek kod Görünüm
text Metin kutusu
varsayılan değer
password Metin kutusu ile aynı fakat yazılanlar gösterilmez
••••••••••••••••
checkbox İşaretlemeli onay kutusu
radio Radyo butonlar Erkek, Kadın Erkek,
Kadın
file Dosya göndermek için dosya seçme elemanı
textarea Geniş metin alanı
varsayılan değeri
select, option Seçim listesi ve seçim listesinin seçenekleri
submit Formu gönderme butonu
Hemen bunlardan yeni bir form örneği oluşturup tablodaki örnekleri uygulamalı olarak gösterelim:

 

İsim:

Soyisim:

E-mail:

Cinsiyet:
Erkek
Kadın
Mesaj:

Formun görünütüsü:

İsim:

Soyisim:

E-mail:

Cinsiyet:
Erkek
Kadın
Mesaj:

Form gönderme metodları (GET ve POST) arasındaki farklar
İki tane metodumuz var, bunlar GET ve POST. İkiside formumuzdaki verileri PHP scriptimize göndermeye yarıyor. Tek farkları verileri gönderme yolları.

Eğer metod olarak GET’i seçersek formu gönderdiğimizde PHP dosyamızın adı index.php ise adres çubuğunda gönderdiğimiz değerler yazacaktır. Örneğin: http://www.site.com/index.php?isim=musa&cinsiyet=e&mesaj=selam şeklinde olacaktır.

POST seçtiğimizde ise GET’de olduğu gibi gönderdiğimiz veriler adres çubuğundan değilde browser üzerinden gönderilir. Yani seçtiğimzi PHP sayfasına içten gönderilir, aynı cookie ve sessionlar gibi.

Örnekler ile gösterelim:

index.php adında bir dosya oluşturalım ve içerisine aşağıdaki kodu ekleyelim.

1
echo $_GET[‘isim’];
Ve bu sayfaya index.php?isim=musa şeklinde girelim. Wamp kullanıyorsanız http://localhost/index.php?isim=musa şeklinde olacaktır. Sonuç olarak ekranda adres çubuğunda belirttiğimiz isim değeri yani musa yazar.

GET metodunu kullanmak için bir forma ihtiyaç yoktur fakat POST metodu yanlızca bir form ile gönderilir.

Bir örnek daha yapalım, bu sefer bir matematik işlemi yaptıralım:

carp.php adında bir dosya oluşturuyoruz ve aşağıdaki kodları yazıyoruz:

$sayi = $_GET[‘x’];
$sonuc = $sayi * 5;
echo $sonuc;
carp.php?x=10 şeklinde girdiğimizde ekranda 50 yazacaktır. Adres çubuğuna yazacağımız her x değerini 5 ile çarpıp ekrana yazacaktır.

Formu kontrol etmek
Bir formun verilerini işlemeden önce bize form ile veri gönderilip gönderilmediğini ya da gönderilen değerlerinin boş olup olmadığını kontrol etmemiz gerekiyor. Bunun içinde if ifadesini, isset() ve empty() fonksiyonunu kullanacağız.

İlk olarak basit bir form yapalım, dosyamızın adı giris.php olsun, buradan kontrol.php ye veri göndereceğiz:

 

Kullanıcı:

Şifre:


İlk koşulda “isset($_POST[‘kullanici’]) && isset($_POST[‘sifre’])” $_POST[‘kullanici’] ve $_POST[‘sifre’] diye bir değişken tanımlanmış mı diye sorduk. Eğer ikiside tanımlanmış ise bu ifadenin kod bloğuna yazdığımız ikinci bir koşul daha devreye giriyor ve bu sefer gönderilmiş olan verilerin boş mu olup olmadığına bakıyor.

İkinci koşulda “empty($kullanici) || empty($sifre)” $kullanici değişkeninin değeri boşsa ya da $sifre değişkeninin değeri boşsa diye bir koşul tanımlıyoruz. Eğer ikisinden birisinin içeriği boşsa bu sefer ekrana uyarı olarak Lütfen boş bırakmayın yazdırıyoruz. Eğer ikiside boş değilse bu seferde ekrana forma yazdığımız kullanıcı adı ve şifre çıkıyor.

Bu örnekte aynı zamanda iç içe if ifadesi kullanmayıda göstermiş olduk.

Form ile kullanıcı girişi
Bu konudan ayrılmadan önce basit bir örneklede kullanıcı girişi olayını göstermek istiyorum. Veritabanı ve fazla detaya girmeden session ve form kullanarak bir kullanıcı girişi olayı yapalım.

Yukarıdaki giris.php örneğindeki formu kullanalım. O form bize kullanici ve sifre adında iki veri gönderilmesini sağlıyordu. Bunun yanında biz bir kontrol ve bir de panel sayfası yapacağız.

Kontrol sayfasında gönderilen kullanıcı adı ve şifrenin bizde kayıtlı kullanıcı adı ve şifre ile aynı olup olmadığına bakacağız, eğer bizdekiler ile aynı ise bu değerleri session ile kaydedeceğiz sonrasında panel.php‘ye gönderip giren kişinin giriş yapıp yapmadığını kontrol edip ona göre kullanıcıya özel olan sayfayı göstereceğiz.

kontrol.php:


Burada bir önceki örnekteki form kontrol etme ifadelerinden sonra ekstra olarak bir gönderilenlerin tam olarak ne olduğunu da kontrol eden bir ifade ekledik. Eğer değerler boş değilse ve istediğimiz değerlere eşit ise session başlatıp kullanici ve sifre adında iki adet session oluşturduk. Bu oluşturduğumuz session değerlerinin içerisine yine şifremizi kaydettik. Bu bilgiler browser kapatılana kadar silinmeyeceği için bu süreç içinde kullanıcı oturum yapmış şekilde gözükecek ve panel.php’ye girdiğinde ona kullanıcı içeriğini gösterecektir.

panel.php:


Burada ise kontrol.php de gönderilen POST verilerini kontrol ettiğimiz gibi SESSION verilerini kontrol ettik. Sadece 1 kere giris.php üzerinden giriş yaptıktan sonra bir oturum boyunca panel.php sayfasında oturum açmış bir şekilde durabiliriz.

İşte genel olarak kullanıcı girişinin ve form kullanımının mantığı budur.
Form ile dosya yükleme olayını ise daha sonraki derslerde detaylı olarak anlatacağım.

Etiketler:

Reklam

Yorum Yaz