PHP ile Form Değişkenlerine Erişim
PHP scriptlerimizin içinde oluşturduğumuz form alanlarımızın her birine form alan adıyla ulaşabiliriz. Kullandığımız PHP sürümüne ve ayarlarına bağlı olarak 3 şekilde form verilerine ulaşabiliriz. Örneğin “eposta” ismini taşıyan bir form alanımız olsun ve bu alanı post metoduyla gonder.php sayfasına gönderelim. Bu form verisini 3 şekilde elde edebiliriz. Bunlar;
< ?PHP echo $eposta; //model 1 echo '<br />'; echo $_POST['eposta']; //model 2 echo '<br />'; echo $HTTP_POST_VARS['eposta']; //model 3 ?>
Model 1′i kullanabilmek için php.ini konfigürasyon dosyasında register_globals parametresinin açık (On) olması gerekir. PHP 4 sürümünden önceki sürümlerde bu parametre default olarak açık durumdaydı. Fakat sonraki sürümlerde güvenlik sebepleriyle default olarak kapalı durumda gelmektedir ve şuan itibari ile pek tavsiye edilmeyen yöntemdir.
Model 2, şu anda herkes tarafından tavsiye edilen yöntemdir. Ancak PHP 4 öncesi versiyonlarda çalışmamaktadır.
Model 3, en uzun şekilde yazılan modeldir, eskiden en çok kullanılan ve tavsiye edilen model olmasına karşın artık desteklenmemekte ve tavsiye edilmemektedir.
Uzun lafın kısası artık çoğunluk tarafından tercih edilen yöntem, model 2′de kullanılandır. Bu yöntemi kullanabilmek için oluşturduğumuz formu göndermek için kullandığımız metod da önemlidir. Bu metodlar; post ve get şeklindedir. post metoduyla gönderdiğimiz verileri $_POST ile get metoduyla gönderdiğimiz verileri $_GET ile elde edebiliriz. Ayrıca ister post isterse get motoduyla gönderilen veriler $_REQUEST ile de elde edilebilir. $_REQUEST hem post hem de get metoduyla uyumludur.
Bahsettiğimiz konunun pratik halini görmek için ve kaynak kodlarını indirmek için asagidaki linkleri kullanabilirsiniz.
[ad code=2]
Demo : Tiklayiniz
Download : Tiklayiniz.
Şifre : phpdili.com
[...] PHP ile Form Değişkenlerine Erişim Etiketler: mysql update, veritabanı kayıt düzenleme [...]
$_POST ile $_REQUEST arasındaki fark tam olarak nedir peki ?
yani postla gönderdiğim veriyi bunlardan hangisiyle alırsam daha verimli bi sonuca ulaşabilirim?
$_REQUEST, $_POST ile $_GET birleşimi diyebiliriz. Örneğin $_REQUEST['veri'] olarak veri isminde bir anahtar aldığınızda, bunu bir form ile ‘veri’ isminde bir alanla post edebileceğiniz gibi, adres satırında sayfa.php?veri=… şeklinde de gönderebilirsiniz.
$_POST ile $_REQUEST arasindaki farki zaten aciklamislar. Ben güvenlik bakimindan önemine deginmek istiyorum.
$_POST Sadece POST metodu ile gönderilen verileri alir.
$_GET Sadece GET metodu ile gönderilen verileri alir.
$_REQUEST ise, hem POST, hep GET medotu ile gönderilen verileri alir.
Login ve benzeri güvenlik gerektiren sistemlerde $_REQUEST kullanmak güvenlik acisindan tehlikeli olur.
Örnek:
sifre ve kullanici_adi’ni url üzerinden göndererek, login olmaya calisilabilir.
Herzaman POST veriyi $_POST ile ve GET verileri $_GET ile almanizi öneririm.
ve Login ve benzeri islemler icin her zaman hash->unique_id() yada referer_domain kontrolü gibi güvenlik önlemleri kullanmanizi tavsiye ederim.
Aksi taktirde Brute Force severler icin mükemmel bir sistem yapmis olursunuz
)
Iyi Günler
Vural Acar