Ereg Php

Bonjours, j'ai un probléme avec la fonction Ereg de php
Je voudrai faire un ereg qui accepte uniquement les caractere: A-Za-z0-9 le tiret et l'undescor

le tout utiliser avec un if voila un bout du code en question:

if (ereg("ICI JE BLOQUE",$_POST["name_new"]))
{
echo "post name new ne contien que des caractere alphanumerique tiret et undescor";
}
else
{
echo "erreur";
}

merci pour votre aide

10 réponses

  1. Modérateur
    Salut,

    tu ne dois faire plutôt comme ça
    if (ereg("[-a-zA-Z0-9_]",$_POST["name_new"]))
    {
    echo "post name new ne contien que des caractere alphanumerique tiret et undescor";
    }
    else
    {
    echo "erreur";
    }
    lami20j
    1. Modérateur
      Re,

      en bref j'utilise une classe en me basant sur la répresentation en hexadécimale pour les caractères avec accent
      J'ai ajouté dans la ligne de commande et pour ne pas être obligé le faire à la main ici
      lami20j@debian:~$ perl -e 'print "$_ => ${\(chr($_))} => ${\ (sprintf \"%0.2X\",$_) }\n" for 192..255'
      192 => À => C0
      193 => Á => C1
      194 => Â => C2
      195 => Ã => C3
      196 => Ä => C4
      197 => Å => C5
      198 => Æ => C6
      199 => Ç => C7
      200 => È => C8
      201 => É => C9
      202 => Ê => CA
      203 => Ë => CB
      204 => Ì => CC
      205 => Í => CD
      206 => Î => CE
      207 => Ï => CF
      208 => Ð => D0
      209 => Ñ => D1
      210 => Ò => D2
      211 => Ó => D3
      212 => Ô => D4
      213 => Õ => D5
      214 => Ö => D6
      215 => × => D7
      216 => Ø => D8
      217 => Ù => D9
      218 => Ú => DA
      219 => Û => DB
      220 => Ü => DC
      221 => Ý => DD
      222 => Þ => DE
      223 => ß => DF
      224 => à => E0
      225 => á => E1
      226 => â => E2
      227 => ã => E3
      228 => ä => E4
      229 => å => E5
      230 => æ => E6
      231 => ç => E7
      232 => è => E8
      233 => é => E9
      234 => ê => EA
      235 => ë => EB
      236 => ì => EC
      237 => í => ED
      238 => î => EE
      239 => ï => EF
      240 => ð => F0
      241 => ñ => F1
      242 => ò => F2
      243 => ó => F3
      244 => ô => F4
      245 => õ => F5
      246 => ö => F6
      247 => ÷ => F7
      248 => ø => F8
      249 => ù => F9
      250 => ú => FA
      251 => û => FB
      252 => ü => FC
      253 => ý => FD
      254 => þ => FE
      255 => ÿ => FF
      lami20j@debian:~$
      
      lami20j
      1. moi aussi j'ai un probleme dans un code php de l'mail :
        function IsEmail($email)
        {
        $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
        return (eregi($pattern,$email)) ? true : false;
        };

        l' erreur est affiche:
        Deprecated: Function eregi() is deprecated
    2. Modérateur
      Salut,

      essaie ça
      if (eregi("^[a-z0-9_\xC0-\xFF-]+$",$_POST["name_new"]))
      
      
      lami20j
      1. if (eregi("^[a-z0-9_áàâäãåçéèêëìíîïñòóôöõöúùûüýÿ-]+$",$_POST["name_new"]))

        voila j'ai mis tout ce que j'ai trouver pour ce que sa interesse

        merci pour ton aide lami20j
        a+
        1. Modérateur
          Re,

          tu n'utilises que [a-z0-9_ éèêëàâäîïôö-]+ mais avec eregi à la place de ereg

          donc pas de A-Z et les autre en majuscule, c'est eregi qui s'occupe.

          lami20j
          1. est bien je croit que ton code marche ^^ merci pour le coup de main j'était perdu

            if (ereg("^[A-Za-z0-9_ éèêëàâäîïôö-]+$",$_POST["name_new"]))

            Donc sa autorisée AZ az 09 tout les éè.... le - et le _ par contre il faut encore que je rajoute les Ê ou Ë enfin majuscule en gros c'est juste?
            1. Modérateur
              Re,

              pour les caractères é è ê ë à â ä î ï ô ö (en code ascii étendue)

              Tu peux utiliser des classes de caractères spéciales sinon la laide

              [a-z0-9_ éèêëàâäîïôö-]+ avec un modificatuer pur ne prendre en compte la casse.

              lami20j
              1. oui sa fonctionne par contre les caracetre du genre é ou à ne fonction pas! Comment doije proceder pour les faire fonctionner aussi? enfin tout se qui et: é è ê ë à â ä î ï ô ö je croit que c'est tout majuscule compris bien entandu
                1. j'ai trouver sa: ^[A-Za-z0-9_-]+$ qui me semble marcher qu'en penser vous?