Aynı Sayfada Birden Fazla Form İşlemi

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.

Yayınlayan

Tayfun Erbilen

2009'dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

“Aynı Sayfada Birden Fazla Form İşlemi” üzerine 10 yorum

  1. Aynı sayfada tek bir form işlemi olur ve if ( isset($_POST['form1']) ){ // 1. form işlemleri.. } bu kodu kullanırsak, bu sefer hata veriyor. 😉

  2. @Uğur Dalkıran, hata vermesi imkansız 🙂 İsterse hiç form olmasın.. Biz isset'le varlık kontrolü yapıyoruz.. Yoksa if koşulu çalışmaz.. Ben konuyu açmadan önce test ettim, bir sorun göremedim. Hatayı daha açıklayıcı anlatırsan hata mı değil mi kontrol ederiz 🙂

  3. Yararlı bilgi olmuş teşekkürşer 🙂 @Uğur yapamıyorum de hata veriyo deme 🙂

  4. Aşağıdaki kodda Boş bırakma kısmı her daim çıkıyor, Boş bırakıp tıklayınca çıkması gerek nerede hatam var ?

    <?php
    		if($_GET["dizin"]=1){
    			$dosya = @$_POST["klasorler"];
    			if(empty($dosya)){
    				echo "Boş bırakma";
    			}
    			else{
    				if(isset($_POST["olustur"])){
    					$dosya = $_POST["klasorler"];
    					$eski = umask(0);
    					$olustur = mkdir($_POST["klasorler"], 0777);
    					umask($eski);
    					if($olustur){
    						echo "Klasör oluştu.";
    					}
    					else{
    						echo "Hata klasör oluşturulamadı.";
    					}
    				}
    				else if(isset($_POST["sil"])){
    					$klasor = $_POST["klasorler"];
    					$sil = rmdir($klasor);
    					if($sil){
    						echo "Silindi";
    					}
    					else{
    						echo "Hata ! Silinemedi.";
    					}
    				}
    			}
    		}
    		
    		
    	?>
  5. Evvada şu kısım hatalı;

    if($_GET["dizin"]=1)

    yerine;

    if( $_GET["dizin"] == 1 )

    olmalıydı. Diğerlerine bakmadım.

  6. Tayfun abi teşekkür ederim çok işime yaradı. Bir proje yapıyordum ve bu kısımda hep hata oluyodu çok sağolasın.

Bir Cevap Yazın

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