bonjour
J'ai une commande qui n'autorise que les chifre, les letres et le caractaires "._#/". la voici :
J'aimerais qu'elle laisse aussi passer les signe "+" et "-".Code:$nav = eregi_replace('[^a-z0-9._#/]', '', $_GET['nav']);
Comment faire ?
Version imprimable
bonjour
J'ai une commande qui n'autorise que les chifre, les letres et le caractaires "._#/". la voici :
J'aimerais qu'elle laisse aussi passer les signe "+" et "-".Code:$nav = eregi_replace('[^a-z0-9._#/]', '', $_GET['nav']);
Comment faire ?
je dirai qu'il suffit que tu rajoutes les deux nouveaux caractères dans ton pattern non?
Code:$nav = eregi_replace('[^a-z0-9._#/+-]', '', $_GET['nav']);
ben oui, c'est ce que j'ai pensé aussi... sauf que non, ça ne marche pas !!! :(
(enfin pour le "-" si mais pas pour le "+")
Un + dans une url correspond à un espace.
Hum? 8OCitation:
Envoyé par Xunil
Pourquoi hum ?
Je n'ai pas compris le sens de ta réponse ! :(
Quand tu as des + dans une valeur GET d'une url le + est un espace.
Dans http://www.site.org?nav=10+20
Un echo de $_GET['nav'] donnera "10 20" et pas "10+20"
Arg !!!
Plus de la boitier des fichiers que je doit traiter on un signe "+".:cry:
Ya une astuce ? Des apostrophe ? simple ? double ?
Un urlencode avant de passer ta valeur en GET devrait faire l'affaire.
Un urldecode pour la récupérer ensuite.
vue... je vais cresser aussi par là...
question subsidiaire :
comment isolerais tu la chaine qi se trouve entre la chaine "nav=" et le premier "&" suivant (s'il y en a un) dans cette chaine la :
"...&nav=niv+1.dwg&co=..."
Je dirais avec une regex
Code:
1
2 preg_match('#(?=<nav=)[^&]+#', $chaine, $f); echo $f[0];
si mon url est :
http://localhost/trans_plan/?nav=AFF1
ce code :
preg_match('#(?=<nav=)[^&]+#', $_SERVER['QUERY_STRING'], $f);
$nav=$f[0];
me retourne l'erreur :
Notice: Undefined offset: 0 in ...\requette.php on line 13
Ah oui, j'ai inversé le < et le = :mouarf:
Code:preg_match('#(?<=nav=)[^&]+#', $_SERVER['QUERY_STRING'], $f);
Je n'aurais que deux mot pour décrire l'aide que tu m'as apporter :
GE NIAL l
Merci pour ta patience !
Maintenant ca marche ! :D
Bonne soirée (moi je vais mieu dormir !)
LEIôPAR