Bazen tek sayfada birkaç formumuz oluyor.. Örneğin giriş sayfasında giriş ve hızlı kayıt ol gibi 2 form.. Böyle durumlarda hangisini post edersek edelim, biz doğru şekilde post kontrolü yapmadığımız için işler karışıyor.. Bunu biliyorum çünkü zamanında bende yaptım ve uzman cevap’ta sorulan sorulara göre hala yapanlar var ???? Peki böyle bir senaryoda ne yapmak gerekir? Öncelikle bu senaryonun html yapısı şöyle olsun;
<form action="" method="post"> <h1>Giriş Yap</h1> Kullanıcı Adı: <input type="text" name="kadi" /><br /> Şifre: <input type="password" name="sifre" /><br /> <button type="submit">Giriş Yap</button> </form> <form action="" method="post"> <h1>Hızlı Kayıt</h1> Kullanıcı Adı: <input type="text" name="kadi" /><br /> Şifre: <input type="password" name="sifre" /><br /> E-posta: <input type="text" name="eposta" /><br /> <button type="submit">Kayıt Ol</button> </form>
Evet normal şartlarda biz genelde şöyle bir kontrol yapıyoruz..
<?php if ( $_POST ){ // işlemler.. } ?>
Yani eğer post edilmişse diyoruz, ancak birden fazla form olunca her form için geçerli oluyor bu bölüm.. Bu yüzden yukarıdaki iki form için ayrı ayrı tanımlamamız gerek.. Ya da içerisinde de yazabiliriz ancak gerek yok.. Bunu yapmanın çokça yöntemlerinden en temeli, submit butonlarına name atamaktır.. Örneğin form1 ve form2 diye name’ler atıyalım..
<form action="" method="post"> <h1>Giriş Yap</h1> Kullanıcı Adı: <input type="text" name="kadi" /><br /> Şifre: <input type="password" name="sifre" /><br /> <button type="submit" name="form1">Giriş Yap</button> </form> <form action="" method="post"> <h1>Hızlı Kayıt</h1> Kullanıcı Adı: <input type="text" name="kadi" /><br /> Şifre: <input type="password" name="sifre" /><br /> E-posta: <input type="text" name="eposta" /><br /> <button type="submit" name="form2">Kayıt Ol</button> </form>
Evet şimdi php tarafında kontrollerimiz şöyle yapabiliriz;
<?php if ( isset($_POST['form1']) ){ // 1. form işlemleri.. } else if ( isset($_POST['form2']) ){ // 2. form işlemleri.. } ?>
Böylece aynı sayfada birden fazla form işlemini yapabiliriz.