<?php function testRegex($this){ if(!preg_match( '/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD' , $this)){ return false; }else{ return true; } } function verifMail($mail){ $mail=strtolower($mail); $mail=str_replace("\"","",$mail); If (strlen($mail)>50){ return false; } /*extraction du suffixe*/ $ok = ereg("^(.+)\.(.+)$", $mail, $items); if($ok){ $sans_suffixe=$items[1] ; $suffixe=$items[2]; //echo "Le nom de fichier '$mail' se compose de <b>$sans_suffixe</b> et de l'extension <b>$suffixe</b><br>" ; }else{ exit('fake'); } $ext =array('com','fr','net','org','eu'); if(!in_array($suffixe,$ext,true)){ return false; } $version=(double)substr(phpversion(),0,3); if($version>=5.2){ if(!filter_var($mail, FILTER_VALIDATE_EMAIL)){ return false; //echo 'Erreur : Votre email n\'est pas valide.'; }else if(!preg_match( '/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD' , $mail)){ return false; } /* '/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d' . '{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $mail */ else{ return true; //echo 'Ok : Votre email est valide.'; } }elseif($version>=4){ /*ancien php4*/ if(preg_match( '/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d' . '{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $mail )){ return true; }else{ return false; } }else{ return false; exit('PHP < 4 upgrade ... '); } } $test = array( 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@letters-in-local.org', '01234567890@numbers-in-local.net', '&\'*+-./=?^_{}~@other-valid-characters-in-local.net', 'mixed-1234-in-{+^}-local@sld.net', 'a@single-character-in-local.org', '"quoted"@sld.com', '"\e\s\c\a\p\e\d"@sld.com', '"quoted-at-sign@sld.org"@sld.com', '"escaped\"quote"@sld.com', '"back\slash"@sld.com', 'single-character-in-sld@x.org', 'local@dash-in-sld.com', 'letters-in-sld@123.com', 'uncommon-tld@sld.museum', 'uncommon-tld@sld.travel', 'uncommon-tld@sld.mobi', 'country-code-tld@sld.uk', 'country-code-tld@sld.rw', 'local@sld.newTLD', 'numbers-in-tld@sld.xn--3e0b707e', 'local@sub.domains.com', 'bracketed-IP-instead-of-domain@[127.0.0.1]', '@missing-local.org', '! #$%(),:;<>@[]\`|@invalid-characters-in-local.org', '.local-starts-with-dot@sld.com', 'local-ends-with-dot.@sld.com', 'two..consecutive-dots@sld.com', 'partially."quoted"@sld.com valid', 'the-local-part-is-invalid-if-it-is-longer-than-sixty-four-characters@sld.net', 'missing-sld@.com', 'sld-starts-with-dashsh@-sld.com', 'sld-ends-with-dash@sld-.com', 'invalid-characters-in-sld@! "#$%(),/;<>_[]`|.org', 'local@second-level-domains-are-invalid-if-they-are-longer-than-sixty-three-characters.org', 'missing-dot-before-tld@com', 'missing-tld@sld.', ' invalid', 'missing-at-sign.net', 'unbracketed-IP@127.0.0.1', 'invalid-ip@127.0.0.1.26', 'another-invalid-ip@127.0.0.256', 'IP-and-port@127.0.0.1:25' ); /*test de la regex*/ foreach($test as $v){ testRegex($v); if(!testRegex($v)){ echo $v.'<font color="red"> MAUVAIS FORMAT E-MAIL.</font><br />'; }else{ echo $v.'<font color="red"> BON FORMAT E-MAIL.</font><br />'; } } echo '<hr>'; /*faire vos tests ...*/ $t=$_POST['email']="sarkofage@orange.fr"; if(verifMail($_POST['email'])){ echo $t.' bon mail'; }else{ echo $t.' pas bon mail'; } ?>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.