PHP Formlar ( Devamı ) | Detaylı Anlatım Ders 6

Konu sahibi son olarak 2598 gün önce görüldü
Form Örnekleri

Örnek: Basit bir üyelik kaydı için kullanılabilecek bir form yapısı hazırlayalım.

Kod:
<html>
<body>
   <form name="uyelik" method="post" action="uye_kaydet.php">
      Adınız: <input type="text" name="adi"><br>
      Soyadınız: <input type="text" name="soyadi"><br>
      Kullanıcı adınız: Adınız: <input type="text" name="kullanici_adi"><br>
      e-mail adresiniz: <input type="text" name="email"><br>
      Şifre: <input type="password" name="sifre"><br>
      Tekrar şifre: <input type="password" name="tekrar_sifre"><br>
      <input type="submit" name="gonder" value="Gönder">
   </form>
</body>
</html>

1.PNG


Unutmayınız ki formlara girilen bilgilerin kontrolü javascript ile yapılmaktadır. Bu şimdilik bizim konumuz değildir.

Web sayfalarında formların daha düzgün görünmesi için genelde tablolar kullanılır. Benzer bir formu tablo kullanarak oluşturalım.

Örnek: Kişisel bilgilerin kaydı için kullanılabilecek bir form yapısını tablo kullanarak hazırlayalım.

Kod:
<html>
<body>
   <form name="kisisel" method="post" action="kisisel_kaydet.php">
      <table>
         <tr>
            <td align="right">Ad:</td>
            <td><input type="text" name="adi"></td>
         </tr>
         <tr>
            <td align="right">Soyad:</td><td><input type="text" name="soyadi"></td>
         </tr>
         <tr>
            <td align="right">Cinsiyet:</td>
            <td>
               Bay<input type="radio" name="cinsiyet" value="bay" checked>
               Bayan <input type="radio" name="cinsiyet" value="bayan">
            </td>
         </tr>
         <tr>
            <td align="right">Eğitim Durumu:</td>
            <td>
               <select name="egitim">
                  <option value="ilkogretim">İlköğretim</option>
                  <option value="lise" selected>Lise</option>
                  <option value="yuksekokul">Yüksek Okul</option>
                  <option value="universite">Üniversite</option>
                  <option value="master">Master</option>
                  <option value="doktora">Doktora</option>
               </select>
            </td>
         </tr>
         <tr>
            <td align="right"><input type="submit" name="gonder" value="Gönder"></td>
            <td><input type="reset" name="temizle" value="Temizle"></td>
         </tr>
      </table>
   </form>
</body>
</html>

2.PNG


Burada form elemanları tablo içerisindedir. Tablo kenarlığı ise gösterilmemektedir.

Örnek: Yorum ekleme formu hazırlayalım.

Kod:
<html>
<body>
   <form name="yorum" method="post" action="yorum_kaydet.php">
      <table>
         <tr>
            <td align="right">Ad Soyad:</td>
            <td><input type="text" name="adsoyad"></td>
         </tr>
         <tr>
            <td align="right">Başlık:</td><td><input type="text" name="baslik"></td>
         </tr>
         <tr>
            <td align="right">Yorum:</td>
            <td><textarea name="yorum"></textarea></td>
         </tr>
         <tr>
            <td align="right">e-mail:</td>
            <td><input type="text" name="email"></td>
         </tr>
         <tr>
            <td align="right">Web Site:</td>
            <td><input type="text" name="website" value="http://www."></td>
         </tr>
         <tr>
            <td align="right"><input type="submit" name="gonder" value="Gönder"></td>
            <td><input type="reset" name="temizle" value="Temizle"></td>
         </tr>
      </table>
   </form>
</body>
</html>

3.PNG


Örnek: Dosya yükleme formunu hazırlayalım.

Kod:
<html>
<body>
   <form name="yukle" method="post" action="yukle.php" enctype="multipart/form-data">
      <table>
         <tr>
            <td align="right"><b>Dosyanın Kalıcı Adı:</b></td>
            <td><input type="text" name="dosyaadi"></td>
         </tr>
         <tr>
            <td align="right"><b>Dosya Seçiniz:</b></td>
            <td><input type="file" name="dosya"></td>
         </tr>
         <tr>
            <td align="right"><b>Dosya Türü:</b></td>
            <td>
               <select name="tur">
                  <option value="jpg">jpg</option>
                  <option value="gif">gif</option>
                  <option value="png">png</option>
                  <option value="pdf">pdf</option>
                  <option value="doc">doc</option>
                  <option value="xls">xls</option>
                  <option value="ppt">ppt</option>
                  <option value="rar">rar</option>
                  <option value="txt">txt</option>
               </select>
            </td>
         </tr>
         <tr>
            <td align="right" valign="top"><b>Kayıt Yeri:</b></td>
            <td>
               <input type="radio" name="kayit_yeri" value="resimler" checked>Resimler<br>
               <input type="radio" name="kayit_yeri" value="belgeler">Belgeler
            </td>
         </tr>
         <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="yukle" value="Yükle"></td>
         </tr>
      </table>
   </form>
