• 26-10-2008, 19:53:27
    #1
    Basit bi form doldurup bilgileri mysql'e yazmak istiyorum. Fakat her f5 yapışımda aynı bilgiler yeniden yazılıyo mysql'e. Bunun için nasıl bi koruma koyabilirim. Bilgiler sadece bir defa yazılsın ve her f5 yapıldığında bi daha yazılsın istemiyorum
  • 26-10-2008, 19:56:13
    #2
    Üyeliği durduruldu
    mysql_num_rows u araştırın, basit bir if ile veri kaydedilmiş mi edilmemiş mi kontrol ettirirsiniz.
  • 26-10-2008, 20:01:33
    #3
    hayır sorun aynı bilgilerin kayıtlı olup olmaması değil. Ben her f5 yaptığımda aynı bilgiler girilsin istemiyorum. Bunun için basit bi koruma olması lazım.
  • 26-10-2008, 20:07:33
    #4
    Üyeliği durduruldu
    O zaman captcha gibi bir çözüm seni bekliyor.
    Veya session ile de bir çözüm bulabilirsin.
    Veya;
    durum=off
    Eğer durum on ise
    { // kayıt sayfası
    durum=on
    db ye kayıt
    durum=off // kayıt sonunda durum off olacağı için f5 ile yenilense de sonuç alamaz, tabi bu mantık basit bir mantık.
    }
    Else (diğer türlü)
    {//form
    kutucuklar vs vs vs...
    gizli olarak da durum değişkenin değerini on olarak yollatırsın; böylece butona bastığında off olan değer on a dönüşür ve kaydı yapar, sonra da off a dönüşür tekrar.
    }
  • 26-10-2008, 20:08:01
    #5
    Üyeliği durduruldu
    Tam olarak ne istediğini anlamadım ama formdan veriyi gönderdin.Diğer sayfada veriyi kaydedince direk sayfayı yönlendir sende.Gerçi yine çözüm değil saçmaladım ama kusura bakma
  • 26-10-2008, 20:11:45
    #6
    mysql_db_query ($dbname,"Update uyeler set kredisi='$hesapla' Where u_id='$ID' ",$db) or die (mysql_error());
     $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("insert into haraketler (
    kullanici_id,
    kod,
    numara,
    kont_miktar,
    dusen_para,
    gonderilme_tarihi,
    ip,
    durum
    )values(
    '$ID','$kod','$numara','$miktar','$alis',NOW(),'$ip','0')",$db) or die (mysql_error());


    Şimdi yukarıdaki kodlarla mysql'e veriyi yazdırıyorum.. Herşey güzel. Veri yazma işlemi bittikten sonra f5 yapıyorum aynı bilgiler tekrar yazılıyor mysql'e. Ben her yeni veri yazdırmak için tekrar form doldurulsun istiyorum.. Anlatabilmişimdir umarım
  • 26-10-2008, 20:13:51
    #7
    Üyeliği durduruldu
    Yukarıda anlattığım mantık o işi yapar.
  • 26-10-2008, 20:25:25
    #8
    Javascriptle basit olarak geri gönderirsin böylece f5'e bassa bile işlemez;
    <script language='javascript'>alert('Veri Eklendi');history.go(-1);</script>
  • 26-10-2008, 20:27:40
    #9
    <?php
    session_start();
    $guvenlik = $_POST['guvenlik'];
    
    if($guvenlik == $_SESSION['guvenlik']){
    mysql_db_query ($dbname,"Update uyeler set kredisi='$hesapla' Where u_id='$ID' ",$db) or die (mysql_error());
     $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("insert into haraketler (
    kullanici_id,
    kod,
    numara,
    kont_miktar,
    dusen_para,
    gonderilme_tarihi,
    ip,
    durum
    )values(
    '$ID','$kod','$numara','$miktar','$alis',NOW(),'$ip','0')",$db) or die (mysql_error());
    unset($_SESSION['guvenlik ']);
    }else{
    echo 'Lütfen forma dönüp formu tekrar doldurun.';
    }
    ?>
    Alıntı
    <form action="yolla.php" method="post">
    <!-- Formların -->

    <input type="hidden" value="<?php echo $_SESSION['guvenlik '] = rand(9999,99999); ?>" name="guvenlik">
    </form>
    obidergi nin de dediği gibi session ile yapabilirsin.