• 21-07-2009, 03:18:09
    #1
    bir form sayfamız var örneğin
    <!--form.php-->
    <form action=form.php method=post>
    <input type=text value=deneme name=deneme>
    <input type=submit value=gonder name=gonder></form>
    burada bir post işlemi yapılıyor ve ardından Refresh(F5) yapılınca sayfa aynı veriyi tekrar gönderiyor.Bunu engellemenin bir yolu var mıdır..
    Şimdiden sağolun...
  • 21-07-2009, 04:05:42
    #2
    Güvenlik kodu koyarsan, sayfa yenilendiğinde kod'da yenilendiğinden veriyi iletmez.
  • 21-07-2009, 04:08:17
    #3
    Üyeliği durduruldu
    bir çok yolu var. Sayfaya veri request edildiginde, yani form yollandıgında;
    • header ile yonlendirerek çözülebilir,
    • veri mysqla ekleniyorsa unique field ile çözülebilir,
    • javascript ile refresh edilebilir (js desteksiz browserler için bu pek saglıklı olmaz),
    örnekler çoğaltılabilir...
    Fakat en sık kullanılan bir yöntem olan header yönlendirmesi, sağlıklı ve kullanışlı bir yöntemdir. Örnek olarak aşağıda verdiğim kod header yonlendirme ile re-post veri girişimini önler...
    form.php
    <?php
    ob_start();
    if ($_REQUEST['islem'] == 'kaydedildi')
    {
        $saniye = 1; // Yönlendirme süresi saniye cinsinden
        echo '<b>Veri kaydedildi...</b>';
        echo '<script>setTimeout("window.location = \'form.php\'", ' . $saniye . '000)</script>';
        exit;
    }
    if ($_REQUEST['gonder'])
    {
        if ($_REQUEST['deneme'] <> NULL)
        {
            fwrite(fopen('veri_kayit.txt', 'a'), $_REQUEST['deneme']);
            header('location: form.php?islem=kaydedildi');
            exit;
        }
    }
    else
    {
    ?>
    <form action="form.php" method="POST">
        <input type="text" name="deneme">
        <input type="submit" value="gonder" name="gonder">
    </form> 
    <?php
    }
    ob_end_flush();
    ?>
  • 21-07-2009, 04:16:01
    #4
    Üyeliği durduruldu
    ClubArkadas adlı üyeden alıntı: mesajı görüntüle
    Güvenlik kodu koyarsan, sayfa yenilendiğinde kod'da yenilendiğinden veriyi iletmez.
    güvenlik kodu şart değil...
  • 08-08-2009, 17:40:02
    #5
    teşekkürler header yöntemi ile hallettim +rep