</body>
</html>

4.PNG


Örnek: Basit bir yemek sipariş formu hazırlayalım.

Kod:
<html>
<body>
   <form name="siparis" method="post" action="siparis.php">
      <table>
         <tr>
            <td align="right"><b>Adınız Soyadınız:</b></td>
            <td><input type="text" name="adisoyadi"></td>
         </tr>
         <tr>
            <td align="right"><b>Adres:</b></td>
            <td><input type="text" name="adres"></td>
         </tr>
         <tr>
            <td align="right"><b>Telefon:</b></td>
            <td><input type="text" name="telefon"></td>
         </tr>
      </table>
      <fieldset>
         <legend>Çorbalar</legend>
         <input type="radio" name="corba" value="mercimek">Mercimek<br>
         <input type="radio" name="corba" value="ezogelin">Ezogelin<br>
         <input type="radio" name="corba" value="yayla">Yayla<br>
         <input type="radio" name="corba" value="iskembe">İşkembe<br>
      </fieldset>
      <fieldset>
         <legend>Yemekler</legend>
         <table>
            <tr>
               <td>
                  <input type="checkbox" name="corba" value="pilav">Pilav<br>
                  <input type="checkbox" name="corba" value="taskebabi">Tas Kebabı<br>
                  <input type="checkbox" name="corba" value="kuru">Kuru Fasulye<br>
                  <input type="checkbox" name="corba" value="kavurma">Et Kavurma
               </td>
               <td>
                  <input type="checkbox" name="corba" value="patlican">Patlıcan Kebap<br>
                  <input type="checkbox" name="corba" value="doner">Döner<br>
                  <input type="checkbox" name="corba" value="sote">Et Sote<br>
                  <input type="checkbox" name="corba" value="turlu">Türlü<br>
               </td>
            </tr>
         </table>
      </fieldset>
      <fieldset>
         <legend>Tatlılar</legend>
         <input type="radio" name="tatli" value="kadayif">Kadayıf<br>
         <input type="radio" name="tatli" value="kemalpasa">Kemalpaşa<br>
         <input type="radio" name="tatli" value="kunefe">Künefe<br>
         <input type="radio" name="tatli" value="sutlac">Sütlaç<br>
      </fieldset>
      <input type="submit" name="siparis" value="Sipariş Ver">
   </form>
</body>
</html>

5.PNG


Örnek: Formalara girilen bilgilerin ne amaçla gönderildiğini gizli form ile belirtelim. Web sayfalarında bazen aynı formlar hem yeni kayıt hem de kayıt güncelleme amaçlı kullanılmaktadır. Hangi amaçla kullanıldığı gizli form ile belirtilebilir.

Kod:
<html>
<body>
   <form name="yazi" method="post" action="yazi_kayit.php">
      Yazı Başlığı: <input type="text" name="baslik"><br>
      Yazı:<br>
      <textarea name="yazi" rows="10" cols="50"></textarea><br>
      <input type="hidden" name="islem" value="yenikayit">
      <input type="submit" name="kaydet" value="Kaydet">
   </form>
</body>
</html>
Yukarıdaki formda gönder denildiğinde bilgilerin gönderildiği yazi_kayit.php sayfasında islem isimli gizli formun değerine göre işlem yapılır.

6.PNG


Örnek: Basit bir program arama formu hazırlayalım.

Kod:
<html>
<body>
   <form name="arama" method="post" action="ara.php">
      <table>
         <tr>
            <td colspan="4"><b>Program Adı:</b> <input type="text" name="ad"></td>
         </tr>
         <tr>
            <td>
               <b>Kategori:</b><br>
               <select name="kategori" size="10">
                  <option value="guvenlik">Güvenlik</option>
                  <option value="grafik">Grafik</option>
                  <option value="masaustu">Masaüstü</option>
                  <option value="ses-video">Ses-Video</option>
                  <option value="internet">İnternet</option>
               </select>
            </td>
            <td>
               <b>Lisans:</b><br>
               <select name="lisans" size="10">
                  <option value="free">Freeware</option>
                  <option value="share">Shareware</option>
                  <option value="ucretli">Ücretli</option>
                  <option value="gnu">GNU/GPL</option>
               </select>
            </td>
            <td>
               <b>Dil:</b><br>
               <select name="dil" size="10">
                  <option value="turkce">Türkçe</option>
                  <option value="ingilizce">İngilizce</option>
                  <option value="almanca">Almanca</option>
                  <option value="fransizca">Fransızca</option>
                  <option value="diger">Diğer</option>
               </select>
            </td>
            <td>
               <button>
                  <img src="http://www.phpdefteri.com/upload/png/arama.png"><br>
                  <b>Ara</b>
               </button>
            </td>
         </tr>
      </table>
   </form>
