Php Programlama – Php ile Form Kullanımı

php-ile-form-kullanimi-banner

Php programlama ile dinamik web sayfaları oluşturmak için formlar oldukça önemlidir. Php ile form kullanımı kullanıcılardan veri almamızı ve veriyi veri tabanına kaydederek daha sonra kullanabilmenize olanak sağlar.

Örneğin bir sitedeki iletişim formunu kullandığınızda girdiğiniz veriler, o sitenin veri tabanına kayıt edilir ve yönetim paneli kısmında yönetici tarafından görüntülenebilir.

Php ile Form Kullanımı

Html formlar oluştururken dikkat etmemiz gereken parametreler vardır. Bu parametreler method ve action parametreleridir. Method parametresi için GET ya da POST değerleri kullanılabilir. Action parametresi ise formun çalıştırılacağı sayfayı belirtmek için kullanılır. Boş bırakılabilir ya da bir yol belirtilebilir.

HTML Form Elemanları

Html formlarda kullanılan birçok form elemanı vardır. Bu form elemanları kullanıcılardan farklı türde verileri almamızı sağlar. Aşağıdaki tablodan bu form elemanlarını inceleyebilirsiniz.

Type Kullanım Şekli
text <input type=”text” >
password <input type=”password” >
radio <input type=”radio” >
checkbox <input type=”checkbox” >
submit <input type=”submit”>
reset <input type=”reset” >
file <input type=”file” >
hidden <input type=”hidden” >

Form elemanlarını alt başlıklarda inceleyelim. Php ile form kullanımı sırasında bu tiplere oldukça sık rastlayacaksınız.

Type “text”

Text tipine sahip olan form elemanları metin verilerini almak için kullanılır. Girilecek metin uzunluğu maxlength özelliği ile sınırlandırılabilir.  name parametresi ile elemanımıza isim verilir daha sonra bu elemanın verisine ulaşmak için name parametresindeki isim kullanır.

<input type="text" name="eleman-ismi" maxlenght="10" />

Type “password”

Password tipine sahip olan form elemanları ise kullanıcıdan şifre bilgileri almak için kullanılır. Bir siteye şifre ile giriş yaptığınızda şifre alanına yazdığınız şifrenin nokta nokta şeklinde yazıldığını görürsünüz işte o elemanlar password tipindeki form elemanlarıdır.

<input type="password" name="sifre" />

Type “radio”

Radio tipine sahip elemanlar ise genellikle cinsiyet seçimi sırasında kullanılır. Kullanıcıların birden fazla seçenek arasından sadece bir tanesini seçmesini sağlamak içindir.

<input type="radio" name="cinsiyet" checked="checked" /> Kadın
<input type="radio" name="cinsiyet" /> Erkek

Burada dikkat etmemiz gereken unsur birden fazla seçenek olduğunda her radio tipine sahip form elemanın name değeri aynı olmalıdır. Yani isimleri aynı olmalıdır. Farklı olduğu taktirde yanlış çalışacaktır. checked kullanımı radio’nun işaretlendiği anlamına gelir.

Type “checkbox”

Checkbox form elemanı ise onay kutucuğu oluşturmak için kullanılır. Bir siteye üye olurken kuralları okudum anladım şeklindeki işaretlediğimiz kutulardır. 

<input type="checkbox" name="kutu1">
<input type="checkbox" checked="checked" name ="kutu2">

checked kullanımı kutucuğun işaretlendiği anlamına gelir.

Type “submit”, “reset”

Bu iki form elemanını aynı başlık altında inceleyeceğiz hepsinin görüntüsü bir buton şeklindedir.

submit formumuzu action kısmında belirttiğimiz ya da boş bıraktıysak aynı sayfa içinde POST veya GET methodu ile göndermek için kullanılır.

reset forma girilen verileri temizlemek için kullanılır.

Type “file”

File form elemanı adında anlaşılacağı gibi dosya yüklemede kullanılır. Formlar ile dosya yüklerken dikkat edilmesi gerek önemli bir nokta form parametrelerinin action ve method olduğunu söylemiştik, ancak form ile dosya yüklemek için gerekli olan enctype parametresi vardır. 

