- 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
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:
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:
Benzer şekilde, geçerli bir URL aşağıdaki düzenli ifadeyi karşılamalıdır:
Aşağıdaki fonksiyon, dize geçerli bir e-posta kimliğiyse "1" veya "0" döndürür.
HTML formu aşağıdaki gibi oluşturulur:
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.
Yukarıdaki kodu, yukarıdaki formun URL alanına URL dizesini girerek test edebilirsiniz.
$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.
Yukarıdaki scriptin performansını geçerli/geçersiz e-posta/URL girerek test edebilirsiniz.
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:
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.No | Kimlik ve Açıklama |
|---|---|
| 1 | FILTER_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. |
| 2 | FILTER_VALIDATE_DOMAIN Alan adı etiket uzunluklarının geçerli olup olmadığını doğrular. |
| 3 | FILTER_VALIDATE_EMAIL Değerin geçerli bir e-posta adresi olup olmadığını doğrular. |
| 4 | FILTER_VALIDATE_IP Değeri IP adresi olarak doğrular |
| 5 | FILTER_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:

