Changeset 81740 in spip-zone


Ignore:
Timestamp:
Apr 3, 2014, 11:29:56 AM (5 years ago)
Author:
tcharlss@…
Message:

Vérification des numéros de téléphone :

  • Corrections d'un petit bug sur les préfixes.

Le preg_replace n'était pas effectué sur la bonne variable ($valeur au lieu de $tel), du coup la vérification des préfixes déconnait.

  • On en profite pour accepter aussi les 0033 (en plus des +33).
  • On refuse les numéros composés uniquement de lettres : cas de spammeurs remplissant ce champ avec des pénoms exotiques.
Location:
_plugins_/verifier
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/verifier/paquet.xml

    r80004 r81740  
    22        prefix="verifier"
    33        categorie="outil"
    4         version="1.0.4"
     4        version="1.0.5"
    55        etat="stable"
    66        compatibilite="[2.0.10;3.0.*]"
  • _plugins_/verifier/plugin.xml

    r80004 r81740  
    1010        <icon>images/verifier-128.png</icon>
    1111        <licence>GPL v3</licence>
    12         <version>1.0.4</version>
     12        <version>1.0.5</version>
    1313        <etat>stable</etat>
    1414        <description>
  • _plugins_/verifier/verifier/telephone.php

    r51148 r81740  
    2222        // On accepte differentes notations, les points, les tirets, les espaces, les slashes
    2323        $tel = preg_replace("#\.|/|-| #i",'',$valeur);
    24        
    25         if (preg_match("/^\+33/", $tel)) {
     24
     25        // Pour les prefixes, on accepte les notations +33 et 0033
     26        $prefixe_FR = "/^(\+|00)33/";
     27        $prefixe_ES = "/^(\+|00)34/";
     28        $prefixe_CH = "/^(\+|00)41/";
     29        if (preg_match($prefixe_FR, $tel)) {
    2630                $options['pays'] = 'FR';
    27                 $tel = preg_replace('/^\+33/','0',$valeur);
     31                $tel = preg_replace($prefixe_FR,'0',$tel);
    2832        }
    29         if (preg_match("/^\+34/", $tel)) {
     33        if (preg_match($prefixe_ES, $tel)) {
    3034                $options['pays'] = 'ES';
    31                 $tel = preg_replace('/^\+34/','',$valeur);
     35                $tel = preg_replace($prefixe_ES,'',$tel);
    3236        }
    33         if (preg_match("/^\+41/", $tel)) {
     37        if (preg_match($prefixe_CH, $tel)) {
    3438                $options['pays'] = 'CH';
    35                 $tel = preg_replace('/^\+41/','0',$valeur);
     39                $tel = preg_replace($prefixe_CH,'0',$tel);
    3640        }
    3741
     
    4751                default:
    4852                        // On interdit les 000 etc. mais je pense qu'on peut faire plus malin
     53                        // On interdit egalement les "numéros" tout en lettres
    4954                        // TODO finaliser les numéros à la con
    50                         if($tel == '0000000000') return $erreur;
     55                        if(intval($tel) == 0) return $erreur;
    5156                        break;
    5257        }
Note: See TracChangeset for help on using the changeset viewer.