• 15-09-2009, 11:01:21
    #1
    Arkadaşlar sayfada mesajların altına yorum yazmak için bir formum var.
    Buradan aldığım veriyi aynı sayfaya post edip veritabanına yazdırıyorum.
    Buraya kadar herşey normal ancak yorum yazılıp sayfa yenilenince form alanı boş olmasına rağmen veritabanına tekrar önceki yorumu yazıyor.
    Buna nasıl bir çözüm bulabilirim?
    Yorum kaydından sonra post içeriğini silme imanı var mı?
  • 15-09-2009, 11:36:26
    #2
    unset($_POST);
    POST ile gelen verileri değişkene atmadıysan post işinin bittiği yerin sonuna bu kodu eklersen post verileri silinir. Eğer değişkene atadıysan;
    $isim = $_POST['isim'];
    $yorum = $_POST['yorum'];
    unset($isim,$yorum);
    yapman gerekiyor.
  • 15-09-2009, 12:15:15
    #3
    Hocam söylediğin şekilde yaptım ancak değişen birşey olmadı. Verileri veritabanına yazdırdıktan hemen sonra unset yaptım ancak yine eskisi gibi.
  • 15-09-2009, 12:56:38
    #4
    Çözüm-1

    Verilerin dbye eklendiği sayfada değişiklik yaparak post edilen veriyi db ile karşılaştırıp daha önce dbye kayıt edilmediyse ekleyebilir aksi halde bişey yapmadan sayfayı tekrar göstertebilirsin.

    Çözüm-2

    Sayfayı yenile dediğinde verinin eklenmesinin bir sebebi gönderilecek bilgilerin veya yönlenilecek sayfanın adres çubuğunda yazıyor olmasıdır. Sayfa refres edildiğinde bu bilgiler sunucuya bir kez daha aynen aktarılır. Ekleme başarıyla yapıldıktan sonra

    <meta http-equiv="refresh" content="2; url=http://xxxxxx.com">

    gibi bir komutla farklı bir adrese yönlendirme yapılabilir.

    Çözüm-3

    1. ve 2. yöntem aynı anda kullanılarak daha kararlı bir sitem yapılabilir.
  • 15-09-2009, 13:28:07
    #5
    Biraz daha farklı bir yöntem izleyerek sorunu çözdüm. yorum_yaz.php diye bir sayfa oluşrup post ile buraya gönderdim ve mysqle yazdırma işlemini bu sayfada hallettim. İşlem bittikten sonrada önceki sayfaya yönlendirdim. Tam istediğim gibi olmadı ama sağlık olsun.
  • 15-09-2009, 13:35:12
    #6
    Değişkenleri vb yazdırdıktan sonra değişkenleri boş olarak ata.

    $degisken = '';
  • 15-09-2009, 13:37:00
    #7
    @alkadraz söylediğin şeyi daha önce denemiştim bir faydası olmadı.
  • 15-09-2009, 13:43:35
    #8
    O zaman form alanlarına action=$actionmesaj şeklinde yap.
    Alıntı
    $actionmesaj = '?islem=1';
    $islem = $_get['islem'];
    if($islem == 1){
    //$sql = vb kayıt
    if($sql){
    //sql başarılı ise actionmesaj == ''
    $actionmesaj == '';
    Gibi bir sürü şey yazılabilir sorun çözülür.
    }
    }
    }
  • 16-09-2009, 01:38:10
    #9
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Şöyle dene ;

    header("Location: xxxx.com/hede/hodo/mede.html");

    genelde kullandığım şekildir, ki şöyle bi özelliği vardır adam postu attıkdan sonra direk attığı postu da görebilmektedir.