<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="dosya" />
</form>

Formlar ile dosya yükleme işlemi yapılabilmesi için enctype kullanımı şarttır. Kullanılmadığında hata verecektir.

Type “hidden”

Hidden türü kullanıcının görmesini istediğimiz ancak veri saklayıp daha sonra veriyi alıp kullanmak için oluşturabileceğimiz form elemanlarıdır. Örneğin yorum yazmak için giriş yaptığınızı düşünün sizden sadece yorumunuzu yazmanız istenir. Adınız, Eposta adresiniz gibi veriler hidden inputlarda saklanır ve siz yorum yaptığınızda hidden inputlarda saklanan verilerde form ile gönderilmiş olur.

<input type="hidden" name="gizli_veri" />

Kısaca form input form elemanının tip kullanımı bu şekildedir. Yazının devamında biraz daha gelişmiş örnekleri inceleyerek kullanım şekilleri hakkında fikir sahibi olabilirsiniz.

GET Kullanımı

Php ile form kullanımı sırasında formlar hazırlarken method parametresinin get ve post değerini alabileceğini söylemiştik. Bu kullanımda formdaki veriler tarayıcımızın adres çubuğunda görüntülenebilir. Ancak bu kullanım bazı sorunları da beraberinde getirebilir.

  1. Sorun güvenlik sorunu. Verilerimizin adres çubuğunda gözükmesi kullanıcının istediği değişikliği yapmasına yol açabilir.
  2. Sorun GET kullanımı ile gönderilebilecek veri sınırlıdır. 4000 byte’tan fazla veri gönderilememektedir. Uzun verilerin taşınmasında bu sınırdan dolayı sorunlar oluşabilir.
  3. Tarayıcılar Unicode karakterleri yanlış yorumlayarak verilerin bozulmasına neden olabilir.

Tüm bu dezavantajlara rağmen GET metodunun kullanıldığı durumlar olmaktadır. Ancak bu durumlarda önemli veriler taşınmaz. Örneğin kullanıcı şifreleri, banka hesapları vs.

Örnek kullanım:

form.php olarak kaydedin. Kodları kopyala yapıştır yapmadan inceleyerek denemenizi öneririm.

<form action="form-kontrol.php" method="GET">
Kullanıcı Adı: <input type="text" name="k_adi" /><br/>
Şifre: <input type="password" name="sifre" /><br />
<input type="submit" value="Giriş Yap" />
</form>

Yukarıda basit bir giriş formu oluşturduk. Normalde şifreler gönderilirken GET metodu kullanılmamaktadır. Ancak form kullanımı hakkında fikir sahibi olmanız için bu şekilde kullandım. Bu form verilerimizi form-kontrol.php isimli dosyaya GET methodu kullanarak iletecektir. 

<?php
$kullanici_adi = $_GET["k_adi"];
$sifre = $_GET["sifre"];

echo "Girdiğiniz kullanıcı adı = $kullanici_adi ve şifre = $sifre";
?>

Yukarıdaki php kodları ile formdan GET metodu ile gönderdiğimiz verileri Php $_GET global değişkeni ile aldık ve ekrana yazdırdık.

Yukarıdaki ekran görüntüsünü incelediğimizde GET methodu kullanımında adres çubuğunda verilerin görüntüleneceğini ve değiştirilebileceğini söylemiştim. Bu nedenle şifreler, banka hesapları gibi verileri alacaksanız GET methodu kullanmayın.

POST Kullanımı

Php ile form kullanımı sırasında formlar hazırlarken method parametresinin get ve post değerini alabileceğini söylemiştik. POST methodunun çalışması GET methodu ile aynıdır. POST methodu kullanımında veriler adres çubuğunda görüntülenmez. Daha güvenlidir.

Örnek kullanım:

GET methodundaki örneğin aynısını POST methodu ile inceleyelim.

<form action="form-kontrol.php" method="POST">
Kullanıcı Adı: <input type="text" name="k_adi" /><br/>
Şifre: <input type="password" name="sifre" /><br />
<input type="submit" value="Giriş Yap" />
</form>

