Merhaba sevgili dostlar, bu yazımda en basit haliyle get post ve html formlardan bahsedeceğim. post ve get global değişkenleri, php nin kullanıcıya açılan arayüzüdür, olmazsa olmazlardandır. Kullanımları aslında oldukça basittir. Ancak bu tip global değişkenlerden veri alırken dikkatli olmak gerekir. Çünkü aldığınız verilerde güvenlik açığı oluşabilir.
GET Parametresi, url üzerindeki verileri almanızı sağlar, post ile gönderilen veriler ise url de gözükmez, ancak network dinleyerek bu veriler gözükebilir. GET ve post kullanımına geçmezden evvel html form elemanlarına değinmek istiyorum.
form html tagı ile basitçe form oluşturabilirsiniz. şimdi öncelikle deneme.php isminde boş bir php dosyası oluşturalım ve ardından aşağıdaki formu yapıştıralım.
<form action="deneme.php" method="get">
İsminiz : <input type="text" name="isim">
Soyisim : <input type="text" name="soyisim">
<input type="submit" value="Gönder">
</form>
html form tagları arasına inputlar ekleyerek formun gönderileceği url yi deneme.php ve yöntem olarak GET seçeneğini kullandık, inputlarda type diyerek input un tipini belirttik, text yazı alanı, submit, gönder butonu şeklinde 3 input kullandık. Burada dikkat etmeniz gereken kısım, inputların name kısmıdır. dosyayı kaydedip çalıştırdığınızda, text alanlarına veri girip Gönder butonuna tıklarsak,
url yapımız : deneme.php?isim=yazılanisim&soyisim=yazilansoyisim şeklinde olacaktır. Formu get yöntemiyle gönderdiğimiz için, php ile bu verileri ancak get yöntemi ile alabiliriz. Şimdi aynı dosyamızın içeriğine şu şekilde php kodlarımızı ekliyoruz.
<?php
$isim = $_GET["isim"];
$soyisim = $_GET["soyisim"];
echo $isim;
echo $soyisim;
?>
<form action="deneme.php" method="get">
İsminiz : <input type="text" name="isim">
Soyisim : <input type="text" name="soyisim">
<input type="submit" value="Gönder">
</form>
Buradaki püf nokta $_GET["soyisim"]; ortadaki soyisim kısmı, formda belirttiğimiz name kısmı ile aynı olmalıdır. Çünkü url de de o şekildedir. En basit yöntemiyle get ile veri çekmek ve ekrana yazdırmak bu kadar basit.
Post ile veri alıp yazdırmak ta aynı şekildedir, sadece get yerlerine post yazmanız yeterli olacaktır. formun methodu nu da aynı şekilde değiştiriyoruz.
<?php
$isim = $_POST["isim"];
$soyisim = $_POST["soyisim"];
echo $isim;
echo $soyisim;
?>
<form action="deneme.php" method="post">
İsminiz : <input type="text" name="isim">
Soyisim : <input type="text" name="soyisim">
<input type="submit" value="Gönder">
</form>
bu dosyamızı çalıştırdığımızda ise yine aynı şekilde ekrana verileri yazacaktır. Anca url yapımızda hiçbir değişiklik olmayacaktır. Dosyaları çalıştırdığınızda display_error a bağlı olarak get veya post olmadığı için hata alabilirsiniz. Bunu engellemek için @$_GET veya @$_POST şeklinde kullanabilirsniz, @ karakteri error u gizlemeye yarar. Yada if kontrolü ile hata oluşmasını engelleyebilirsiniz.
Peki action kısmına başka bir sitenin url sini yazsak ne olur diye aklınıza gelecek olursa, aynı işlem olur, karşı taraftaki php dosyasına aynı şekilde php kodları yapıştırmanız durumunda aynı sonucu elde edersiniz. post ve get işlemleri url bazlı yapılan bir işlemdir. yani a sitesinden bir formla b sitesine post yada get yapabilirsiniz.