</body>
</html>

7.PNG


GET ve POST Metodu

Formlara girilen bilgiler gönder denildiğinde <form>...</form> etiketinin action özelliğinde belirtilen sayfaya, yine aynı etiketin method özelliğinde belirtilen yöntemle gönderililir. Örneğin;

Kod:
<form name="yorum" method="post" action="yorum_kaydet.php">
şeklinde tanımlanan bir form yapısına göre formlara girilen bilgiler yorum_kaydet.php sayfasına post metoduyla gönderilecektir. Burada GET ve POST olmak üzere iki tür method kullanılır.



GET Metodu

GET metodunda formlara girilen bilgiler adres çubuğunda gönderilirken görünürler. Formlara girilen bilgiler, sayfa adresinin sonuna şu şekilde eklenir.

http://www.site.com/sayfa.php?form1=değer1&form2=değer2&...

Burada form1, form2,... ile gösterilen ifadeler sayfada formlara verilen isimler yani name değerleridir. değer1, değer2,... ise kullanıcının bu formlara girdiği değerleri ifade etmektedir. Dikkat ederseniz tüm bunlar sayfa adresinden ? ile ayrılmakta, her form ve değerinin arasında & işareti bulunmaktadır.

Bu yöntemde;

Gönderilen bilgiler adres çubuğunda göründüğü için güvenlik düşüktür. Özellikle şifre girişlerinde kullanılmamalıdır.
Adres çubuğundan gönderilebilecek veri miktarı sınırlı olduğunda fazla miktardaki veriler gönderilemez.


Aşağıdaki form yapısı doldurulup GET metodu ile gönderildiğinde adres çubuğunda oluşacak değere bakalım.

Kod:
<html>
<body>
   <form name="kayit" method="get" action="http://www.phpdefteri.com/kayit.php">
      Adı: <input type="text" name="adi"><br>
      Soyadı: <input type="text" name="soyadi"><br>
      Doğum Yılı: <input type="text" name="dogum"><br>
      <input type="submit" name="kaydet" value="Kaydet">
   </form>
</body>
</html>

1.PNG


GET metodu formların kullanıldığı sayfalarda pek kullanılmaz. Bunun yerine daha güvenli olan POST metodu kullanılır. GET metodu genellikle <a>...</a> link oluşturma etiketleriyle beraber kullanılır. Buradaki amaç link ile diğer sayfaya bilgi göndermektir. Aşağıdaki örneği inceleyiniz.

Kod:
<html>
<body>
Arkadaşlar aşağıdaki linke tıklarsanız kayit.php sayfasına üç tane bilgi gönderilir. <br>
Bunlar şunlardır: <br>
adi=Ali<br>
soyadi=Eren<br>
dogum=1983<br>
<a href="kayit.php?adi=Ali&soyadi=Eren&dogum=1983">
   Bu linke tıklayıp adres çubuğuna dikkat ediniz.
</a>
</body>
</html>

Başka bir örnek vermek gerekirse; veritabanından çekilen kayıtlar sayfaya yazdırılır ve her kayıtın yanına genellikle bir silme linki eklenir. Bu linke tıklandığında kayıt silinir. Buna benzer bir sayfa hazırlayalım.

Kod:
<html>
<body>
   <table border="1">
      <tr>
         <td>Kayıt No</td>
         <td>Kayıt Adı</td>
         <td>İşlem</td>
      </tr>
      <tr>
         <td>62</td>
         <td>Ömer Erkul</td>
         <td><a href="kayitsil.php?kayit_no=62">Sil</a></td>
      </tr>
      <tr>
         <td>68</td>
         <td>Ebuzer Garip</td>
         <td><a href="kayitsil.php?kayit_no=68">Sil</a></td>
      </tr>
      <tr>
         <td>92</td>
         <td>Huzeyfe Yiğit</td>
         <td><a href="kayitsil.php?kayit_no=92">Sil</a></td>
      </tr>
   </table>
</body>
</html>

2.PNG


Burada dikkat ederseniz kayıt silmenin yapıldığı kayitsil.php sayfasına silinicek kaydın numarası GET metodu ile gönderilmektedir. Bu ve buna benzer link ile değer göndermenin yapıldığı her yerde GET metodu kullanılır. Formların bulunduğu sayfalarda ise POST metodu kullanılır.

POST Metodu

Bu metodda formlara girilen bilgiler gönderilirken görünmemektedir. Bundan dolayı daha güvenlir. Ayrıca büyük miktardaki veriler de bu yöntemle gönderilmektedir. Örneğin dosya yüklemede kullanılan ve fazla miktarda verilerin bulunduğu formlarda POST metodu kullanılmaktadır. Aşağıdaki örneği inceleyiniz.

