• 05-02-2013, 13:57:49
    #1
    Arkadaşlar telefon numarası doğrulama kodu lazım. Yazılan değerin numerik ve 11 hanei olduğunu kontrol edecek. Javascript ile yapmıştık daha önce fakat php ile yapmam gerekiyor şuan paylaşabilecek olan olursa sevinirim.
  • 05-02-2013, 20:06:22
    #2
    telefon dogrulama derken formatımı lazım yoksa sadece sayı girilebilen bir alan ve sadece 10 karakter kontrolu mü veya 11 fark etmez şu şekilde yapabilirsin php ctype_digit ile sadece sayi mi girmis kontrol edip sonrasinda da strlen ile karakterini saydirarak dogru telefon numarasi girmesini saglayabilirsin javascript ile yapildiginda bu guvenlik gecilebilir ama php ile gecemez hic olmazsa ornek tel no sadece 5322221234 gibi 10 karakter yada basinda 0 istersen 11 karakter olur gibi...
  • 06-02-2013, 10:29:22
    #3
    SefaCan adlı üyeden alıntı: mesajı görüntüle
    telefon dogrulama derken formatımı lazım yoksa sadece sayı girilebilen bir alan ve sadece 10 karakter kontrolu mü veya 11 fark etmez şu şekilde yapabilirsin php ctype_digit ile sadece sayi mi girmis kontrol edip sonrasinda da strlen ile karakterini saydirarak dogru telefon numarasi girmesini saglayabilirsin javascript ile yapildiginda bu guvenlik gecilebilir ama php ile gecemez hic olmazsa ornek tel no sadece 5322221234 gibi 10 karakter yada basinda 0 istersen 11 karakter olur gibi...
    Format olarak doğrulama hocam. Yani telefon numarası alanı 05322222222 şeklinde 11 haneli rakamsal olacak şekilde kontrolü.
  • 06-02-2013, 12:28:00
    #4
    <?php
    function format_phone($phone)
    {
    	$phone = preg_replace("/[^0-9]/", "", $phone);
     
    	if(strlen($phone) == 7){
    		return preg_replace("/([0-9]{3})([0-9]{4})/", "$1-$2", $phone);
    	}elseif(strlen($phone) == 10){
    		return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "($1) $2-$3", $phone);
    	}elseif(strlen($phone) == 11){
    		return preg_replace("/([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{2})([0-9]{2})/", "$1-($2)-$3-$4-$5 " ,$phone);
    	}else{
    		return 0;
    	}
    }
    $no = "0532553332211";
    if(format_phone($no) == 0){
    	echo "Geçersiz telefon numarası, telefon numaranız 7,10 veya 11 haneli ve rakamsal olmalıdır.";
    }else{
    	echo format_phone($no);
    }
    ?>
  • 06-02-2013, 13:15:05
    #5
    şuradan destek alabilirsiniz, google a regular expression gsm no control yazarsanız işiniz çözülecektir.

    stackoverflow.com/questions/5831393/regular-expression-to-determine-if-phone-number-is-local-national-mobile
  • 06-02-2013, 18:37:13
    #6
    wdr.leo adlı üyeden alıntı: mesajı görüntüle
    <?php
    function format_phone($phone)
    {
    	$phone = preg_replace("/[^0-9]/", "", $phone);
     
    	if(strlen($phone) == 7){
    		return preg_replace("/([0-9]{3})([0-9]{4})/", "$1-$2", $phone);
    	}elseif(strlen($phone) == 10){
    		return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "($1) $2-$3", $phone);
    	}elseif(strlen($phone) == 11){
    		return preg_replace("/([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{2})([0-9]{2})/", "$1-($2)-$3-$4-$5 " ,$phone);
    	}else{
    		return 0;
    	}
    }
    $no = "0532553332211";
    if(format_phone($no) == 0){
    	echo "Geçersiz telefon numarası, telefon numaranız 7,10 veya 11 haneli ve rakamsal olmalıdır.";
    }else{
    	echo format_phone($no);
    }
    ?>
    Hocam paylaşımın için teşekkür ederim. Yanlız numaranın başında 0 olduğu zaman hata dönüyor nasıl düzeltilir acaba.
  • 06-02-2013, 22:33:03
    #7
    ee benim yazdigim olay tam sana uyuyor iste

    $tel = "05322222222";
    
    
    if(ctype_digit($tel) && strlen($tel)==11){
    echo "yes";
    }else{
    echo "no";
    }
  • 07-02-2013, 04:20:23
    #8
    REeL13 adlı üyeden alıntı: mesajı görüntüle
    Hocam paylaşımın için teşekkür ederim. Yanlız numaranın başında 0 olduğu zaman hata dönüyor nasıl düzeltilir acaba.
    Hocam başında 0 olduğu zaman ve 11 haneyi geçmediği sürece sorun gözükmüyor. Örnekteki numarayı kullandıysanız o 11 haneden fazla
  • 07-02-2013, 13:08:01
    #9
    wdr.leo adlı üyeden alıntı: mesajı görüntüle
    Hocam başında 0 olduğu zaman ve 11 haneyi geçmediği sürece sorun gözükmüyor. Örnekteki numarayı kullandıysanız o 11 haneden fazla
    Hocam ne hikmetse başında 0 olunca hata oluyor 11 hanede olsa 10 hanede olsa. Koddan anladığım kadarı ile ilk hane [0-9] 0 ile 9 arasında değer alabilir. Neyden dolayı hata dönüyor anlamadım.