Nasıl PHP bir e-Posta doğrulamak için?
Nasıl değeri geçerli bir e-posta adresi php5 kullanarak giriş doğrulamak. Şimdi bu kodu kullanıyorum
function isValidEmail($email){
$pattern = "^[_a-z0-9-] (\.[_a-z0-9-] )*@[a-z0-9-] (\.[a-z0-9-] )*(\.[a-z]{2,3})$";
if (eregi($pattern, $email)){
return true;
}
else {
return false;
}
}
ancak itiraz hatayı gösterir. Bu sorunu nasıl düzeltebilirim. Bana yardım edin lütfen.
CEVAP
Kullanışlı doğrulama ve sanitasyon seçenekleri bir sürü verir filter_var()
işlevini kullanabilirsiniz.
filter_var($email, FILTER_VALIDATE_EMAIL)
Mevcut
Eğer kodunuzu değiştirmek istiyorsanız eğer bu fonksiyon, sadece dayanıyordu:
function isValidEmail($email){
return filter_var($email, FILTER_VALIDATE_EMAIL);
}
NotDiğer kullanır Düzenli gerekir (burada), ereg
fonksiyon kaldırılan aile (POSIX Düzenli ifade Fonksiyonları) preg
aile (PCRE Regex Functions) tarafından değiştirilmelidir. Farklar küçük bir miktar, Manuel yeterli olacaktır okuma vardır.
Güncelleme 1: @binaryLV tarafından belirttiği gibi:
PHP 5.3.3 ve 5.2.14 bug bir ilişkin vardı Doğrularken segfault sonuçlanan FİLTER_VALİDATE_EMAİL, büyük değerler. Bunun için basit ve güvenli Çözüm
strlen()
kullanıyorfilter_var()
önce. 5.3.4 son, ama emin değilim 5.3.4-anlık bazı sürümleri de etkilendi yazılı.
Bu hata çoktan düzeltildi.
Güncelleme 2Bu yöntem tabii ki aslında geçerli bir e-posta adresi olduğundan geçerli bir e-posta adresi olarak bazmega@kapa
doğrulamak olacaktır. Ama internette çoğu zaman, size de e-posta adresi bir KARŞILIK istiyorum: bazmega@kapa.com
. Olarak önerilen bu blog post (bağlantı Gönderen @Istiaque Ahmed), artırmak filter_var()
ile bir düzenli ifade bu olacak onay için varlığı bir nokta da, bir etki alanı bölümü (olmaz kontrol etmek içingeçerliAma KARŞILIK:
function isValidEmail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL)
&& preg_match('/@. \./', $email);
}
@Eliseo Ocampos belirttiği gibi, bu sorun sadece 5.3, 23* *PHP önce var ve şimdi gerekmez böylece kontrol bunu yapıyor.
Düzenli ifade bir e-posta adresi doğru...
Nasıl bir özel durum olduğunu doğrulam...
Nasıl'In birincil e-posta adresin...
Nasıl bir yöntem Adedi olarak DEĞİL, "...
En iyi Objective-C iOS için 2.0 e-post...