3 operatörün farklı tipteki nolarını baz alırsak bir gsm doğrulama kodu yazmak istesek nasıl yazardınız. Ayrıca örneğin bu numaraların yanlış girilebileceğini düşünerek düzeltebilecek şekilde.
Örneğin bizim almak istediğimiz 5351234567 ama bunu kişi 05351234567 veya +905351234567 şeklinde veya çok farklı 10,11 haneli numaralar şeklinde yazdığı durumlarda farklı davranacak ve gsm numarasını doğru ise verecek yanlış işe boş dönecek bir fonksiyonu nasıl yazardınız.
Gsm doğrulama fonksiyonu nasıl yazardınız?
10
●2.546
- 07-05-2010, 12:03:17
- 07-05-2010, 12:15:00$kac=strlen($cepno);
echo $kac;
if($kac=="10"){echo "dogru";}else{echo "yalnis";} - 07-05-2010, 12:34:27Ben aslında bir fonskiyon yazdım ama bir çok ifden oluşuyor sanki bunu daha kolay şekilde yapılabilir diye düşünüyorum.
numaranın doğru yada yanlış olduğunu anlamda sorun yok strlen ile dediğiniz gibi 10 mu diye sorabiliriz ama gelen numaranın Türkiye vb.. bir gsm operatörüne ait olduğunu anlamak hani bu iban doğrulama kredi kartı doğrulama gibi.
örmek vermek gerekirse başında 5 kontrolü bu bir gsm numarası olduğunu belirtiyor.
ilk iki karakteri 53,54,55,50 ile başlaması Türkiye gsm operatörü olduğunu belirtiyor tarzında...
Amaç gelen noyu istediğimiz şekilde sisteme almak iptal etmek değil. - 07-05-2010, 14:31:19http://www.krsnsk.com/programlama/ph...ulamalari.html
# Telefon numarası doğrulama:
(399)423-2323 şeklindeki telefon numaralarını doğrulamak için kullanılır.
$tel = "(399)423-2323";
if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x', $tel)) {
echo "Numara dogru.";
} else {
echo "Numara hatali.";
} - 08-05-2010, 22:08:23Üyeliği durduruldusadece turk telefon numaraları icin, cep numaralari, ulke ve alan kodu dahil;
function trTelno($giris) { if (strstr($giris, '+90')) $giris = str_replace('+90', '', $giris); if (strlen($giris) > 11 && substr($giris, 0, 2) == '90') $giris = str_replace('90', '', $giris); $giris = preg_replace('~[^0-9]~', '', $giris); if (preg_match('~05[0345]~', substr($giris, 0, 3)) && strlen($giris) == 11) $dogru = true; if (preg_match('~5[0345]~', substr($giris, 0, 2)) && strlen($giris) == 10) $dogru = true; if (preg_match('~0?[234]~', substr($giris, 0, 2)) && (strlen($giris) == 11 || strlen($giris) == 10)) $dogru = true; return ($dogru ? (substr($giris, 0, 1) <> '' ? str_replace('0', '', $giris) : $giris) : FALSE); }kullanimlar;
echo trTelno('+905063334455'); echo trTelno('05063334455'); echo trTelno('0506 333 44 55'); echo trTelno('5063334455'); echo trTelno('+902128064356'); echo trTelno('902128064356'); echo trTelno('02128064356'); echo trTelno('2128064356'); echo trTelno('0 212 806 43 56'); - 10-05-2010, 12:58:30Üyeliği durduruldugirişe mask uygulayada bilirsiniz. böylelikle sadece sizin istediginiz formatta girmiş olurlar