Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP - Form E-posta/URL

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
Katılım
2 Mar 2015
Konular
59,189
Mesajlar
88,439
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 6 Gün
Başarım Puanı
1,051
MmoLira
695,092
DevLira
234
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

PHP, dizeler olan ancak E-posta Kimliği veya URL'nin bir temsili olması beklenen form veri öğelerini doğrulamak için iki alternatif sunar. Form öğesinin e-posta/URL içerdiğini kontrol etmenin bir yolu RegEx (normal ifadeler) kullanmaktır ve diğer, daha kullanışlı yaklaşım filter_var() işlevini kullanmaktır. Bu iki yöntemi uygulayalım ve bir form tarafından gönderilen e-postayı ve URL'yi bir PHP betiğine doğrulayalım.

Bu bölüm için kullanılan HTML Formu şu şekildedir:

<h1>Email and URL Validation</h1>
<form action="hello.php" method="POST">
<p><label for="email">Enter your email:</label>
<input type="text" id="email" name="email"></p>
<p><label for="URL">Enter your website<label>
<input type = "text" id="URL" name="url"></p>
<input type="submit">
</form>

Regex ile Doğrulama

PHP'nin yerleşik fonksiyon kütüphanesi, düzenli ifade eşleşmesi gerçekleştiren preg_match() fonksiyonunu içerir.

preg_match(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
): int|false

Bu fonksiyon, desende verilen düzenli ifadeyle eşleşen bir konu arar. preg_match(), desen verilen konu ile eşleşiyorsa 1, eşleşmiyorsa 0, eşleşmezse false döndürür.

Geçerli bir e-posta kimliği aşağıdaki düzenli ifadeyi karşılamalıdır:

"/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"

Benzer şekilde, geçerli bir URL aşağıdaki düzenli ifadeyi karşılamalıdır:

"/\b(?: (?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i"

Aşağıdaki fonksiyon, dize geçerli bir e-posta kimliğiyse "1" veya "0" döndürür.

function checkemail($str) {
return (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}

Örnek

Yukarıdaki HTML'deki e-posta alanının geçerli olup olmadığını kontrol etmek için aşağıdaki PHP kodunun yardımıyla checkmail() fonksiyonunu kullanalım:

PHP:
<?php       
   function checkemail($str) {
      return (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@
         ([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
   }
   if ($_SERVER["REQUEST_METHOD"] == "POST") {
      $email = $_POST['email'];
      if(!checkemail($email)){
         echo "Invalid email address.";
      } else {
         echo "Valid email address.";
      }
   }
?>

HTML formu aşağıdaki gibi oluşturulur:

php_form_email_url.jpg

E-posta alanına geçerli/geçersiz e-posta dizesini girerek PHP kodunu test edin.

Aşağıdaki checkURL() fonksiyonu bir dizenin geçerli mi yoksa geçersiz bir URL mi olduğunu kontrol eder ve "1 veya "0" döndürür.

function checkURL($str) {
return (!preg_match("/\b(?: (?:https?|ftp):\/\/|www\.)
[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $str)) ? FALSE : TRUE;
}

Örnek

Yukarıdaki fonksiyona argüman olarak $_POST dizisinden çıkarılan URL alanı verilir.

PHP:
<?php       
   function checkURL($str) {
      return (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]
         *[-a-z0-9+&@#\/%=~_|]/i", $str)) ? FALSE : TRUE;
   }
   if ($_SERVER["REQUEST_METHOD"] == "POST") {
      $url = $_POST['url'];
      if(!checkURL($url)){
         echo "Invalid URL.";
      } else {
         echo "Valid URL.";
      }
   }
?>

Yukarıdaki kodu, yukarıdaki formun URL alanına URL dizesini girerek test edebilirsiniz.


Using filter_var() fonksiyonunu kullanma

Using filter_var() fonksiyonu, belirtilen bir filtreyle bir değişkeni filtreler.

filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

$filter parametresinin değeri olarak numaralandırılan filtre ID'sine bağlı olarak $value parametresi kontrol edilir ve fonksiyon filtrelenmiş veriyi döndürür veya filtre başarısız olursa false değerini döndürür.

Çeşitli önceden tanımlanmış filtre kimliği sabitleri mevcuttur.

Sr.NoKimlik ve Açıklama
1FILTER_VALIDATE_BOOL
"1", "true", "on" ve "yes" için true değerini döndürür. Aksi takdirde false değerini döndürür.
2FILTER_VALIDATE_DOMAIN
Alan adı etiket uzunluklarının geçerli olup olmadığını doğrular.
3FILTER_VALIDATE_EMAIL
Değerin geçerli bir e-posta adresi olup olmadığını doğrular.
4FILTER_VALIDATE_IP
Değeri IP adresi olarak doğrular
5FILTER_VALIDATE_URL
Değeri URL olarak doğrular

Örnek

Aşağıdaki PHP betiği, yukarıdaki HTML tarafından gönderilen e-posta ve URL verilerini doğrular.

PHP:
<?php
   if ($_SERVER["REQUEST_METHOD"] == "POST") {
      $email = $_POST['email'];
      $url = $_POST['url'];

      if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
         echo "Invalid email format and please re-enter valid email\n";
      }
      else
      echo "Email entered is in valid format\n";

      if (!filter_var($url, FILTER_VALIDATE_URL)) {
         echo "Invalid URL format and please re-enter valid URL\n";
      }
      else
      echo "URL entered is in valid format\n";
   }
?>

Yukarıdaki scriptin performansını geçerli/geçersiz e-posta/URL girerek test edebilirsiniz.
 
Son düzenleme:

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst