Ana Sayfa » Ders Notları ve Örnekler » PHP » PHP İle Form Etiketlerini Kullanma ve Form Bilgilerini Alma

Uyarılar :
  • Bu sayfada yazılanlar yeniden yayınlanamaz.
  • Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.

Örnek :

<?php

/* 
POST metodu ile (aşağıda form etiketinde method olarak post kullanıldı) bir form
verisi geldiyse $HTTP_POST_VARS değişkeni PHP tarafından tanımlanacaktır. Aksi
halde bu dizi tanımlanmayacağından form verilerine $_POST dizisi ile ulaşılmaya
çalışıldığında hata ortaya çıkacaktır. Bu hatayı önlemek ve POST yöntemi ile form
verisi gelip gelmediğini sınamak için "isset" fonksiyonu kullanılıyor. isset($HTTP_POST_VARS)
ifadesi, POST yöntemi ile bir form verisi geldiyse True, aksi halde False sonucunu verecektir.
*/

if (isset($HTTP_POST_VARS))
{

  /* 
  $_POST dizisi, PHP tarafından sayfa yüklendiğinde otomatik olarak oluşturulur.
  Eğer POST yöntemi ile form verisi geldiyse, PHP gelen etiketlerin name özelliklerinin
  değerlerini anahtar olarak tanımlayıp, etikete yazılan değeri bu anahtara atayarak
  $_POST dizisine ekler. Biz de $_POST["FormEtiketininNameOzelligininDegeri"]
  şeklinde bir ifadeyle etikete yazılan değeri elde ederiz. Örneğin name özelliğinin
  değeri "adi" olan bir etikete yazılan değere ulaşmak için $_POST["adi"] yazarız.
  */
  
  echo "<b>Girilen isim : </b>" . $_POST["adi"] . "<br>";
  echo "<b>Seçilen özel meraklar :</b>";
  
    /*
   Onay kutuları (CheckBox) işaretlendiklerinde value özelliklerinin değerini döndürürler.
   İşaretlenmediklerinde ise name özelliği dahil bu etiketle ilgili hiç bir form bilgisi
   gelmeyeceğinden işaretlenmemiş bir onay kutusunun değerine name özelliğini kullanarak
   ulaşmaya çalışmak (Örneğin $_POST["sinema"] ) hata verecektir. Bu nedenle 
   değeri elde etmeye çalışmadan önce isset() fonksiyonu ile böyle bir değerin olup olmadığını
   test ediyoruz.
   */
  
  if (isset($_POST["sinema"]))	echo $_POST["sinema"] . " ";
  if (isset($_POST["tiyatro"]))	echo $_POST["tiyatro"] . " ";
  if (isset($_POST["kitap"]))	echo $_POST["kitap"];
  
  echo "<br>";
  
  echo "<b>Cinsiyetiniz : </b>";
  
  /*
   Radyo tuşları da onay kutuları gibi işaretlenmediklerinde adları (name) dahil herhangi
   bir bilgi göndermediklerinden, yine isset() fonksiyonunu kullanıyoruz.
   */

  if (isset($_POST["cinsiyet"]))  echo $_POST["cinsiyet"]; else echo "Cinsiyet seçilmemiş.";
  echo "<br>";
  
  /*
   Input type="text" ve textarea etiketleri için herhangi bir sınamaya gerek yoktur.
   Bu kutulara birşey yazılmasa bile, boş olarak birer değer döndürürler. Select
   etiketinde ise eğer açılır liste halindeyse bir tanesi mutlaka
   seçili olacağından yine isset() sınamasına gerek yoktur.
   */

  echo "<b>Yaşadığınız şehir : </b>";
  echo $_POST["sehir"];
  echo "<br>";

  echo "<b>Okumak istediğiniz şehirler : </b>";

  /*
	Çoklu seçim yapılan listelerde (aşağıdaki okunmakistenensehir etiketi) yapılan
	seçimler name özelliği yanında [] karakterleri kullanıldığı zaman sunucuya
	dizi olarak gelir. Altta basitçe dizileri biçimli yazdıran print_r
	fonksiyonu ile seçilen elemanların değerlerini yazdırıyoruz.
  */

  if (isset($_POST["okunmakistenensehir"]))
	print_r($_POST["okunmakistenensehir"]);

  echo "<br>";

  echo "<b>Yorumlarımız : </b>";
  echo $_POST["yorum"];
  echo "<hr>";
}
else echo "Formdaki bilgileri doldurup \"Gönder\" tuşunu tıklayın.";

