lostyazilim
tr.link

Php tekrar eden kayıt HATASI!

11 Mesajlar 1.640 Okunma
lstbozum
tr.link

Mustafakoca99 Mustafakoca99 WM Aracı Kullanıcı
  • Üyelik 01.03.2020
  • Yaş/Cinsiyet 25 / E
  • Meslek Yazılım uzmanı
  • Konum Aydın
  • Ad Soyad M** K**
  • Mesajlar 151
  • Beğeniler 34 / 34
  • Ticaret 0, (%0)
merhabalar, aşağıda görmüş olduğunuz kodun bir sorunu var. kayıt işlemi doğru şekilde yapılıyor fakat her sayfayı yenilediğimde kayıt işlemini tekrar yapıyor. mesela iletişim kurmak için birisi mesaj atıyor, sayfa yeniliyor ve mesajı bir daha göndermiş oluyor böylece veritabanında gereksiz yer kaplama yapıyor. çözümü bilen varsa yardımcı olabilir mi?


if($_POST["name"]!="" and $_POST["email"]!="" and $_POST["phone"]!="" and $_POST["message"]!="")
{

$adi=$_POST["name"];
$mail=$_POST["email"];
$tel=$_POST["phone"];
$message=$_POST["message"];


//ekleme işlemi
$komut=$conn->exec("INSERT INTO mail (adsoyad,email, telefono,text) VALUES ('$adi','$mail','$tel','$message')");
//ekleme işlemi kontrol ve sonucunda mesaj yazar
if($komut){

echo "
Mesaj gönderimi başarılı, en kısa zamanda sizinle iletişime geçeceğim.!
";

$komut=null;

}
}
else{

echo '
Mesaj Gönderimi Başarısız.!
';
}

$conn=null;


?>
 

 

wmaraci
reklam

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
Mustafakoca99 sayfaya parametre verirsen çözülür hocam.

örnek olarak şöyle.



$time = time();

if($komut){

echo "başarılı";

header("Location: sayfa_url.php?islem=ok&token="$token);

}


 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
Merhaba...



echo "
Mesaj gönderimi başarılı, en kısa zamanda sizinle iletişime geçeceğim.!
";

sleep(5);
header('location:anasayfa.php');


Bu şekilde işlemin 5 saniye sonrasında sayfayı yönlendirseniz sorun ortadan kalkar sanırım.
(anasayfa yerine herhangi bir sayfa adı yazabilirsiniz.)
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

ÖmerGünay adlı üyeden alıntı

Mustafakoca99 sayfaya parametre verirsen çözülür hocam.

örnek olarak şöyle.



$time = time();

if($komut){

echo "başarılı";

header("Location: sayfa_url.php?islem=ok&token="$token);

}





Cevap yazmaya başladığımda henüz yanıt yoktu, sizin cevabınız daha komplike...
Görseydim yazmazdım...

Bu $token olayını ve kullanımını görmedim daha önce biraz açar mısınız üstadım...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
wmaraci

smumcu59 smumcu59 WM Aracı Kullanıcı
  • Üyelik 01.02.2020
  • Yaş/Cinsiyet 24 / E
  • Meslek Webmaster - Developer
  • Konum Tekirdağ
  • Ad Soyad S** M**
  • Mesajlar 94
  • Beğeniler 15 / 15
  • Ticaret 0, (%0)
En basiti işlem bittiği zaman unset yapabilirsin.
 

 

https:/yemeklegel.com

YemekleGel Online Yemek Siparişi Platformu

PorcuSx PorcuSx WM Aracı Kullanıcı
  • Üyelik 23.07.2020
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılımcı
  • Konum Diğer
  • Ad Soyad Y** Y**
  • Mesajlar 23
  • Beğeniler 2 / 3
  • Ticaret 0, (%0)
if($_POST["name"]!="" and $_POST["email"]!="" and $_POST["phone"]!="" and $_POST["message"]!=""){

// Buradan sonra bir sql komutu çalıştırırsanız sayfayı yenilemenize gerek kalmaz. Mesajlaşma uygulamalarında en önemli faktör kullanıcının rahat etmesidir. Bunun için kullanmanız gereken komut

SQL sorgusu çekilecek 'Eğer message birebir aynı ise işlem yapmayacak
Eğer message değişik ise işlem yapacak yeni mesaj yazdığı için tekrar kaydedecek.
 

 

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)

BEYAZMASTER adlı üyeden alıntı

Cevap yazmaya başladığımda henüz yanıt yoktu, sizin cevabınız daha komplike...
Görseydim yazmazdım...

Bu $token olayını ve kullanımını görmedim daha önce biraz açar mısınız üstadım...



Token verdiğimizde link değişmiş oluor kişi f5 lese bile artık eski veriler ile bir bilgiye ulaşamıyor. Tokenı farklı şekillerde verebilirsiniz ama time kullanıyorum ben anlık zaman olduğu için aynı link gelme ihtimali sıfırlanıyor.
BEYAZMASTER

kişi bu mesajı beğendi.

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

ÖmerGünay adlı üyeden alıntı

Token verdiğimizde link değişmiş oluor kişi f5 lese bile artık eski veriler ile bir bilgiye ulaşamıyor. Tokenı farklı şekillerde verebilirsiniz ama time kullanıyorum ben anlık zaman olduğu için aynı link gelme ihtimali sıfırlanıyor.


Bomba yöntem...

Teşekkür ederim bilgilendirme için üstadım...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 43 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
Sanıyorum post verilerinin tekrar tekrar refreshte işlenmemesi için en iyi çözüm işlem bitince sayfayı o sayfaya boş olarak yönlendirmek. Bu şekilde token falan kullanmadan kurtulursunuz ki çoğu bütük siteninde token yerine bu yöntemi kullandığını görebiliriz.
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

AzveNet adlı üyeden alıntı

Sanıyorum post verilerinin tekrar tekrar refreshte işlenmemesi için en iyi çözüm işlem bitince sayfayı o sayfaya boş olarak yönlendirmek. Bu şekilde token falan kullanmadan kurtulursunuz ki çoğu bütük siteninde token yerine bu yöntemi kullandığını görebiliriz.


Boş olarak yönlendiren kod tam olarak nasıldır üstadım?
Yazabilir misiniz mümkünse...

Ayrıca geri gidildiğinde gönderilen bilgilere (tokenda olduğu gibi) ulaşılamaz oluyor mu?
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al