Skip to content
Extraits de code Groupes Projets
Valider 4b79d211 rédigé par rastapopoulos@spip.org's avatar rastapopoulos@spip.org
Parcourir les fichiers

Correction d'erreurs et code plus propre.

parent 5f78cf63
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -7,8 +7,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -7,8 +7,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// E // E
'erreur_date' => 'Le format de la date n\'est pas accepté.', 'erreur_date' => 'Le format de la date n\'est pas accepté.',
'erreur_email' => 'L\'adresse de courriel n\'a pas un format valide.', 'erreur_email' => 'L\'adresse de courriel <em>@email@</em> n\'a pas un format valide.',
'erreur_email_nondispo' => 'L\'adresse de courriel est d&eacute;j&agrave; enregistr&eacute;.', 'erreur_email_nondispo' => 'L\'adresse de courriel <em>@email@</em> est d&eacute;j&agrave; utilis&eacute;e.',
'erreur_entier' => 'La valeur doit &ecirc;tre un entier.', 'erreur_entier' => 'La valeur doit &ecirc;tre un entier.',
'erreur_entier_entre' => 'La valeur doit &ecirc;tre comprise entre @min@ et @max@.', 'erreur_entier_entre' => 'La valeur doit &ecirc;tre comprise entre @min@ et @max@.',
'erreur_entier_max' => 'La valeur doit &ecirc;tre inf&eacute;rieure &agrave; @max@.', 'erreur_entier_max' => 'La valeur doit &ecirc;tre inf&eacute;rieure &agrave; @max@.',
......
...@@ -10,11 +10,12 @@ function verifier_email_dist($valeur, $options=array()){ ...@@ -10,11 +10,12 @@ function verifier_email_dist($valeur, $options=array()){
include_spip('inc/filtres'); include_spip('inc/filtres');
// Disponibilite des courriels en base AUTEURS // Disponibilite des courriels en base AUTEURS
if ($options['disponible']){ // Si l'adresse n'est pas disponible, on stoppe tout sinon on continue
return verifier_disponibilite_email($valeur); if ($options['disponible'] and $erreur = verifier_disponibilite_email($valeur)){
return $erreur;
} }
// Choix du de verification de la syntaxe des courriels // Choix du mode de verification de la syntaxe des courriels
if (!$options['mode'] or !in_array($options['mode'], array('strict'))){ if (!$options['mode'] or !in_array($options['mode'], array('strict'))){
$mode = 'normal'; $mode = 'normal';
} }
...@@ -22,17 +23,15 @@ function verifier_email_dist($valeur, $options=array()){ ...@@ -22,17 +23,15 @@ function verifier_email_dist($valeur, $options=array()){
$mode = $options['mode']; $mode = $options['mode'];
} }
if ($mode == 'normal'){ if ($mode == 'normal')
if (email_valide($valeur)) $fonction_verif = 'email_valide';
return ''; else
else $fonction_verif = 'verifier_email_de_maniere_stricte';
return _T('verifier:erreur_email');
} if (!$fonction_verif($valeur))
// Validation Stricte return _T('verifier:erreur_email', array('email' => $valeur));
else{ else
return verifier_email_de_maniere_stricte($valeur); return '';
}
return '';
} }
/** /**
...@@ -43,13 +42,10 @@ function verifier_email_dist($valeur, $options=array()){ ...@@ -43,13 +42,10 @@ function verifier_email_dist($valeur, $options=array()){
* (même si les autres caractères sont autorisés, tant pis, ils sont trop rares) * (même si les autres caractères sont autorisés, tant pis, ils sont trop rares)
*/ */
function verifier_email_de_maniere_stricte($valeur){ function verifier_email_de_maniere_stricte($valeur){
$erreur = _T('verifier:erreur_email');
$ok = '';
// Si c'est un spammeur autant arreter tout de suite // Si c'est un spammeur autant arreter tout de suite
if (preg_match(",[\n\r].*(MIME|multipart|Content-),i", $valeur)) { if (preg_match(",[\n\r].*(MIME|multipart|Content-),i", $valeur)) {
spip_log("Tentative d'injection de mail : $valeur"); spip_log("Tentative d'injection de mail : $valeur");
return $erreur; return false;
} }
foreach (explode(',', $valeur) as $v) { foreach (explode(',', $valeur) as $v) {
// nettoyer certains formats // nettoyer certains formats
...@@ -57,9 +53,9 @@ function verifier_email_de_maniere_stricte($valeur){ ...@@ -57,9 +53,9 @@ function verifier_email_de_maniere_stricte($valeur){
$adresse = trim(preg_replace(",^[^<>\"]*<([^<>\"]+)>$,i", "\\1", $v)); $adresse = trim(preg_replace(",^[^<>\"]*<([^<>\"]+)>$,i", "\\1", $v));
// NOUVELLE REGEXP NE RESPECTANT PLUS RFC 822 MAIS MOINS TOLERANTE // NOUVELLE REGEXP NE RESPECTANT PLUS RFC 822 MAIS MOINS TOLERANTE
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)) 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 $erreur; return false;
} }
return $ok; return true;
} }
/** /**
...@@ -68,11 +64,9 @@ function verifier_email_de_maniere_stricte($valeur){ ...@@ -68,11 +64,9 @@ function verifier_email_de_maniere_stricte($valeur){
*/ */
function verifier_disponibilite_email($valeur){ function verifier_disponibilite_email($valeur){
include_spip('base/abstract_sql'); include_spip('base/abstract_sql');
$erreur = _T('verifier:erreur_email_nondispo');
$ok = '';
$emailDejaUtilise = sql_getfetsel("id_auteur", "spip_auteurs", "email='".$valeur."'"); if(sql_getfetsel('id_auteur', 'spip_auteurs', 'email='.sql_quote($valeur)))
if($emailDejaUtilise) return $erreur; return _T('verifier:erreur_email_nondispo', array('email' => $valeur));
else
return $ok; return '';
} }
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter