Yazdır 05 Mayıs 2010 Çarşamba (Hit: 79573)

POST Metodu

Formlardan POST metodu ile gönderilen bilgileri almak için $_POST dizisi kullanılır. Burada indis olarak formların isimleri yani name değerleri kullanılır. Konuyu bir örnekle açıklayalım.

 

Örnek: POST metoduyla formlardan gönderilen ad ve soyad bilgilerini alıp ekrana yazdıralım.

(Örneğimizde Metin Kutusu + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>
   <form name="form1" method="post" action="yaz.php">
      Adı: <input type="text" name="adi"><br>
      Soyadı: <input type="text" name="soyadi"><br>
      <input type="submit" name="gönder" value="Gönder">
   </form>
</body>
</html>
<!--yaz.php-->
<html>
<body>
<?php
echo "<b>Adınız:</b> ",$_POST["adi"],"<br>";
echo "<b>Soyadınız:</b> ",$_POST["soyadi"],"<br>";
?>
</body>
</html>

Buradaki birinci sayfamızda (index.php) formlar vardır. Bu formlara girilen bilgilerin POST metoduyla yaz.php sayfasına gönderilmektedir. İkinci sayfamızda (yaz.php) ise bu formlardan gelen bilgiler alınarak ekrana yazılmaktadır. Bu bilgiler burada olduğu gibi doğrudan echo fonksiyonuna verilebileceği gibi değişkenlere atanarak da işlem yapılabilir.

 

Örnek: Formlara girilen iki sayının toplamını topla.php sayfasında ekrana yazdıralım.

(Örneğimizde Metin Kutusu + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>
   <form name="form1" method="post" action="topla.php">
      Birinci Sayı: <input type="text" name="sayi1"><br>
      İkinci Sayı: <input type="text" name="sayi2"><br>
      <input type="submit" name="topla" value="topla">
   </form>
</body>
</html>
<!--topla.php-->
<html>
<body>
<?php
$s1=$_POST["sayi1"];
$s2=$_POST["sayi2"];
$toplam=$s1+$s2;
echo "Sayıların toplamı: $s1+$s2=$toplam";
?>
</body>
</html>

 

Örnek: Kullanıcının girdiği iki sayıyı yine kullanıcının açılır listeden seçtiği işleme göre hesapla.php sayfasında işleme alıp sonucu ekranda gösterelim.

(Örneğimizde Metin Kutusu + Açılır Liste + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>
   <form name="form1" method="post" action="hesapla.php">
      Birinci Sayı: <input type="text" name="sayi1"><br>
      İkinci Sayı: <input type="text" name="sayi2"><br>
      İşleminizi seçiniz:
      <select name="islem">
         <option value="+">Topla</option>
         <option value="-">Çıkar</option>
         <option value="*">Çarp</option>
         <option value="/">Böl</option>
      </select>
      <input type="submit" name="hesapla" value="Hesapla">
   </form>
</body>
</html>
<!--hesapla.php-->
<html>
<body>
<?php
$s1=$_POST["sayi1"];
$s2=$_POST["sayi2"];
$islem=$_POST["islem"];

// Bu kısımda switch-case yapısı da kullanılabilirdi.
if($islem=="+")
   $sonuc=$s1+$s2;
elseif($islem=="-")
   $sonuc=$s1-$s2;
elseif($islem=="*")
   $sonuc=$s1*$s2;
else
   $sonuc=$s1/$s2;

echo "İşlemin Sonucu:<br>$s1$islem$s2=$sonuc";
?>
</body>
</html>

 

Örnek: Girilen sayının karesini, küpünü, karekökünü yada faktoriyelini hesapla.php sayfasında bulalım.

(Örneğimizde Metin Kutusu + Radyo Buton + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>
   <form name="form1" method="post" action="hesapla.php">
      Sayınızı Giriniz: <input type="text" name="sayi"><br>
      İşleminizi seçiniz:<br>
      <input type="radio" name="islem" value="kare" checked>Karesi<br>
      <input type="radio" name="islem" value="kup">Küpü<br>
      <input type="radio" name="islem" value="karekok">Karekökü<br>
      <input type="radio" name="islem" value="faktoriyel">Faktoriyeli<br>
      <input type="submit" name="Hesapla" value="Hesapla">
   </form>
</body>
</html>
<!--hesapla.php-->
<html>
<body>
<?php
$sayi=$_POST["sayi"];
$islem=$_POST["islem"];

if($islem=="kare"){
   $sonuc=pow($sayi,2);
   echo "$sayi<sup>2</sup>=$sonuc";
}
elseif($islem=="kup"){
   $sonuc=pow($sayi,3);
   echo "$sayi<sup>3</sup>=$sonuc";
}
elseif($islem=="karekok"){
   $sonuc=sqrt($sayi);
   echo "karekök($sayi)=$sonuc";
}
else{ // faktoriyel hesaplanıyor
   $sonuc=1;
   for($i=1;$i<=$sayi;$i++)
      $sonuc*=$i;
   echo "$sayi!=$sonuc";
}
?>
</body>
</html>

 

Örnek: Kullanıcının girmiş olduğu kullanıcı adı ve şifreye göre giris.php sayfasında giriş izni veren yada vermeyen php kodunu yazalım.

(Örneğimizde Metin Kutusu + Şifre Kutusu + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>
   <form name="form1" method="post" action="giris.php">
      Kullanıcı Adınız: <input type="text" name="k_adi"><br>
      Şifreniz:<input type="password" name="sifre"><br>
      <input type="submit" name="giris" value="Giriş">
   </form>
</body>
</html>
<!--giris.php-->
<html>
<body>
<?php
// İstenen kullanıcı adını ve şifreyi sabit değişkenler olarak tanımlayalım.
define("username","muyo");
define("password","muric");

if($_POST["k_adi"]==username and $_POST["sifre"]==password)
   echo "Giriş izni verildi. Hoşgeldiniz.";
else{
   echo "Kullanıcı adını yada şifreyi yanlış girdiniz. Tekrar deneyiniz!<br>";
   echo "<a href='index.php'>Geri</a>";
}
?>
</body>
</html>

 

Örnek: Girilen metni seçilen biçimlerde ekranda gösteren yaz.php sayfasını hazırlayalım.

(Örneğimizde Metin Kutusu + Fieldset + Açılır Liste + Radyo Buton + Onay Kutusu + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>
   <form name="form1" method="post" action="yaz.php">
      Metni Giriniz: <input type="text" name="metin"><br>

      <fieldset>
      <legend>Yazı stilini seçiniz:</legend>
         Yazı Tipi:
         <select name="tip">
            <option value="Times New Roman">Times New Roman</option>
            <option value="Arial">Arial</option>
            <option value="Verdana">Verdana</option>
            <option value="Tahoma">Tahoma</option>
         </select><br>
         Yazı Boyutu:
         <select name="boyut">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3" checked>3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
         </select>
      </fieldset>

      <fieldset>
      <legend>Yazı rengini seçiniz:</legend>
         <input type="radio" name="renk" value="red">Kırmızı<br>
         <input type="radio" name="renk" value="blue" checked>Mavi<br>
         <input type="radio" name="renk" value="green">Yeşil<br>
         <input type="radio" name="renk" value="brown">Kahverengi
      </fieldset>

      <fieldset>
      <legend>Yazı biçiminiz seçiniz:</legend>
         <input type="checkbox" name="kalin" value="b">Kalın<br>
         <input type="checkbox" name="egik" value="i">Eğik<br>
         <input type="checkbox" name="alticizili" value="u">Altı çizili
      </fieldset>

      <input type="submit" name="yaz" value="Yaz">
   </form>
</body>
</html>
<!--yaz.php-->
<html>
<body>
<?php
$metin=$_POST["metin"];
$tip=$_POST["tip"];
$boyut=$_POST["boyut"];
$renk=$_POST["renk"];

$etiket_acilisi="<font face='$tip' size='$boyut' color='$renk'>";
$etiket_kapanisi="</font>";

if(@$_POST["kalin"]){ // kalın seçili ise
   $etiket_acilisi.="<b>"; // sonuna ekler
   $etiket_kapanisi="</b>".$etiket_kapanisi; // başına ekler
}

if(@$_POST["egik"]){ // egik seçili ise
   $etiket_acilisi.="<i>"; // sonuna ekler
   $etiket_kapanisi="</i>".$etiket_kapanisi; // başına ekler
}

if(@$_POST["alticizili"]){ // altı çizili seçili ise
   $etiket_acilisi.="<u>"; // sonuna ekler
   $etiket_kapanisi="</u>".$etiket_kapanisi; // başına ekler
}

echo $etiket_acilisi.$metin.$etiket_kapanisi;
?>
</body>
</html>

 

Örnek: Gizli form elemanı kullanarak sayı tahmin sayfası hazırlayalım. Girilen sayıyı aynı sayfaya POST edelim.

(Örneğimizde Metin Kutusu + Gizli Form + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>

<?php
if(!$_POST){// POST olayı yoksa yani sayfa ilk kez açılıyorsa
   $sayi=rand(1,100); // bulunması gereken sayı rastgele üretiliyor
   $mesaj="Bir sayı tuttuk bilin bakalım kaç!";
}
else{ // POST olayı varsa yani sayı tamin edildiyse
   $tahmin=$_POST["tahmin"];
   $sayi=$_POST["sayi"];
   if($tahmin>$sayi)
      $mesaj="Daha küçük bir sayı giriniz.";
   elseif($tahmin<$sayi)
      $mesaj="Daha BÜYÜK bir sayı giriniz.";
   else{
      $mesaj="Tebrikler bildiniz!";
      $mesaj.="<br><a href='index.php'>Tekrar denemek için tıklayınız.</a>";
   }
}
?>

   <form name="form1" method="post" action="index.php">
      Tahmin: <input type="text" name="tahmin"><br>
      <input type="hidden" name="sayi" value="<?php echo $sayi;?>">
      <input type="submit" name="tahminet" value="Tahmin Et">
   </form>

<?php
echo $mesaj;
?>
</body>
</html>

Bu örnekte tahmin edilmesi gereken sayı POST olayı olmadığı zaman yani sayfa ilk kez açıldığında üretiliyor. Daha sonra bu sayı gizli form elemanı ile her POST olayında gönderiliyor. Aksi halde bilinmesi gereken sayı POST olayından sonra kaybolur.

Ayrıca burada gizli formun value kısmına bilinmesi gereken sayıyı PHP kod bloğu açarak echo ile yazdırıyoruz. Formun altında da kullanıcıyı yönlendirici mesajı yine PHP kod bloğunu açıp echo ile yazdırıyoruz.

 

Örnek: Kullanıcıdan yorum alan ve ekrana yazan php sayfalarını hazırlayalım.

(Örneğimizde Metin Kutusu + Metin Alanı + Gönder Düğmesi kullanılmıştır.)

<!--index.php-->
<html>
<body>
   <form name="form1" method="post" action="yorum.php">
      <table border="0">
         <tr>
            <td align="right" valign="top">Adınız Soyadınız:</td>
            <td><input type="text" name="adsoyad"></td>
         </tr>
         <tr>
            <td align="right" valign="top">Başlık:</td>
            <td><input type="text" name="baslik"></td>
         </tr>
         <tr>
            <td align="right" valign="top">Tarih:</td>
            <td><input type="text" name="tarih" value="<?php echo date("d.m.Y G:i");?>" readonly></td>
         </tr>
         <tr>
            <td align="right" valign="top">Yorum:</td>
            <td><textarea name="yorum" rows="8" cols="30"></textarea></td>
         </tr>
         <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="gonder" value="Gönder"></td>
         </tr>
      </table>
   </form>
</body>
</html>
<!--yorum.php-->
<html>
<head>
   <style type="text/css">
   <!--

   .main{
      background-color:#EDE;
      border:#F6F thin solid;
      color:#000;
      width:600px
   }

   .adsoyad {
      width:493px;
      background-color:#C39;
      border:#600 thin solid;
      font-weight: bold;
      color:#FFF;
      line-height:30px;
      padding-left:5px;
   }

   .div1{
      width:500px;
   }

   .baslik{
      float:left;
      width:340px;
      background-color:#F9C;
      border:#C09 thin solid;
      line-height:30px;
      color:#FFF;
      padding-left:5px;
   }

   .tarih{
      float:right;
      width:146px;
      background-color:#F9C;
      border:#C09 thin solid;
      line-height:30px;
      color:#FFF;
      padding-left:5px;
   }

   .yorum{
      clear:both;
      padding: 5px;
   }

   -->
   </style>
</head>
<body>
<?php
echo "<div class=\"main\">";
echo "<div class=\"adsoyad\">".$_POST["adsoyad"]."</div>";
echo "<div class=\"div1\">";
echo "<div class=\"baslik\">".$_POST["baslik"]."</div>";
echo "<div class=\"tarih\">".$_POST["tarih"]."</div>";
echo "</div>";
echo "<div class=\"yorum\">".$_POST["yorum"]."</div>";
echo "</div>";
?>
</body>
</html>

Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache PHP MySQL PhpMyAdmin EasyPHP Xampp AppServ Wamp W3School

www.phpdefteri.com © 2010