Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
karakter kaldı

Ajax-Php-Mysql Kullanıcı Kayıt Kontrolü

Başlıktada olduğu gibi İşin içinde ajax'da var.Daha yeni başladığım için ajaxda kontrolleri yapamadım,bende php ile bir mesaj döndürüp ona göre ajax çıktısı ürettiriyorum.
Soruma gelecek olursak aklıma gelen bütün hileli kayıt olma yollarına bir cevap buldum gibi ama bir sorun var 2 gündür bulamadım.Şimdi formda 4 alan var:kullanıcı adı,şifre,mail,güvenlik kodu.
Bu alanlardan mesala kullanıcı adına diyelim yukonit girdim kayıt olmayı deneyinde diğerleri boş olduğu için hata veriyor.tamam burada sorun yok ama mesela hepsini hatalı girdiğimde kontrol etmeden kaydediyor.
Örnek vareyim
Kullanıcı Adı:c
şifre:c
Email:c
güvenlik kodu:(Ne2Rs) c

textboxları böyle doldurduğumda kaydediyor.Güvenlik kodunu bile kabul ediyor.Bunun için neyapmam lazım.
İlginiz için teşkkürler...

Kodlar:


<?php
session_start();
include('ayar.php');

$kadi=@$_POST['kadi'];
$sifre=@$_POST['sifre'];
$email=@$_POST['email'];
$guvenlik=@$_POST['guvenlik_kodu'];
$hangisi=@$_POST['hangisi'];

$arakadi=mysql_query("SELECT * FROM uyeler WHERE kadi='$kadi'");
$aramail=mysql_query("SELECT * FROM uyeler WHERE email='$email'");

if($hangisi=="kadi"){	
	if(strlen($kadi)>10){
		echo "10_dan_buyuk";
		}else if(mysql_num_rows($arakadi)>0){
			echo "ayni_kadi";
			}else if(strlen($kadi)<3){
				echo "3_den_kucuk";
				}else{
					echo "kadi_oldu";
					}	
}else if($hangisi=="sifre"){
	if(strlen($sifre)<3){
		echo "sifre_3_den_kucuk";
		}else if(strlen($sifre)>10){
			echo "sifre_10_den_buyuk";
			}else{
				echo "uygun_sifre";
				}
}else if($hangisi=="email"){
	if(mysql_num_rows($aramail)!=0){
			echo "bulunan_mail";
		}elseif(filter_var($email,FILTER_VALIDATE_EMAIL)){
			echo "uygun_mail";
		}else{
			echo "mail_hata";
			}	
}else if($hangisi=="guvenlik_kodu"){
	if($guvenlik != $_SESSION['guvenlik_kodu']){
		echo "kod_hatali";
		}else{
			echo "kod_dogru";
			}
}else if(empty($kadi) || empty($sifre) || empty($email) || empty($guvenlik)){
		echo "bos_alan";
		}else{
			if(mysql_num_rows($aramail)!=0 || mysql_num_rows($arakadi)>0){
				echo "kadi_mail_var";
				}else{
			$kaydet=mysql_query("INSERT INTO uyeler(kadi,sifre,email) VALUES('$kadi','$sifre','$email')");
			if($kaydet){
				echo "kayit_basarili";
				}else{
					echo "kayit_basarisiz";
					}
				}
}


?>

+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap Doğru Cevap

  • Avatar of hkor
    3 ay önce
    cevap - soru
    Hocam bir else if daha eklersen bu iş olur gibi bak şurdan sonra;

    else if(empty($kadi) || empty($sifre) || empty($email) || empty($guvenlik)){

    echo "bos_alan";

    }
    -----
    bunu eklersen;
    else if(empty($kadi) && empty($sifre) && empty($email) && empty($guvenlik)){

    echo "bos_alan";

    }
    • Avatar of yukonit yukonit
      senin kodunuda ekledim ama benim sorun o değil,sorun hepsine yanlış değer girince doğru değeri veriyor.örnekte kullanıcıc adı ve şifre 3 karakterden az ise hata verecek tamam veriyor ama bütün textboxlara mesela a harfini girince kayıt yapıyor sorunum bu?İnşallah anlatabilmişimdir :D
      İlginiz için tekrar teşekkürler...
      3 ay önce yazılmış
    • Avatar of hkor hkor
      else if else if diye devam ettiğinden tümüne a yazarsan hepsini pas gecer ve şuradaki;

      if(mysql_num_rows($aramail)!=0 || mysql_num_rows($arakadi)>0){
      echo "kadi_mail_var";
      }


      şartı sağlarsa kayıt yapar o zaman en son basamağa bir şeyler daha ekleyebilirsin...
      3 ay önce yazılmış
    • Avatar of yukonit yukonit
      ilgin için teşekkürler,kendimi zorlamamla hallettim :D Herhal iç içe yazsaydım daha kolay olacaktı.
      3 ay önce yazılmış

Cevaplar

Hiç cevap bulunamadı.