• 16-08-2010, 11:01:50
    #1
    Buk
    Üyeliği durduruldu
    form.php
    <form action="index.php?view=kapanis" method="post">
    Formla ilgili bir takım şeyler...
    </form>
    index.php
    $view = empty($_GET['view']);
    switch($view)
    {
    case 'kapanis':
    
      	  	   if (isset($_POST["soru1"]))
      	  	   {
      	  	     veritabanına_cevap_gir($_POST["soru1"]);
      	  	   }
    break;
    }

    Üstteki kodda da belirttiğim gibi formun action="index?view=kapanis.php"
    Bir kişi, formu doldurup submit deyip index?view=kapanis.php adresine gittiği zaman $view=kapanis olduğu için switchde kapanis içerisine düşerek, formdaki veriyi veritabanına giriyorum.

    Ama Bu formu dolduran kişi submit dedikten sonra gittiği index?view=kapanis.php sayfasında eğer ki 'sayfayı yenile' derse, yeniden $view=kapanis olduğu için bu sefer, istemediğim halde aynı form verileri veritabanına yine giriyor ve yeni bir satır daha ekliyor.
    Bunu nasıl önlerim bir fikri olan var mı?

    Şimdiden Teşekkürler.
  • 16-08-2010, 11:34:21
    #2
    Üyeliği durduruldu
    Yenile deyince alanlar boş gitmiyormu? Boş olup olmadıgını kontrol et.
    Eğer boşsa şurya git , yada msjda ver.
  • 16-08-2010, 12:28:39
    #3
    Buk
    Üyeliği durduruldu
    Aşağıdaki if ile boş olup olmadığının kontrolünü yapıyorum.
    Ama boş olması mümkün değil zaten.
  • 16-08-2010, 12:38:57
    #4
    Üyeliği durduruldu
    Hocam o zaman şu şekilde yapın bence;
    formu başka bir php dosyasına gönderin, işlemi orda yapıp hemen ardından header("Refresh:3; url=gidilecek.php"); gibi bir şekilde yönlendirin derim. Ya da bu veritabanına kayıt etmeden önce o üyeyle ilgili ilgili satırın olup olmadığını kontrol edebilirsiniz belki. Sistemi tam oalrak bilmediğim ve ne işlev gördüğünü de bilmediğim için kesin bir şey söyleyemiyorum. Bir de benim kullandığım bir yöntem oalrak, oradaki view= işlemini url'den yazıp GET ile almak yerine, form içine hidden input olarak koyup POST ile çekebilirsiniz. Gerçi aynı sayfada yenilenince aynı form verilerini göndereceğinden aynı hesaba gelir büyük ihtimalle.