Kod:
<html>
<body>
   <form name="anket" method="post" action="anket.php">
      Adınız Soyadınız: <input type="text" name="adsoyad"><br>
      Okullarda serbest kıyafet uygulaması olsun mu?
      <select name="cevap">
         <option value="">Evet</option>
         <option value="">Hayır</option>
         <option value="">Kararsızım</option>
      </select><br>
      <input type="submit" name="gonder" value="Gönder">
   </form>
</body>
</html>

3.PNG


Gönder denildiğinde girilen bilgiler anket.php sayfasına gitmekte ve ne adres çubuğunda ne de başka bir yerde görünmemektedir. Bundan dolayı oldukça güvenlidir.



Buraya kadar olan kısımda linklerden ve formlardan bilgilerin nasıl gönderileceğini anlatmış olduk. Sıradaki dersimizde gönderilen bilgilerin nasıl alınıp işleneceğini anlatmaya çalışacağız.

GET Metodu

<form>...</form> etiketinin action özelliğinde belirtilen sayfada GET metoduyla yani URL'ye eklenerek gönderilen değişkeleri almak için $_GET dizisi kullanılır.

$_GET dizisinde indis olarak değişken adları yada form adları kullanılır.

Örneğin; http://www.phpdefteri.com/index.php?konu=selam&mesaj=Merhaba şeklinde GET ile gönderilen konu ve mesaj bilgilerini şu şekilde alırız.


Kod:
<?php
$gelen_konu=$_GET["konu"];
$gelen_mesaj=$_GET["mesaj"];
?>


Örnek olarak basit bir uygulama yapalım.

Örnek: GET metodu ile gönderilen ad ve soyad bilgilerini alıp ekrana yazdıralım.

Kod:
<!--index.php-->
<html>
<body>
   <form name="form1" method="get" 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>

Kod:
<!--yaz.php-->
<html>
<body>
<?php
echo "<b>Adınız:</b> ",$_GET["adi"],"<br>";
echo "<b>Soyadınız:</b> ",$_GET["soyadi"],"<br>";
?>
</body>
</html>
Burada iki sayfamız vardır.

İlk sayfamız olan index.php sayfasında formlarımız var. Bu formlara girilen bilgilerin yaz.php sayfasına gönderileceği action="yaz.php" ile belirtilmiştir. method="get" ifadesiyle bilgilerin GET metodu ile gönderileceği belirtilmiştir. Unutmayınız form yapılarında çoğu zaman POST metodu kullanılır. GET metodu pek kullanılmaz. Burada sadece GET metodu ile bilgi göndermeye ve almaya örnek vermekteyiz.

Bilindiği gibi GET metodu <a>...</a> etiketi ile oluşturulan linkler ile bilgi göndermede kullanılır.

İkinci sayfamız olan yaz.php sayfasında formlardan gelen bilgiler alınıyor. Daha sonra sayfaya yazdırılması için echo fonksiyonuna veriliyor. Bu bilgileri değişkenlere atayarak da işlem yapabilirsiniz.

Not: index.php ile yaz.php sayfalarının aynı dizinde olduğu kabul edilerek action kısmında yaz.php sayfasının yolu belirtilmemiştir. Aksi halde dosyanın tam yolu yada göreceli yolu yazılmalıdır.



Örnek: Rastgele üretilen iki sayıyı yaz.php sayfasına bir link ile (GET metodu ile) gönderip ekrana yazdıralım.

Kod:
<!--index.php-->
<html>
<body>
<?php
$s1=rand(1,100);
$s2=rand(1,100);
echo "<b>Bulunan sayılar:</b><br>";
echo "Sayı 1=$s1<br>Sayı 2=$s2<br>";
echo "<a href='yaz.php?sayi1=$s1&sayi2=$s2'>Bu linke tıklayarak sayıları gönderebilirsiniz</a>";
?>
</body>
</html>

Kod:
<!--yaz.php-->
<html>
<body>
<?php
echo "<b>Sayı 1:</b> ",$_GET["sayi1"],"<br>";
echo "<b>Sayı 2:</b> ",$_GET["sayi2"],"<br>";
?>
</body>
</html>


Bu örnek gerçek bir GET metoduna güzel bir örnektir.

index.php sayfasını yenileyerek her seferinde farklı sayılar gönderebilirsiniz.



Örnek: Tablodaki numaralara ve isimlere tıklandığında bu bilgileri yaz.php sayfasına gönderip ekrana yazdıralım.

Kod:
<!--index.php-->
<html>
<body>
   <table border="1">
      <tr>
         <td>Numarası</td><td>Adı</td>
      </tr>
      <tr>
         <td><a href="yaz.php?no=15">15</a></td>
         <td><a href="yaz.php?ad=Ayşe">Ayşe</a></td>
      </tr>
      <tr>
         <td><a href="yaz.php?no=17">17</a></td>
         <td><a href="yaz.php?ad=Osman">Osman</a></td>
      </tr>
      <tr>
         <td><a href="yaz.php?no=29">29</a></td>
         <td><a href="yaz.php?ad=Mustafa">Mustafa</a></td>
      </tr>
