Skip to content
Extraits de code Groupes Projets
Valider 144b4d28 rédigé par xdjuj@apsulis.com's avatar xdjuj@apsulis.com
Parcourir les fichiers

- Uniformiser les verifs de mail

- Catégoriser pour la Zone
- Corriger la doc
parent 8b34852b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -9,6 +9,7 @@
<prefix>verifier</prefix>
<options>verifier_options.php</options>
<necessite id="SPIP" version="[2.0.10;]" />
<utilise id="yaml" />
<utilise id="yaml" />
<categorie>outil</categorie>
</plugin>
......@@ -84,11 +84,11 @@ echo "Valide SPIP : $email3 ?";
var_dump($verifier($email3, 'email'));
echo "Valide Strict : $email ?";
var_dump($verifier($email, 'email_strict'));
var_dump($verifier($email, 'email',array('mode'=>'strict')));
echo "Valide Strict : $email2 ?";
var_dump($verifier($email2, 'email_strict'));
var_dump($verifier($email2, 'email',array('mode'=>'strict')));
echo "Valide Strict : $email3 ?";
var_dump($verifier($email3, 'email_strict'));
var_dump($verifier($email3, 'email',array('mode'=>'strict')));
?>
......@@ -124,14 +124,14 @@ $siret_valide = "32122785200019";
$siret_non_valide = "32122785200033";
echo "SIREN : $siren_valide ?";
var_dump($verifier($siren_valide, 'siren'));
var_dump($verifier($siren_valide, 'siren_siret'));
echo "SIREN : $siren_non_valide ?";
var_dump($verifier($siren_non_valide, 'siren'));
var_dump($verifier($siren_non_valide, 'siren_siret'));
echo "SIRET : $siret_valide ?";
var_dump($verifier($siret_valide, 'siret'));
var_dump($verifier($siret_valide, 'siren_siret',array('mode'=>'siret')));
echo "SIRET : $siret_non_valide ?";
var_dump($verifier($siret_non_valide, 'siret'));
var_dump($verifier($siret_non_valide, 'siren_siret',array('mode'=>'siret')));
?>
</pre>
......
......@@ -9,10 +9,46 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
function verifier_email_dist($valeur, $options=array()){
include_spip('inc/filtres');
if (email_valide($valeur))
return '';
else
return _T('verifier:erreur_email');
}
if (!$options['mode'] or !in_array($options['mode'], array('strict'))){
$mode = 'normal';
}
else{
$mode = $options['mode'];
}
if ($mode == 'normal'){
if (email_valide($valeur))
return '';
else
return _T('verifier:erreur_email');
}
// Validation Stricte
/**
* Changement de la RegExp d'origine
* Non respect des RFC beaucoup trop souples à mon sens
* On INTERDIT les mails dont les domaines ne sont pas "valides"
* On INTERDIT les adresses qui comportent autre chose que des tirets / tirets bas / point
* (même si les autres caractères sont autorisés, tant pis, ils sont trop rares)
*/
else{
$erreur = _T('verifier:erreur_email');
$ok = '';
?>
// 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");
return $erreur;
}
foreach (explode(',', $valeur) as $v) {
// nettoyer certains formats
// "Marie Toto <Marie@toto.com>"
$adresse = trim(preg_replace(",^[^<>\"]*<([^<>\"]+)>$,i", "\\1", $v));
// 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))
return $erreur;
}
return $ok;
}
return '';
}
......@@ -2,30 +2,12 @@
// Sécurité
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Changement de la RegExp d'origine
* Non respect des RFC beaucoup trop souples à mon sens
* On INTERDIT les mails dont les domaines ne sont pas "valides"
* On INTERDIT les adresses qui comportent autre chose que des tirets / tirets bas / point
* (même si les autres caractères sont autorisés, tant pis, ils sont trop rares)
/*
* OBSOLETE : remplacé par $verifier($valeur, 'email',array('mode'=>'strict'))
* Assurer la compatibilité un temps
*/
function verifier_email_strict_dist($valeur, $options=array()){
$erreur = _T('verifier:erreur_email');
$ok = '';
// 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");
return $erreur;
}
foreach (explode(',', $valeur) as $v) {
// nettoyer certains formats
// "Marie Toto <Marie@toto.com>"
$adresse = trim(preg_replace(",^[^<>\"]*<([^<>\"]+)>$,i", "\\1", $v));
// 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))
return $erreur;
}
return $ok;
$verifier = charger_fonction('verifier','inc');
if(!$verifier($valeur, 'email',array('mode'=>'strict'))) return false;
else return _T('verifier:erreur_email');
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter