èchappement d'un signe. expressions regulières

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 : èchappement d'un signe. expressions regulières

par Davee » 30 juil. 2007, 13:43

J'ai un peu de retard,

J'ai tout refait
Cyrano ton expression marche très bien, c'est mon code qui merdait ailleurs.
J'ai mélangé plusieurs sources ensemble pour aller plus vite et puis je me suis complètement planté.

Juste pour remettre les pendules dans le bon sens. :)

Merci

David.

par Cyrano » 28 juil. 2007, 15:28

Ben au lieu de faire des noeuds, montre donc le code que tu as utilisé, ce sera plus pratique pour trouver une erreur éventuelle et indique une liste de valeurs tu as testé qui auraient du passer et qui ne le sont pas.

par Davee » 28 juil. 2007, 12:53

Ha ben ouais, je sais pas pourquoi j'ai pas pris le problème dans l'autre sens !

Une obsession je suppose. :?
Merci.

Mais pour info il est pas possible d'échapper le signe * ???

David.

EDIT:
Ha ben réflection faite ça marche pas. quand je mets la regex que tu m'as donné ça "rentchezmamaire" tout le temps, caractère spéciaux ou pas. j'ai essayé avec ! en début de fonction pour inverser la condition. pas de changements
en enlevant la fonction le scripte marche normalement, je vois que cette ligne qui foire. en mettant quelques signe spéciaux le scripte marche normalement.

Mon cerveaux fait des noeuds.

David.

par Cyrano » 28 juil. 2007, 12:40

Et si au lieu de chercher des caractères interdits, tu vérifiais que la chaine n'est composée que de caractères alphanumériques valides ?
<?php
$masque = "#^[a-z0-9]+$#i";
if(!preg_match($masque, $val))
{
    echo 'rentcheztamaire';
}
?>

èchappement d'un signe. expressions regulières

par Davee » 28 juil. 2007, 12:33

Bonjour,

p'tit souçaille.

Je voudrait éviter tout les caractrères spéciaux dans une chaine (haaa les formulaires), mais j'ai un problème avec le signe * qui ne veut pas s'échapper ( pourtant je lui ai même filé les clés) :)
if (preg_match ('#[~\\\"\[\(\/\]\^\!ç%\*ö§:;<>¤£\$\?,\+\`=°\}\{\#]#', $val)) {
echo 'rentcheztamaire';
}
J'ai ajouté les signe un par un pour voir lequel ne fonctionnait pas et c'est tombé sur lui : *
pourtant il est échappé je comprend pas ???

Merci pour vos réponses.

David.