</table>
</body>
</html>
Kod:
<!--yaz.php-->
<html>
<body>
<?php
echo "<b>Numarası</b>: ",$_GET["no"],"<br>";
echo "<b>Adı</b>: ",$_GET["ad"],"<br>";
?>
</body>
</html>
Burada tıklanan linke göre sadece no yada ad gönderilmektedir. Buna göre yaz.php sayfasında duruma göre sadece gelen bilgiyi ekrana yazdırmak için yaz.php sayfası şu şekilde düzenlenebilir.

Kod:
<!--yaz.php-->
<html>
<body>
<?php
if(@$_GET["no"]) // eğer no geldi ise
   echo "<b>Numarası</b>: ",$_GET["no"],"<br>";
elseif(@$_GET["ad"]) // eğer ad geldi ise
   echo "<b>Adı</b>: ",$_GET["ad"],"<br>";
?>
</body>
</html>
Burada if(@$_GET["no"]) ifadesi; GET metodu ile gelen no bilgisi varsa anlamına gelmektedir. Başındaki @ işareti ise uyarı mesajına engel olmaktadır. Dikkat ediniz hata değil, uyarı mesajına engel olur. Eğer GET ile no bilgisi gelmiyorsa, gelmeyen yani olmayan bir değişkeni if yapısı kontrol ederken uyarı verir. Bu uyarı mesajını gizlemek için @ işaretini kullanıyoruz.



Örnek: Öğrenci bilgilerinin bulunduğu dizideki öğrenci adlarını sayfaya yazdıralım. Daha sonra bu adlara tıklandığında yaz.php sayfasına öğrencinin numarasını gönderip ekrana yazdıralım.

Kod:
<!--index.php-->
<html>
<body>
<?php
$liste=array(74=>"Onur",64=>"Samet",85=>"Can",16=>"Raşit",80=>"Mert",14=>"Aziz");
foreach($liste as $indis=>$deger)
   echo "$indis <a href='yaz.php?no=$indis'>$deger</a><br>";
?>
</body>
</html>

Kod:
<!--yaz.php-->
<html>
<body>
<?php
echo "<b>Gelen Numara</b>=",$_GET["no"];
?>
</body>
</html>


Örnek: Dizideki kişileri tablo şeklinde ekrana yazdıralım. Tabloda sil ve düzelt şeklinde tanımlanan iki link ile bu kişilerin numaralarını ve işlem adını islem.php sayfasına gönderip ekrana yazdıralım.


Kod:
<!--index.php-->
<html>
<body>
<?php
$uyeler=array(14=>"Ömer",22=>"Erkin",35=>"Zekiye",41=>"Vildan",85=>"Yalçın",114=>"Rabia");
echo "<table border='1'>";
echo "<tr>";
echo "<td>Numarası</td>";
echo "<td>Adı</td>";
echo "<td colspan='2'>İşlem</td>";
echo "</tr>";
foreach($uyeler as $indis=>$deger){
   echo "<tr>";
   echo "<td>$indis</td>";
   echo "<td>$deger</td>";
   echo "<td><a href='islem.php?no=$indis&islem=duzelt'>Düzelt</a></td>";
   echo "<td><a href='islem.php?no=$indis&islem=sil'>Sil</a></td>";
   echo "</tr>";
}
echo "</table>";
?>
</body>
</html>

Kod:
<!--islem.php-->
<html>
<body>
<?php
$no=$_GET["no"];
if($_GET["islem"]=="duzelt")
   echo "$no nolu kayıt düzeltilecektir.";
elseif($_GET["islem"]=="sil")
   echo "$no nolu kayıt silinecektir!";
?>
</body>
</html>


Örnek: Bu örneğimizde GET metodu ile sayfanın kendisine bilgi göndereceğiz. Bunun için hedef olarak bulunduğunuz sayfanın adını yazacağız.

Örneğimizde ekranda bulunan numaralardan birine tıklandığında buna karşılık gelen resmi ekranda göstereceğiz. Bu resimlerin adları bir dizide saklıdır.

Kod:
<!--index.php-->
<html>
<body>
Kullanılan resimleri indirmek için <a href="http://docs.google.com/uc?id=0B4VfeLzXn5MgZmU1ZjQ4MjYtMWQ0ZC00MGI3LTkzM2MtNWVjOTQyNzE3ZDI0&export=download&hl=en_US">tıklayınız.</a><br>
<?php
$resimler=array(1=>"gok.jpg","mavi.jpg","park.jpg","sari.jpg","yesil.jpg");
foreach($resimler as $indis=>$deger)
   echo "<a href='index.php?resim_no=$indis'>$indis</a> ";
 
