èchappement d'un signe. expressions regulières

Eléphant du PHP | 135 Messages

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.
Des noeuds au cerveau!

Mammouth du PHP | 19672 Messages

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';
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 135 Messages

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.
Des noeuds au cerveau!

Mammouth du PHP | 19672 Messages

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 135 Messages

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.
Des noeuds au cerveau!