Regex pour interdire url

Fermé
ANTHURIUMRE Messages postés 93 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 3 janvier 2015 - 20 sept. 2013 à 22:12
 Profil bloqué - 7 oct. 2013 à 10:41
Bonjour,

Je m'occupe d'un petit site et lors des commentaires je voudrais interdire l'introduction d'adresse de sites genre http://www.machain.fr ou http://truc/bidule qui n'ont d'autre but que la publicité.

J'ai essayé ceci

&& preg_match("#[^(https://www.salesforce.com/products/platform/overview/]#",$_POST['commentaire'])
mais maintenant tous les commentaires sont refusés.

Je voudrais une regex qui exclus tout commentaire avec url. pouvez-vous m'aider s'il vous plait.

Merci par avance
A voir également:

3 réponses

ANTHURIUMRE Messages postés 93 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 3 janvier 2015 2
21 sept. 2013 à 06:16
Entre temps j'ai essayé ceci

&& preg_match("#[^((http:\/\/|https:\/\/)?(www.)?(([a-zA-Z0-9-]){2,}\.){1,4}([a-zA-Z]){2,6}(\/([a-zA-Z-_\/\.0-9#:?=&;,]*)?)?)] #",$_POST['commentaire'])

mais malgré cela, aucun commentaire, même ne contenant aucune url n'est accepté.

Donc encore une fois si quelqu'un veut m'aider merci par avance.
0
Nxl Messages postés 1038 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 5 janvier 2017 133
Modifié par antoine7104 le 6/10/2013 à 23:51
Salut,
le mieux serait que tu apprennes à créer des regex toi même... Parce que les sélecteurs (parenthèse) qui sont un peu partout dans ta seconde regex ne servent à rien, en plus ta regex ne sert pas à parser un commentaire entier...
Et il serait plus propre de créer une variable qui contiendrait le commentaire, mais une fois passer à plusieurs fonctions essentielles :

$commentaire = htmlspecialchar($_POST['commentaire']); //failles XSS
$commentaire = stripslashes($commentaire); //Supprime les antislashs d'une chaîne
Si tu veux apprendre consultes la doc sur php.net. ;)
0
Pour devenir un master des Regex en moins d'une heure :

https://openclassrooms.com/fr/courses

Très bien décrit et présenté, intuitif et va droit au but, grâce à ce simple tuto je regex-ise en PHP comme en MySQL, en RewriteRule de Mode_rewrite sur Apaches (fichiers de conf et .htaccess) et même en Objective C pour IOS, autant dire que ça m'a depuis bien décomplexé. Un simple : 'preg_match tester' sur google te sortiras des outils utiles pour progresser très vite dans la création de tes regex. persos. Ensuite si tu t'intéresse aux performances de PHP et de ton serveur, ce développeur a publié un benchmark, il te montre dans quelle mesure les regex peuvent parfois être lourde à exécuter, et qu'il vaut mieux parfois privilégier les fonctions de type 'str_' dans la manipulation de chaines de caractères.

http://maettig.com/code/php/php-performance-benchmarks.php
0