echo "<br>";
if($_GET){ // GET olayı varsa anlamındadır.
   echo "<img src='resimler/".$resimler[$_GET["resim_no"]]."'>"; // GET olayı varsa ilgili resmi gösterir
   echo "<br><b>".$resimler[$_GET["resim_no"]]."</b>"; // resmin adını yazar
}
else
   echo "<img src='resimler/".$resimler[1]."'>"; // GET olayı yoksa ilk resmi gösterir
   echo "<br><b>".$resimler[1]."</b>"; // ilk resmin adını yazar
?>
</body>
</html>
Burada, sayfa ilk yüklendiğinde GET olayı olmadığından dizideki ilk resim gösteriliyor. Eğer GET olayı varsa GET ile gelen resim_no 'ya göre ilgili resim ve adı erkran gösteriliyor.

Buradaki if($_GET) ifdadesi GET olayı varsa anlamına gelmektedir.

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.)

Kod:
<!--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>

Kod:
<!--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.)

Kod:
<!--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>

Kod:
<!--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.)

Kod:
<!--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>

Kod:
<!--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.)

Kod:
<!--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>

Kod:
<!--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.)

Kod:
<!--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>

Kod:
<!--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.)

Kod:
<!--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>

Kod:
<!--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.)

Kod:
<!--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.)

Kod:
<!--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>

Kod:
<!--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>

Dosya Yükleme (File Upload)

PHP ile dosya yüklemek oldukça kolaydır. Dosya yükleme formunda metot olarak POST metodu kullanılır ve <form>...</form> etiketlerine enctype="multipart/form-data" özelliği eklenir.

Yüklenecek dosyayı seçmek için <input type="file" name="form_adi"> formu kullanılır.

Aşağıda örnek bir dosya yükleme formu vardır. İnceleyiniz.


Kod:
<!--index.php-->
<html>
<body>
   <form name="yukleme" method="post" action="yukle.php" enctype="multipart/form-data">
      Yüklenecek Dosyayı seçiniz: <input type="file" name="dosya"><br>
      <input type="submit" name="yukle" value="Yükle">
   </form>
</body>
</html>
Dosya seçildikten sonra yüklemenin yukle.php sayfasında yapılacağı action özelliğinde görülmektedir.

Sunucuya yüklenen bütün dosyalar geçici olarak yüklenmektedir. Bunun sebebi dosyayı kalıcı olarak yüklemeden önce özelliklerine bakmaktır. Geçici olarak yüklenen dosyanın türüne, boyutuna, adına ve daha önce yüklenip yüklenmediğine bakarsınız, eğer tüm bunlar sizin istediğiniz gibiyse bu dosyayı kalıcı olarak sunucuda istediğiniz dizine kaydedersiniz. Kalıcı olarak kaydedilmeyen dosyalar ise zaman içinde sunucudan kendiliğinden silinecektir.

Şimdi geçici olarak yüklenen dosyanın yukle.php sayfasında ne gibi özelliklerine bakacağımıza ve bunu kalıcı olarak nasıl kaydedeceğimize bakalım.

Yüklenen dosyayla ilgili özelliklere ulaşmak için iki boyutlu $_FILES dizisi kullanılır. Bu dizinin birinci boyutunun indisi dosyanın seçildiği formun adı yani name değeridir (name="dosya"). İkinci boyutunun indisleri ise sabittir ve aşağıda verilmiştir.

$_FILES["dosya"]["name"] > "dosya" isimli form elemanından yüklenen dosyanın gerçek adıdır.
$_FILES["dosya"]["tmp_name"] > "dosya" isimli form elemanından yüklenen dosyanın geçici adıdır.
$_FILES["dosya"]["type"] > "dosya" isimli form elemanından yüklenen dosyanın türüdür.
$_FILES["dosya"]["size"] > "dosya" isimli form elemanından yüklenen dosyanın byte olarak boyutudur.
$_FILES["dosya"]["error"] > "dosya" isimli form elemanından yükleme yaparken oluşan hatadır.

Unutmayınız aynı anda birden fazla dosyayı upload edebilirsiniz. Şimdi yukle.php sayfasında yüklenen dosyanın özelliklerini ekrana yazdıralım.

Kod:
<!--yukle.php-->
<html>
<body>
<?php
echo "<b>Yüklenen dosyanın adı:</b> ",$_FILES["dosya"]["name"],"<br>";
echo "<b>Yüklenen dosyanın geçici adı:</b> ",$_FILES["dosya"]["tmp_name"],"<br>";
echo "<b>Yüklenen dosyanın türü:</b> ",$_FILES["dosya"]["type"],"<br>";
echo "<b>Yüklenen dosyanın boyutu:</b> ",$_FILES["dosya"]["size"],"<br>";
echo "<b>Varsa yüklerken oluşan hata:</b> ",$_FILES["dosya"]["error"],"<br>";
?>
</body>
</html>
Yukarıdaki yukle.php sayfasında sadece, geçici olarak yüklenen dosyanın özellikleri ekrana yazdırılmıştır. Bu özellikleri kontrol ederek istenirse dosyayı kalıcı olarak kaydedebilirsiniz.

