[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / verifier / verifier / email.php
index b525c31..286f455 100644 (file)
@@ -1,11 +1,13 @@
 <?php
 
 // Sécurité
-if (!defined("_ECRIRE_INC_VERSION")) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 /**
  * Vérifie la validité d'une adresse de courriel.
- * 
+ *
  * Les contraintes du mail sont déterminées par le mode de validation
  * En option, on contrôle aussi la disponibilité du mail dans la table des auteurs
  *
@@ -16,44 +18,49 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
  * @return string
  *   Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
  */
-function verifier_email_dist($valeur, $options=array()){
+function verifier_email_dist($valeur, $options = array()) {
        include_spip('inc/filtres');
-       if (!is_string($valeur))
+       if (!is_string($valeur)) {
                return $erreur;
+       }
 
        // Disponibilite des courriels en base AUTEURS
        // Si l'adresse n'est pas disponible, on stoppe tout sinon on continue
-       if ($options['disponible'] and !verifier_disponibilite_email($valeur,isset($options['id_auteur'])?$options['id_auteur']:null)){
+       if (!empty($options['disponible']) and !verifier_disponibilite_email($valeur, isset($options['id_auteur']) ? $options['id_auteur'] : null)) {
                return _T('verifier:erreur_email_nondispo', array('email' => echapper_tags($valeur)));
        }
-       
+
        // Choix du mode de verification de la syntaxe des courriels
-       if (!$options['mode'] or !in_array($options['mode'], array('normal','rfc5322','strict'))){
+       if (empty($options['mode']) or !in_array($options['mode'], array('normal','rfc5322','strict'))) {
                $mode = 'normal';
-       }
-       else{
+       } else {
                $mode = $options['mode'];
        }
-               
-       $fonctions_disponibles = array('normal' => 'email_valide', 'rfc5322' => 'verifier_email_rfc5322', 'strict' => 'verifier_email_de_maniere_stricte');
+
+       $fonctions_disponibles = array(
+               'normal'  => 'email_valide',
+               'rfc5322' => 'verifier_email_rfc5322',
+               'strict'  => 'verifier_email_de_maniere_stricte'
+       );
        $fonction_verif = $fonctions_disponibles[$mode];
-       
-       if (!$fonction_verif($valeur))
+
+       if (!$fonction_verif($valeur)) {
                return _T('verifier:erreur_email', array('email' => echapper_tags($valeur)));
-       else
+       } else {
                return '';
+       }
 }
 
 /**
  * Changement de la RegExp d'origine
  *
- * Respect de la RFC5322 
+ * Respect de la RFC5322
  *
  * @link (phraseur détaillé ici : http://www.dominicsayers.com/isemail/)
  * @param string $valeur La valeur à vérifier
  * @return boolean Retourne true uniquement lorsque le mail est valide
  */
-function verifier_email_rfc5322($valeur){
+function verifier_email_rfc5322($valeur) {
        // Si c'est un spammeur autant arreter tout de suite
        if (preg_match(",[\n\r].*(MIME|multipart|Content-),i", $valeur)) {
                spip_log("Tentative d'injection de mail : $valeur");
@@ -61,8 +68,9 @@ function verifier_email_rfc5322($valeur){
        }
        include_spip('inc/is_email');
        foreach (explode(',', $valeur) as $adresse) {
-               if (!is_email(trim($adresse)))
+               if (!is_email(trim($adresse))) {
                        return false;
+               }
        }
        return true;
 }
@@ -77,7 +85,7 @@ function verifier_email_rfc5322($valeur){
  * @param string $valeur La valeur à vérifier
  * @return boolean Retourne true uniquement lorsque le mail est valide
  */
-function verifier_email_de_maniere_stricte($valeur){
+function verifier_email_de_maniere_stricte($valeur) {
        // Si c'est un spammeur autant arreter tout de suite
        if (preg_match(",[\n\r].*(MIME|multipart|Content-),i", $valeur)) {
                spip_log("Tentative d'injection de mail : $valeur");
@@ -86,11 +94,12 @@ function verifier_email_de_maniere_stricte($valeur){
        foreach (explode(',', $valeur) as $adresse) {
                // nettoyer certains formats
                // "Marie Toto <Marie@toto.com>"
-               $adresse = trim(preg_replace(",^[^<>\"]*<([^<>\"]+)>$,i", "\\1", $adresse));
-               if (!preg_match('/^([A-Za-z0-9]){1}([A-Za-z0-9]|-|_|\.)*@[A-Za-z0-9]([A-Za-z0-9]|-|\.){1,}\.[A-Za-z]{2,4}$/', $adresse))
+               $adresse = trim(preg_replace(',^[^<>\"]*<([^<>\"]+)>$,i', '\\1', $adresse));
+               if (!preg_match('/^([A-Za-z0-9]){1}([A-Za-z0-9]|-|_|\.)*@[A-Za-z0-9]([A-Za-z0-9]|-|\.){1,}\.[A-Za-z]{2,4}$/', $adresse)) {
                        return false;
+               }
        }
-       return true; 
+       return true;
 }
 
 /**
@@ -100,11 +109,12 @@ function verifier_email_de_maniere_stricte($valeur){
  * @param string $valeur La valeur à vérifier
  * @return boolean Retourne false lorsque le mail est déjà utilisé
  */
-function verifier_disponibilite_email($valeur,$exclure_id_auteur=null){
+function verifier_disponibilite_email($valeur, $exclure_id_auteur = null) {
        include_spip('base/abstract_sql');
 
-       if(sql_getfetsel('id_auteur', 'spip_auteurs', 'email='.sql_quote($valeur).(!is_null($exclure_id_auteur)?"AND statut<>'5poubelle' AND id_auteur<>".intval($exclure_id_auteur):'')))
+       if (sql_getfetsel('id_auteur', 'spip_auteurs', 'email='.sql_quote($valeur).(!is_null($exclure_id_auteur)?"AND statut<>'5poubelle' AND id_auteur<>".intval($exclure_id_auteur):''))) {
                return false;
-       else
+       } else {
                return true;
+       }
 }