preg_match, ne pas autorisé deux points de suite [^.{2,}?]

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 : preg_match, ne pas autorisé deux points de suite [^.{2,}?]

Re: preg_match, ne pas autorisé deux points de suite [^.{2,}

par two3d » 08 févr. 2013, 00:43

Merci pour vos réponses, je vais jeter un œil à la fonction strpos que je ne connais pas

peut ont faire confiance à la fonction de filtre ? n'est elle pas dangereuse en terme d'injection sql ? (dsl, je préfère une bonne preg_match qu'une fonction déjà toute faite où on ne sait pas vraiment qu'est ce qu'elle fait :wink: )

Re: preg_match, ne pas autorisé deux points de suite [^.{2,}

par Calimero » 27 janv. 2013, 17:14

Dans une chaîne délimitée par des double quotes ("), il faudrait non pas un, mais deux backslashs avant le point ;)

Re: preg_match, ne pas autorisé deux points de suite [^.{2,}

par xTG » 24 janv. 2013, 13:57

Et sinon question peut être conne mais...
La fonction de filtre elle gère ça non ?
M'étonnerai que la norme autorise le double point, donc elle doit le gérer.

Re: preg_match, ne pas autorisé deux points de suite [^.{2,}

par Mazarini » 24 janv. 2013, 10:35

un strpos() ne ferait pas l'affaire plus simplement ?

Re: preg_match, ne pas autorisé deux points de suite [^.{2,}

par two3d » 24 janv. 2013, 10:05

rien non plus,

je suis sur une piste:
<?php
$chaine = "..";
if(preg_match("#(^\.{2,})#",$chaine)) echo "oui"; else echo "non";
sauf qu'il me faudrait l'inverse (la réponse est "oui")

Re: preg_match, ne pas autorisé deux points de suite [^.{2,}

par xTG » 24 janv. 2013, 09:42

Précèdes le d'un antislash ?

preg_match, ne pas autorisé deux points de suite [^.{2,}?]

par two3d » 24 janv. 2013, 09:27

Bonjour,

je souhaite vérifier si dans une chaine il y a deux points de suite mais je n'y arrive pas, voici ma condition (qui ne fonctionne pas): [^.{2,}?]

ma preg_match entière: (je souhaite vérifier une url)
<?php
$chaine = "htTp://w.d-f..d-é.com";
if(preg_match("#^https?://[a-zA-Z0-9._-]+[^.{2,}?]\.[a-zA-Z]{2,6}$#i",$chaine))
je pense qu'un de mes point est considérer comme si je disai "tous les caractère" car le é n'est pas vue comme interdit