?>

<form action="PHP_FormEtiketleriVeFormBilgileriniAlma.php" method="post">
Adınız : <input type="text" name="adi" /><br>
İlgi alanlarınız : 

<input type="checkbox" name="sinema" value="sinema" />Sinema
<input type="checkbox" name="tiyatro" value="tiyatro" />Tiyatro
<input type="checkbox" name="kitap" value="kitap" />Kitap<br>

Cinsiyet : 
<!--Radyo tuşlarının (RadioButton) beraber çalışabilmesi için (Bir tanesi seçildiğinde
diğerinin seçiminin silinmesi için) name özelliklerinin değeri aynı olmalıdır. Name
özelliği değeri aynı olan radyo tuşları, seçili olanın value değerini döndürürler.-->

<input type="radio" name="cinsiyet" value="bayan" />Bayan
<input type="radio" name="cinsiyet" value="erkek" />Erkek<br>

Yaşadığınız şehir : 

<!--Select listelerinde, option etiketleri listenin elemanlarını tanımlar. Liste,
seçilen elemanın value özelliğinin değerini döndürür. Eğer option etiketlerine value
özelliği verilmezse, seçilen elemanın metin değeri (örneğin 2. eleman seçiliyse İstanbul
değeri) döndürülür. Bu örnekte Van ve Bolu için value özelliği kullanıldığından, bu
elemanlar seçildiğinde isimleri değil, value özelliklerinin değeri (65 veya 14)
gönderilir...-->

<select name="sehir">
	<option>Ankara</option>
	<option>İstanbul</option>
	<option>İzmir</option>
	<option>Bursa</option>
	<option>Adana</option>
	<option>Gaziantep</option>
	<option value="65">Van</option>
	<option value="14">Bolu</option>
</select><br>

Okumak istediğiniz şehirler : 

<!-- Üstteki liste tek satır görüntüleyen ve aşağı doğru açılan bir listedir. Çok
    satırlı bir liste görüntülemek için yine select etiketi kullanılır. Ancak satır
    sayısını belirtmek için SIZE özelliğini belirlemeniz gerekir. Aksi halde
    üstteki gibi bir liste görülecektir. Çok satırlı bir liste ile tek satırlı
    bir listeden gelen arasında sunucu tarafında bir fark yoktur ikisi de aynı
    şekilde işlenir (Üstte sunucu tarafında çalışan kodlardaki "Yaşadığınız şehir"
    bölümüne bakın. Ancak HTML select etiketi ile oluşturulan listelerden çoklu
    seçim yapılabilir. Buna imkan sağlamak için select etiketinin MULTIPLE
    özelliği multiple="multiple" veya sadece multiple şeklinde kullanılır.
    Bu şekilde ziyeretçi shift veya ctrl tuşları ile birlikte tıklayarak veya
    yön tuşlarını kullanarak bir taneden fazla seçim yapabilir. Ancak çoklu
    seçimin sunucu tarafında çalışabilmesi için name özelliğinin yanına []
    karakterlerini koymamız gerekir. Bunu yaptığımızda sunucu seçilenlere bir
    dizi vasıtasıyla ulaşmamıza imkan sağlar.
-->

<select name="okunmakistenensehir[]" size="5" multiple="multiple">
	<option>Ankara</option>
	<option>İstanbul</option>
	<option>İzmir</option>
	<option>Bursa</option>
	<option>Adana</option>
	<option>Gaziantep</option>
	<option value="65">Van</option>
	<option value="14">Bolu</option>
</select><br>

Yorumlarınız :<br>

<!-- textarea etiketi, çok satırlı metin girişi için kullanılır. Kutunun boyunu
    ayarlamak için rows ve cols özelliklerini veya stil özelliklerini kullanın
    (style="width:200px" gibi)-->

<textarea name="yorum" rows="6" cols="20"></textarea><br>

<input type="submit" value="Gönder" />

</form>
İletişim : hazirsite@gmail.com