• 05-02-2019, 16:59:10
    #1
    Arkadaşlar merhaba,

    Site'de başvuru gönderdikten sonra sayfa yenilenince post tekrar gönderiliyor. Bunu engellemek için ne yapabilirim ?
  • 05-02-2019, 17:01:26
    #2
    ajax ile gönder sorun kalmaz
  • 05-02-2019, 17:02:19
    #3
    Üyeliği durduruldu
    Başvurular veritabanına mı gönderiliyor, yoksa maile mi ?
  • 05-02-2019, 17:02:59
    #4
    Fhm adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar merhaba,

    Site'de başvuru gönderdikten sonra sayfa yenilenince post tekrar gönderiliyor. Bunu engellemek için ne yapabilirim ?
    Post işleminden sonra kodunuzun en sonuna sayfayı bir kere daha yeniletecek kod ekleyin.

    header('Location: index.php');
    gibi.

    Bu arada T.C. Kimlik ve Telefon numarası bölümlerine yazı yazılabiliyor o inputları düzenlemenizi öneririm. Birde bilgi doğruluğu hakkındaki checkbox işaretlenmeden form gönderilebiliyor
  • 05-02-2019, 17:03:56
    #5
    Platin üye
    header ("location: url");

    ile post verdirdikten sonra sayfaya yeniden yönlendirme yapabilirsin, ancak sayfayda her hangi bir çıktı almadan yapılması gerekiyor,

    eğer sayfan müsait değilse çıktı aldığın yere aşağıdakini koyabilirsin,

    window.location.replace("http://sayfaadresi.com");
    ama en profesyonel olan çözüm form göndermeden önce token üretip, form gönderdikten sonra token ile işlem yapıp, token ı değiştirmektir. iki token birbirini tutmuyorsa form göndermesinin önüne geçilir.
  • 05-02-2019, 20:07:57
    #6
    post işlemi bittiği yerin hemen ardından

    header ("location: url");
    exit;

    bu kod ile devam ediniz.
  • 05-02-2019, 23:59:00
    #7
    kralldepo adlı üyeden alıntı: mesajı görüntüle
    ajax ile gönder sorun kalmaz
    Maalesef o kadar hakim değilim hocam.

    notbil adlı üyeden alıntı: mesajı görüntüle
    Başvurular veritabanına mı gönderiliyor, yoksa maile mi ?
    Veritabanına gönderiliyor hocam.

    black_scorpion adlı üyeden alıntı: mesajı görüntüle
    Post işleminden sonra kodunuzun en sonuna sayfayı bir kere daha yeniletecek kod ekleyin.

    header('Location: index.php');
    gibi.

    Bu arada T.C. Kimlik ve Telefon numarası bölümlerine yazı yazılabiliyor o inputları düzenlemenizi öneririm. Birde bilgi doğruluğu hakkındaki checkbox işaretlenmeden form gönderilebiliyor
    Kodu ekledim ama aynı işlem devam ediyor hocam, checkbox ve diğer işlemleri de yaptım, uyardığınız için teşekkürler.

    merner adlı üyeden alıntı: mesajı görüntüle
    header ("location: url");

    ile post verdirdikten sonra sayfaya yeniden yönlendirme yapabilirsin, ancak sayfayda her hangi bir çıktı almadan yapılması gerekiyor,

    eğer sayfan müsait değilse çıktı aldığın yere aşağıdakini koyabilirsin,

    window.location.replace("http://sayfaadresi.com");
    ama en profesyonel olan çözüm form göndermeden önce token üretip, form gönderdikten sonra token ile işlem yapıp, token ı değiştirmektir. iki token birbirini tutmuyorsa form göndermesinin önüne geçilir.
    location kodunu ekledim ancak sayfa yine aynı sorunu veriyor, else kodundan sonra ekledim. Doğru yer mi bilmiyorum, verdiğiniz diğer bilgiler için ayrıca teşekkür ederim ama çok hakim olmadığım için o kadarını anlamadım.

    SefaCan adlı üyeden alıntı: mesajı görüntüle
    post işlemi bittiği yerin hemen ardından

    header ("location: url");
    exit;

    bu kod ile devam ediniz.
    Kodu ekledim ama aynı hata devam ediyor hocam.


     <?php 
    
    if ($_POST) { 
    
        
        $ad = $_POST['ad']; 
        $soyad = $_POST['soyad'];
    	$eposta = $_POST['eposta'];
    	$tc = $_POST['tc'];
    	$telefon = $_POST['telefon'];
    	$sehir = $_POST['Sehir'];  
    
      
    
        if ($ad<>"" && $soyad<>"" &&  $eposta<>"" && $tc<>"" && $telefon<>"" && $sehir<>"") { 
      
            
            if ($baglanti->query("INSERT INTO kayit (ad,soyad,eposta,tc,telefon,Sehir) VALUES ('$ad','$soyad','$eposta','$tc','$telefon','$sehir')")) 
            {
                echo "<p align='center' style='color:red;'><strong><font size=\"5\">", "Başvurunuz Alındı</strong></font></p>"; 
            }
            else
            {
                echo "Hata oluştu";
            }
    
        }
    
    }
    header ("location: index.php");
    exit;
    ?>
    PHP kodlarım bu şekilde.
  • 06-02-2019, 03:16:53
    #8
    Üyeliği durduruldu
    Ajax yöntemi ile yapmak en mantıklısı ama eğer ajax bilginiz yok ise şu şekilde bir mantık yürütebilirsiniz. Bu şekilde de sayfa yenilendiğinde post işlemi olacaktır ama veritabanında aynı veri daha önceden kayıt olduğu için yeniden kayıt işlemi yapılmayacaktır. Ben kısaca mantığı belirttim, siz kendinize göre düzenleyebilir ve kendinize göre hata mesajları verdirtebilrsiniz. Bu arada yazdığım kodda header kodunu kullanmanıza gerek olmadığı için kaldırdım.
    http://prntscr.com/mh6f0e
  • 06-02-2019, 15:04:44
    #9
    notbil adlı üyeden alıntı: mesajı görüntüle
    Ajax yöntemi ile yapmak en mantıklısı ama eğer ajax bilginiz yok ise şu şekilde bir mantık yürütebilirsiniz. Bu şekilde de sayfa yenilendiğinde post işlemi olacaktır ama veritabanında aynı veri daha önceden kayıt olduğu için yeniden kayıt işlemi yapılmayacaktır. Ben kısaca mantığı belirttim, siz kendinize göre düzenleyebilir ve kendinize göre hata mesajları verdirtebilrsiniz. Bu arada yazdığım kodda header kodunu kullanmanıza gerek olmadığı için kaldırdım.
    http://prntscr.com/mh6f0e

     <?php 
    
    if ($_POST) { 
    
        
        $ad = $_POST['ad']; 
        $soyad = $_POST['soyad'];
    	$eposta = $_POST['eposta'];
    	$tc = $_POST['tc'];
    	$telefon = $_POST['telefon'];
    	$sehir = $_POST['Sehir'];  
    
    
    
        if ($ad<>"" && $soyad<>"" &&  $eposta<>"" && $tc<>"" && $telefon<>"" && $sehir<>"") { 
      $telefonsor=$baglanti->query("SELECT telefon FROM kayit WHERE telefon='$telefon'");
            $telefonsay=$telefonsor->rowCount();
            if($telefonsay==0){
            
            if ($baglanti->query("INSERT INTO kayit (ad,soyad,eposta,tc,telefon,Sehir) VALUES ('$ad','$soyad','$eposta','$tc','$telefon','$sehir')"))   
            {
                echo "<p align='center' style='color:red;'><strong><font size=\"5\">", "Başvurunuz Alındı</strong></font></p>"; 
            }
          if($telefonsay==1){
            	echo "Bu telefon numarası ile daha önce başvuru yapılmıştır.";
            }
    
        }
    
    }
    exit;
    
    ?>
    Verdiğiniz gibi ekledim kodları ama sayfa hiç açılmıyor bu şekilde. Bi yerde bi hata mı yaptım acaba ?