lostyazilim
tr.link

php form uygulaması hatası

6 Mesajlar 1.279 Okunma
acebozum
tr.link

olkunmustafa olkunmustafa WM Aracı Kullanıcı
  • Üyelik 18.04.2012
  • Yaş/Cinsiyet 37 / E
  • Meslek Web & Android Developer
  • Konum
  • Ad Soyad M** O**
  • Mesajlar 423
  • Beğeniler 60 / 44
  • Ticaret 0, (%0)
php'de deneme amaçlı ufak bir form uygulaması yapmaya çalışyıorum. Form şu şekilde






Bu formdaki ad soyad kısmını kayitcek.php sayfasına gönderiyorum. Burada kodları aşağıdaki şekilde işleyerek veritabanına yazdırıyorum.

include "baglan.php"; $adi=$POST["adi"]; $soyadi=$POST["soyadi"];

$sql="insert into adsoyad (konuid,adi,soyadi) values ('','$adi','$soyadi')"; $kayit=mysqlquery($sql); if($kayit){ header("location:icerik.php"); } else { echo ""; }
?>


Eğer kayıt başarılıysa header fonksiyonu ile tekrar içerik.php sayfasına yönlendiriyorum.

Sorunum şu; Şimdi ben bu kaydı başarılı ise direk olarak icerik.php sayfasına yönlendirdiğim için -kaydınız başarılı olmuştur- veya başarısız kayıt diye bir uyarı gösteremiyorum. Herşey en başa dönüyor. Bu duruma karşı ne yapmam gerektiğini çok denedim ancak olmadı. yardımlarınızı bekliyorum.
 

 

elektronikssl
webimgo

smhayhan smhayhan WM Aracı Kullanıcı
  • Üyelik 25.12.2011
  • Yaş/Cinsiyet 30 / E
  • Meslek Front/Back-end Developer
  • Konum Ankara
  • Ad Soyad ** **
  • Mesajlar 96
  • Beğeniler 21 / 35
  • Ticaret 0, (%0)
mysqlquery -> mysql_query olmalı
 

 

cudjex cudjex ozergul.net Kullanıcı
  • Üyelik 23.11.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum İzmir
  • Ad Soyad Ö** G**
  • Mesajlar 1647
  • Beğeniler 347 / 570
  • Ticaret 8, (%100)
şöyle yapabilrsin
if($kayit){
echo 'kayit başarılı
';
}


3 sn içinde icerik.php ye yönlendirecektir.
AzReTL

kişi bu mesajı beğendi.

ozergul.net/com

olkunmustafa olkunmustafa WM Aracı Kullanıcı
  • Üyelik 18.04.2012
  • Yaş/Cinsiyet 37 / E
  • Meslek Web & Android Developer
  • Konum
  • Ad Soyad M** O**
  • Mesajlar 423
  • Beğeniler 60 / 44
  • Ticaret 0, (%0)

cudjex adlı üyeden alıntı

şöyle yapabilrsin
if($kayit){
echo 'kayit başarılı
';
}


3 sn içinde icerik.php ye yönlendirecektir.


o 3 sn. içerisinde de F5 yapıldığı zman aynı kaydı tekrar tekrar gönderiyor.
Bende şöyl bir çözüm buldum. Kayıt başarılıysa kayitbasarili.php sayfasına yönlendiriyorum. Orada karşısına farklı bir form gönderiyorum.

Bu sefer bir gücenlik sorunu var . Kullanıcı manuel olarak www.siteismi.com/kayitbasarili.php yazdığı zaman o forma ulaşıyor. Ben sadece yönlendirilen sayfadan gelenlerin buraya ulaşmasını istiyorum. Yardımcı olabilir misiniz ?
 

 

wmaraci
wmaraci

cudjex cudjex ozergul.net Kullanıcı
  • Üyelik 23.11.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum İzmir
  • Ad Soyad Ö** G**
  • Mesajlar 1647
  • Beğeniler 347 / 570
  • Ticaret 8, (%100)
sanırım şöyle yaapbilirsin(httacces ile)

Redirect /kayitbasarili.php site.com/404.php
gibi..

aslında direkt formu ajax ile yapsan daha mantıklı olmaz mı?

formuna kayit id sini ata.sonra da şu jquery kodlarını kullan.kodlarda kayit idsine sahip formu serialize edip sayfayı yenilemeden kayit gönderiyoruz.

<script>
function _kayit()
{
$('#sonuc').html('yükleniyor.').slideDown("slow");
var $kayit = $("form#kayit").serialize();
$.ajax({
type: "post",
url: "http://site.com/kayitcek.php",
data: $kayit,
success: function(sonuc) {
$('#sonuc').html(sonuc);
}
});
return false;
}
</script>



formun yapısı şöyle olacak :






hemen altına da şunu ekle



kayitcek.php ise şöyle

include "baglan.php"; $adi=$POST["adi"]; $soyadi=$POST["soyadi"];
$sql="insert into adsoyad (konuid,adi,soyadi) values ('','$adi','$soyadi')";
$kayit=mysql_query($sql);
if($kayit){
echo 'kayit başarılı';
} else {
echo "hatalı kayıt"; }
?>


denemedim ama çalışır diye düşünüyorum.
olkunmustafa

kişi bu mesajı beğendi.

ozergul.net/com

olkunmustafa olkunmustafa WM Aracı Kullanıcı
  • Üyelik 18.04.2012
  • Yaş/Cinsiyet 37 / E
  • Meslek Web &amp; Android Developer
  • Konum
  • Ad Soyad M** O**
  • Mesajlar 423
  • Beğeniler 60 / 44
  • Ticaret 0, (%0)

cudjex adlı üyeden alıntı

sanırım şöyle yaapbilirsin(httacces ile)

Redirect /kayitbasarili.php site.com/404.php
gibi..

aslında direkt formu ajax ile yapsan daha mantıklı olmaz mı?

formuna kayit id sini ata.sonra da şu jquery kodlarını kullan.kodlarda kayit idsine sahip formu serialize edip sayfayı yenilemeden kayit gönderiyoruz.

<script>
function _kayit()
{
$('#sonuc').html('yükleniyor.').slideDown("slow");
var $kayit = $("form#kayit").serialize();
$.ajax({
type: "post",
url: "http://site.com/kayitcek.php",
data: $kayit,
success: function(sonuc) {
$('#sonuc').html(sonuc);
}
});
return false;
}
</script>



formun yapısı şöyle olacak :






hemen altına da şunu ekle



kayitcek.php ise şöyle

include "baglan.php"; $adi=$POST["adi"]; $soyadi=$POST["soyadi"];
$sql="insert into adsoyad (konuid,adi,soyadi) values ('','$adi','$soyadi')";
$kayit=mysql_query($sql);
if($kayit){
echo 'kayit başarılı';
} else {
echo "hatalı kayıt"; }
?>


denemedim ama çalışır diye düşünüyorum.


Öncelikle cevabın için teşekkür ederim. Ancak en basit yöntem olarak kayit_basarili.php sayfasını oluşturdum ve orada 5 sn bekleterek yarışma düzenleyeceğim sayfaya gönderdim. Bu sırada da yarışmaya kayıt yaptırmadan katılmasını engellemek içinde session kullandım.
cudjex

kişi bu mesajı beğendi.

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al