E-posta, enjeksiyon için) (mysql_real_escape_string bir eşdeğer var mı? Ben kullanıcı kendi e-posta gönderen bir form var. Birisi e-postaların bir virgülle ayrılmış listesini eklemek ve küfrettiği için sitemde kullanabilirsiniz korkuyorum.
Sen filter_var
a> e-posta adresini doğrulamak için kullanabilirsiniz:
if (!filter_var($address, FILTER_VALIDATE_EMAIL)) {
// invalid e-mail address
}
Ayakta sok this regex.
Sadece tek bir e-posta adresi için yaygın olarak bulunan bir düzenli ifadenin karşı alan doğrulamak
function validate_email($e){
return (bool)preg_match("`^[a-z0-9!#$%&'*+\/=?^_\`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$`i", trim($e));
}
take a look at this function: http://dreamwave.cms-bg.info/2009/09/24/verify_email-php-function/
Ben de bunu izah ettik düşünüyorum. Bu benim blogu.
Ben iyi bir e-posta doğrulama bu kadar basit olmadığını buldu, bu yüzden sadece "@" ve eğer kontrol etmeye karar verdi "." string içinde.
function email_valid($email){
/* EMAIL VALIDATION, CHECKS IF STRING CONTAINS "@" and "." */
if( strpos($email, "@") AND strpos($email, ".") ){
return TRUE;
}
else {
return FALSE;
}
}
P.S. PDO veritabanına yazılması için tablolarını kullanmak istemiyorsanız, SQL enjeksiyonu neden olabilir semboller süzmek için EMİN OLUN
Bu, toplam dize uzunluğunu kontrol etmek kolay olacaktır - yani yerel kısmı maksimum 64 + @ + alanı bölüm max 255 karakter = 320 karakter, ama sonra kısa adreslerini spam hala mümkün olacaktır. Şu anda benim proje için e-posta doğrulama araştırma ve derinlemesine geçerli e-posta adreslerini ve RFC2822 açıklayan bu ilginç makaleyi email validation bulundu duyuyorum. Orada doğrulamak için çok daha basit bir yolu virgül spam etkili bir biçimi olan listeleri ayrılmış önleyecektir öneririz.
$isValid = true;
$atIndex = strrpos($email, "@");
if (is_bool($atIndex) && !$atIndex)
{
$isValid = false;
}
else
{
$domain = substr($email, $atIndex+1);
$local = substr($email, 0, $atIndex);
// ... work with domain and local parts
}
Bu sadece son @ işaretini bularak e-posta adresini yıkar ve 64 karakter sınırı vardır adresinin yerel parçası olmak için önce geçen bütün beyan eder. Hiçbir @ işareti varsa o strrpos false bolean değeri dönecektir. Benim doğrulama işlevi bu yararlanarak olacaktır.
Bakabilirsiniz Regular Expressions in PHP!