Bir dosyayı kalıcı olarak kaydetmek için move_uploaded_file($p1, $p2); fonksiyonu kullanılır. Bu fonksiyon iki parametre alır.

$p1 > Dosyanın geçici adıdır. Buraya $_FILES["dosya"]["tmp_name"] ifadesi yazılır.
$p2 > Dosyanın kalıcı yolu ve adıdır. Buraya ise istediğiniz bir yolu ve adı yazabilirsiniz.

Dosyaları kalıcı olarak kaydederken aşağıdaki sorunlardan birini yaşayabilirsiniz. Bunlara dikkat ediniz.

Yüklenen dosyanın boyutunun çok büyük olması. Sunucuda php.ini dosyasında izin verilen boyuttan daha büyük bir dosya yüklemeye çalışmak.
Dosyayı kalıcı olarak istenen dizine kaydederken kayıt izninin olmaması. Bunu, dizine yazma iznini vererek aşabilirsiniz.
Dosyaya verilen kalıcı adın daha önce kullanılmış olması başka bir ifadeyle aynı dosyayı tekrar yüklemeye çalışmak. Bunu, dosyaya farklı bir ad vererek aşabilirsiniz. Yada baştan file_exists($dosya_adi) fonksiyonu ile dosyanın var olup olmadığına bakabilirsiniz.
Dosyayı kaydederken dosya adında Türkçe'ye özgü karakterlerin ve geçersiz karakterlerin kullanılması (çÇğĞıİöÖşŞüÜ). Bu sorunu Türkçe karakterleri temizleyen bir fonksiyon tanımlayıp kullanarak aşabilirsiniz.


Örnek: Seçilen dosyayı kendi adıyla upload isimli dizine yükleyen php sayfalarını hazırlayalım. Web dizininda upload isimli bir dizin yoksa oluşturunuz ve yazma izni veriniz.

Kod:
<!--index.php-->
<html>
<body>
   <form name="yukleme" method="post" action="yukle.php" enctype="multipart/form-data">
      Yüklenecek Dosyayı seçiniz: <input type="file" name="dosya"><br>
      <input type="submit" name="yukle" value="Yükle">
   </form>
</body>
</html>

Kod:
<!--yukle.php-->
<html>
<body>
<?php
$gecici_ad=$_FILES["dosya"]["tmp_name"];
$kalici_yol_ad="upload/".$_FILES["dosya"]["name"]; // dosya kendi adıyla upload dizinine kaydedilecek
 
if (move_uploaded_file($gecici_ad,$kalici_yol_ad)) // eğer dosya kaydedilirse
   echo "Dosya başarı ile yüklendi.";
else
   echo "Yükleme başarısız!";
?>
</body>
</html>
Bu örnekte dosya, hiçbir özelliğine bakmaksızın upload dizinine kaydediliyor.



Örnek: Daha önce yüklenmemiş olan jpg resimlerini kendi adlarıyla upload dizinine yükleyelim.

Kod:
<!--index.php-->
<html>
<body>
   <form name="yukleme" method="post" action="yukle.php" enctype="multipart/form-data">
      Jpg resmi seçiniz: <input type="file" name="dosya"><br>
      <input type="submit" name="yukle" value="Yükle">
   </form>
</body>
</html>

Kod:
<!--yukle.php-->
<html>
<body>
<?php
$gecici_ad=$_FILES["dosya"]["tmp_name"];
// dosya kendi adıyla upload dizinine kaydedilecek
$kalici_yol_ad="upload/".$_FILES["dosya"]["name"];
 
if (file_exists("upload/".$_FILES["dosya"]["name"])) // yüklenen dosya upload dizininde varsa
   echo "Seçtiğiniz dosya daha önce yüklenmiştir.";
else{
      if ($_FILES["dosya"]["type"]=="image/jpeg"){
         if (move_uploaded_file($gecici_ad,$kalici_yol_ad)) // eğer dosya kaydedilirse
            echo "Dosya başarı ile yüklendi.";
         else
            echo "Yükleme başarısız!";
      }
      else
         echo "Lütfen jpg resmi seçiniz.";
}
?>
</body>
</html>


Örnek: Aşağıdaki şartlar sağlanırsa dosyayı kendi adıyla upload dizinine yükleyelim.

-Hata oluşmazsa
-Dosya daha önce yüklenmemişse
-Dosya gif dosyası ise

Kod:
<!--index.php-->
<html>
<body>
   <form name="yukleme" method="post" action="yukle.php" enctype="multipart/form-data">
      Gif resmi seçiniz: <input type="file" name="dosya"><br>
      <input type="submit" name="yukle" value="Yükle">
   </form>
</body>
</html>

Kod:
<!--yukle.php-->
<html>
<body>
<?php
$gecici_ad=$_FILES["dosya"]["tmp_name"];
$kalici_yol_ad="upload/".$_FILES["dosya"]["name"]; // dosya kendi adıyla kaydedilecek
 