Yukarıdaki kodu incelediğimizde oluşturduğumuz formun method parametresinin değerinin POST olduğunu gözden kaçırmayalım.

<?php 
$kullanici_adi = $_POST["k_adi"]; 
$sifre = $_POST["sifre"];
echo "Girdiğiniz kullanıcı adı = $kullanici_adi ve şifre = $sifre";
?>

Yukarıdaki php kodları ile formdan POST metodu ile gönderdiğimiz verileri Php $_POST global değişkeni ile aldık ve ekrana yazdırdık. Formdan gönderilen veri hangi method ile gönderilmiş ise o method ile alınır ve değişkene atanır.

Aşağıdaki ekran görüntüsünde gördüğünüz gibi POST methodu ile veriler adres çubuğunda görüntülenmez ve kullanıcı veriye müdahale edemez böylece daha güvenli veri gönderimi sağlanır.

Üye Kayıt Sayfası Örneği

Örnek form kodumuz aşağıdaki gibi kayit.php olarak dosya oluşturabilirsiniz ya da farklı bir isimde olur uzantının .php olduğunu unutmayın.

<!DOCTYPE html>
<html lang="tr">
<head>
    <title>Üye Kayıt Formu</title>
</head>
<body>
<form action="form-kontrol.php" method="POST">
    <table>
        <tr>
            <td>Adınız:</td>
            <td><input type="text" name="adi"/></td>
        </tr>
        <tr>
            <td>Eposta adresiniz:</td>
            <td><input type="text" name="eposta"/><br/></td>
        </tr>
        <tr>
            <td>Cinsiyet:</td>
            <td>
                <input type="radio" name="cinsiyet" value="kadın"/>Kadın
                <input type="radio" name="cinsiyet" value="erkek"/> Erkek
            </td>
        </tr>
        <tr>
            <td>Kullanıcı adı:</td>
            <td><input type="text" name="k_adi"/></td>
        </tr>
        <tr>
            <td>Şifre:</td>
            <td><input type="password" name="sifre"/></td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="checkbox" name="sozlesme"> Üyelik sözleşmesini okudum,onaylıyorum.
            </td>
        </tr>
        <tr>
            <td><input type="reset" value="Formu Temizle"/></td>
            <td><input type="submit" value="Kayıt Ol"/></td>
        </tr>
    </table>
</form>
</body>
</html>

Kayıt formundan POST methodu ile gelen verileri almak için form-kontrol.php isimli bir dosya oluşturalım farklı isimli bir dosyada oluşturabilirsiniz ancak form action parametresinin oluşturduğunuz dosya ile aynı olduğundan emin.

<?php
$adi = $_POST["adi"];
$eposta = $_POST["eposta"];
$cinsiyet = $_POST["cinsiyet"];
$kullanici_adi = $_POST["k_adi"];
$sifre = $_POST["sifre"];
$sozlesme = $_POST["sozlesme"] ? 1 : null;

if ($sozlesme == 1) {
    echo "Tebrikler başarıyla üye oldunuz. <br/>";
    echo "Adınız : $adi <br/>";
    echo "Epostanız : $eposta <br/>";
    echo "Kullanıcı Adınız : $kullanici_adi <br/>";
    echo "Şifreniz : $sifre";
} else {
    echo "Sözleşemeyi onaylamadan üye olamazsınız!";
}
?>

Yukarıdaki kodlarda ise formumuzdan POST methodu ile gelen verileri $_POST php global değişkeni ile aldık ve üyelik işlemini gerçekleştirdik. Tabi ki bu işlem bu kadar kolay değil bu işlemler sırasında birçok kontrol yapılıyor bu anlatım sadece aklınızda fikir oluşturması ve bu konu hakkında mantık oturtmanız içindir.

Eğer karar yapıları hakkında bir fikriniz yok ise öncelikle Php Programlama Karar Yapıları konusunu gözden geçirin çünkü php ile form kullanımı konusunda karar yapıları olmazsa olmazdır. Kullanıcıdan gelen tüm veriler karar yapıları ile kontrolden geçirilerek işleme alınır.

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir