Projenizde, Türkiye’de hizmet veren GSM operatörlerine ait cep telefonu numaralarını POST anında kontrol etmek için aşağıdaki örnekten faydalanabilirsiniz. PHP ve Regex’ten (Regular Expressions) faydalanarak bu doğrulamayı gerçekleştiriyor olacağım.

Önceden yayınlamış olduğum Ghost Script uygulamasında da misafir kullanıcıların internete çıkabilmesi için, kullanıcı ve şifreleri cep telefonuna gönderilmeden önce bu sorgudan geçiyor. Eğer GSM numarası geçerli ise SMS gönderilmesi için SMS servis sağlayıcısına istek gönderiliyor. Bu sayede yanlış girilen GSM numara girişlerinin önüne geçerek SMS servis sağlayıcısına gönderilen gereksiz isteklerin önüne geçmiş oluyoruz.

 

<!DOCTYPE html>
<html lang="tr" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>


    <small>Lütfen Cep Telefonu Numaranızı Başında "0" olmadan yazınız. Örn: 5xxxxxxxxx</small><br><hr>

    <form action="" method="POST">
      <input type="text" required="" name="gsmNo" placeholder="GSM No"><br>
      <button type="submit" name="kontrolEt">Kontrol Et</button>
    </form>
<br>
<hr>



  </body>
</html>


<?php
// GSM numarası form ile gönderilirse aşağıdaki if bloğunda bulunan kodları çalıştır.
if(isset($_POST['gsmNo'])){

/*
Form ile gönderilen (POST edilen) telefon numarasını yakalıyoruz ve $telNo
adlı değişkene atıyoruz.
*/
$telNo = $_POST['gsmNo'];

// GSM No'da "0"'ı almayacağımızdan dolayı toplam uzunluğun
//10 karakter olması gerekiyor.
//Gönderilen tel numarasının kaç karakter olduğunu alıyoruz.'
$telUzunluk = strlen($telNo);

/*
Aşağıdaki pattern'de Türkiyedeki GSM Operatorlerinin alan kodlarını kapsayacak
şekilde regex'imizi oluşturuyoruz. Farklı bir alan kodu girildiğinde
kabul etmemesi için. Örn:
"530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "561",
"540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "505",
"506", "507", "551", "552", "553", "554", "555", "556", "557", "558"

*/
$pattern = '/5[0,3,4,5,6][0-9]\d\d\d\d\d\d\d$/';

/*
Eğer girilen GSM numarası pattern ile eşleşiyorsa $eslesme değişkeninin değeri
1 olacaktır. Eğer eşleşmez ise değeri, false anlamına gelen 0 olacaktır.
*/
$eslesme=preg_match($pattern, $telNo);

/*
Girilen GSM numarası pattern'e uyuyorsa ve uzunluğu 10 ise GSM numarası doğrudur.
Kullanıcıya Girilen GSM numarası doğrudur. mesajı döner.
*/
if ($eslesme==1 AND $telUzunluk==10) {
  echo "Girilen GSM numarası doğrudur.";
}

/*
Eğer yukarıdaki 2 olasılıktan en az 1'i bile tutmuyorsa, kullanıcıya aşağıdaki
Girilen GSM numarası yanlıştır. Mesajı dönecektir.
*/

else {
  echo "Girilen GSM numarası yanlıştır.";
}

}

/*
En yalın şekilde regex ile form kontrolü örneği görmüş olduk. RegEx tarafında
bolca kaynağı google'da bulabilirsiniz.
*/



?>

DEMO

 

 

PHP.NET

 

 

 

 


Abone ol
Bildir
guest
0 Yorum
Satır İçi Geri Bildirimler
Tüm yorumları görüntüle