Valider une IP, remplacer ereg par preg_match !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Valider une IP, remplacer ereg par preg_match !

Re: Valider une IP, remplacer ereg par preg_match !

par stealth35 » 29 juil. 2011, 16:27

y'a déjà une fonction dans php pour faire ça : filter_var avec FILTER_VALIDATE_IP

Re: Valider une IP, remplacer ereg par preg_match !

par luciole135 » 29 juil. 2011, 09:53

Merci beaucoup, vous êtes un ange :)

Re: Valider une IP, remplacer ereg par preg_match !

par Ryle » 19 juil. 2011, 21:05

En remplaçant ereg par preg_match ;)

Les deux solutions sont bonnes, mais la seconde est toutefois plus restrictive puisqu'elle contrôle qu'il n'y a rien d'autre que l'adresse IP dans ta chaine :)

Re: Valider une IP, remplacer ereg par preg_match !

par luciole135 » 19 juil. 2011, 20:32

Merci beaucoup de la réponse.

Donc si j'ai bien compris je fais ça :

Code : Tout sélectionner

function luc_Domain($ip) { $host = gethostbyaddr($ip); if (ereg('#([0-9]{1,3}\.){3}[0-9]{1,3}#', $host)) return ""; else return my_substr(strrchr($host, "."), 1); }
ou

Code : Tout sélectionner

]function luc_Domain($ip) { $host = gethostbyaddr($ip); if (ereg('#^([0-9]{1,3}\.){3}[0-9]{1,3}$#', $host)) return ""; else return my_substr(strrchr($host, "."), 1); }
Les délimiteurs # sont corrects non ?

lequel des deux est bon ?

Re: Valider une IP, remplacer ereg par preg_match !

par Ryle » 19 juil. 2011, 18:48

Il te manque les apostrophes/guillemets pour délimiter ta chaine (ton masque) et tu as retiré les "^" et "$" qui permettent de spécifier que ton masque doit impérativement couvrir le début et la fin de la chaine.

En gros, ton masque est bon, il suffit juste de rajouter un délimiteur de part et d'autre et de changer le nom de la fonction :)

Valider une IP, remplacer ereg par preg_match !

par luciole135 » 19 juil. 2011, 16:58

Bonjour,
je ne m'y connais pas trop en PHP, mais je dois remplacer une fonction écrite avec ereg car cette dernière n'est plus compatible avec PHP 5.3.

Cette fonction est la suivante :

Code : Tout sélectionner

function luc_Domain($ip) { $host = gethostbyaddr($ip); if (ereg('^([0-9]{1,3}\.){3}[0-9]{1,3}$', $host)) return ""; else return my_substr(strrchr($host, "."), 1); }

est-ce que preg_match(#([0-9]{1,3}\.){3}[0-9]{1,3}#, host) est correct ?

Merci de votre aide !