PHP

PHP Form İşlemleri ($_POST ve $_GET Kullanımı)

PHP’de dizilerin kullanımı başlıklı yazıyı okuduysanız. Artık HTML Form elemanları ile çalışmaya hazırsınız demektir.  HTML Form ve URL verilerini PHP tarafında yakalamak ve bunlar üzerinde işlemler yapmak mümkün.  HTML elemanlarını PHP tarafında yakalamak için süper global değişkenler kullanılır.  Aşağıda süper global değişkenler listesini vereceğim ancak bu yazımızda $_POST ve $_GET süper global değişkenlerini ele alacağız.

PHP Süper Global Değişkenler

$GLOBALS$_SERVER$_GET
$_POST$_FILES$_COOKIE
$_SESSION$_REQUEST$_ENV

PHP’de tüm değişkenlerde olduğu gibi süper global değişkenlerde $ sembolü ile başlar. PHP’de kullanılan süper küresel değişkenler(superglobals) bütün PHP sayfalarında önceden tanımlama yapılmaksızın kullanılır. Bu yazıda $_POST ve $_GET süper global değişkenlerini inceleyeceğiz.

$_POST Kullanımı

İstekte HTTP Content-Type olarak multipart/form-data veya application/x-www-form-urlencoded kullanıldığında METHOD POST yöntemi kullanılarak geçerli betiğe aktarılan ilşkisel değişken dizisidir.

Yukarıdaki yazıda ne demek istedik. Form method=”post” ise bize anahtar=>değer çiftlerinden oluşan bir $_POST dizisi döndürmektedir.

Örnek: Aşağıdaki index.php sayfasındanda deneme.php sayfasına post metodu ile  ad ve soyad adında iki tane veri gönderilmektedir(submit’in name’i yok).

deneme.php : Unutmayın! deneme.php sayfasını doğrudan çalıştırdığınızda her hangi bir veri post edilmeyeceği için ekrana hata verecektir. form elemanlarının olduğu sayfadan yönlenmesi gerekiyor.

$_POST değişkeninin ilişkisel bir dizi olduğunu daha önce söylemiştik. Dizinin anahtarlarına(burada ad ve soyad) ulaşarak ekrana ilgili anahtardaki değeri yazdırdık.

İstersek test için $_POST dizisini ekrana dökelim. Aşağıdaki örnek test amacıyla $_POST dizisini ekrana döker.

Ekran Çıktısı:

$_GET Kullanımı

URL değiştirgeleri (başka bir deyişle, sorgu dizesi) üzerinden geçerli betiğe aktarılan değişkenlerden oluşan bir ilişkisel dizi. Dizinin yalnızca GET isteklerinden değil, bir sorgu dizesindeki tüm isteklerden oluşturulduğunu unutmayın. Method GET yada URL sorgusundan gelen tüm verileri bu yöntemle ulaşabiliriz.

Örneklere bakalım.

Örnek: Yukarıdaki örneği get olarak değiştirelim.

index.php

deneme.php

Çıktı:

 

Örnek: Aynı şekilde  URL sorgularını da get yöntemi ile okuyabiliriz. Aşağıdaki linkten gönderilen verileri okuyalım.

deneme.php : ?gorno=67&ograd=Hüseyin şeklinde yazılan sorguyu okumak için $_GET değişkenini kullanırız.

Çıktı:

 

Form Verilerini Aynı Sayfada Okuma

Form verilerini aynı sayfada okumak için action yöntemini içini boş bırakmak yada $_SERVER[‘PHP_SELF’] ile mevcut sayfayı döndürebiliriz. $_SERVER PHP tarafından kullanılan süper küresel bir değişken olduğunu unutmayın. Merak etmeyin, iki yöntemle de nasıl örnek yapacağımızı inceleyeceğiz.

Sayfayı kendi içinde göndermek tek başına yeterli olmayacak. Sayfa submit edilip edilmediğini kontrol etmekte gerekiyor. isset() ile butonun tıklanıp, tıklanmadığını kontrol edebiliriz. Submit butonuna bir tane isim verip tıkladığımızda isset() ile butonu yakalayarak ekrana değişkenlerdeki verileri bastırabiliriz.

Örnek: action için boş bırakılarak yapma

Yukarıdaki örnekte “” içindeki {$_POST[“ad”]} yapısı dikkatinizi çekmiştir. Tırnaklar içindeki verileri ekrana yazdırmak için değişken adı yazılırken, ilişkisel(anahtar=>değer) çiftine sahip dizileri ekrana yazdırabilmek için tırnaklar içinde {} içine yazmak gerekir.

Örnek: action için <?=$_SERVER[‘PHP_SELF’]?> yapma

HTML Form ile Dizi olarak Verileri Gönderme

Form elemanları içinde bazın bir dizi aynı veriyi göndermek gerekebilir. Örneğin checkbox verilerini gönderirken dizi olarak göndermek isteyebiliriz.

Bu işlem için name değerini aynı verip name sonuna [] parantez koyarız.

Çıktı: iki tane hobi seçip gönder Listele butonuna tıkladığımızda aşağıdaki gibi bir görüntü elde edeceğiz.

Diğer yazılar

2 Yorum

Yorum yapmak için tıklayın