if ($_FILES["dosya"]["error"]) // hata oluştu ise
   echo "Hata : ",$_FILES["dosya"]["error"];
else{
      if (file_exists("upload/".$_FILES["dosya"]["name"])) // yüklenen dosya upload dizininde varsa
         echo "Seçtiğiniz dosya daha önce yüklenmiştir.";
      else{
         if ($_FILES["dosya"]["type"]=="image/gif"){
            if (move_uploaded_file($gecici_ad,$kalici_yol_ad)) // eğer dosya kaydedilirse
               echo "Dosya başarı ile yüklendi.";
            else
               echo "Dosya yükleme başarısız!";
         }
         else
            echo "Lütfen gif resmi seçiniz.";
      }
}
?>
</body>
</html>


Örnek: Aşağıdaki şartlara göre kullanıcının seçtiği dosyayı kullanıcının yazdığı ad ile upload dizinine kaydeden php sayfalarını hazırlayalım.

-Hata oluşmazsa
-Dosya daha önce yüklenmemiş ise
-Dosya pdf dosyası ise
-Dosya boyutu 500 KB'dan küçük ise

Kod:
<!--index.php-->
<html>
<body>
   <form name="yukleme" method="post" action="yukle.php" enctype="multipart/form-data">
      <table border="0">
         <tr>
            <td>Dosyanın Kalıcı Adı:</td>
            <td><input type="text" name="kalici_ad"></td>
         </tr>
         <tr>
            <td>PDF Dosyası Seçiniz:</td>
            <td><input type="file" name="dosya"></td>
         </tr>
         <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="yukle" value="Yükle"></td>
         </tr>
      </table>
   </form>
</body>
</html>

Kod:
<!--yukle.php-->
<html>
<body>
<?php
$gecici_ad=$_FILES["dosya"]["tmp_name"];
$kalici_yol_ad="upload/".$_POST["kalici_ad"].".pdf";
 
if ($_FILES["dosya"]["error"]) // hata oluştu ise
   echo "Hata : ",$_FILES["dosya"]["error"];
else{
   if (file_exists($kalici_yol_ad)) // yüklenen dosya upload dizininde varsa
      echo "Yazdığınız ad ile bir dosya zaten kayıtlıdır.";
   else{
      if ($_FILES["dosya"]["size"]>500*1024)
         echo "500KB'dan küçük bir dosya seçiniz.";
      else{
         if ($_FILES["dosya"]["type"]=="application/pdf"){
            if (move_uploaded_file($gecici_ad,$kalici_yol_ad)) // eğer dosya kaydedilirse
               echo "Dosya başarı ile yüklendi.";
            else
               echo "Dosya yükleme başarısız.";
         }
         else
            echo "Lütfen PDF dosyası seçiniz.";
      }
   }
}
?>
</body>
</html>


Örnek: Şimdi tam bir dosya yükleme örneği verelim. Burada dosyalar kendi adlarıyla upload dizinine kaydedilecektir. Tabiki Türkçe'ye özgü karakterler temizlendikten sonra. Bunun için bir fonksiyon tanımlayıp kullacağız. Ayrıca yükleme aynı sayfada yapılacaktır.

Kod:
<!--index.php-->
<html>
<body>
   <form name="yukleme" method="post" action="index.php" enctype="multipart/form-data">
      <table border="0">
         <tr>
            <td>Dosya Seçiniz:</td>
            <td><input type="file" name="dosya"></td>
         </tr>
         <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="yukle" value="Yükle"></td>
         </tr>
      </table>
   </form>
 
<?php
function turkce($metin){
   $aranan=array("ç","Ç","ğ","Ğ","ı","İ","ö","Ö","ş","Ş","ü","Ü"," ");
   $yerine=array("c","c","g","g","i","i","o","o","s","s","u","u","_");
   return str_replace($aranan,$yerine,$metin);
}
 
if($_POST){
   $gecici_ad=$_FILES["dosya"]["tmp_name"];
   $kalici_yol_ad="upload/".turkce($_FILES["dosya"]["name"]);
 
   if ($_FILES["dosya"]["error"]) // hata oluştu ise
      echo "<font color='green'>Hata : ",$_FILES["dosya"]["error"],"</font>";
   else{
      if (file_exists($kalici_yol_ad)) // yüklenen dosya upload dizininde varsa
         echo "<font color='red'>Yazdığınız ad ile bir dosya zaten kayıtlıdır.</font>";
      else{
         if (move_uploaded_file($gecici_ad,$kalici_yol_ad)) // eğer dosya kaydedilirse
            echo "<font color='green'>Dosya başarı ile yüklendi.</font>";
         else
             echo "<font color='red'>Dosya yükleme başarısız.</font>";
      }
   }
}
?>
</body>
</html>
 
Geri