Suppression dans saisie Formulaire

Eléphant du PHP | 53 Messages

14 oct. 2007, 20:52

Bonsoir,

J'aimerai savoir si il existe un moyen plus smple pour supprimer des caractere dans un formulaire sans devoir passer par :
htmlspecialchars puis str_replace

Car mon but est en fait de vouloir supprimer les " et ' dans les formulaires si des utilisateurs les ont mis biensur... et je ne vois que cette solution...

Qu'en pensez-vous ?
www.theitalianblog.com tout pour Nokia Symbian

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 oct. 2007, 10:05

Tout dépends des caractères que tu veux supprimer... s'il s'agit juste des guillemets et des apostrophes, tu peux utiliser str_replace() ou même strtr() .. pas besoin d'htmlentities() ou autre, maintenant si tu as d'autres choses à modifier ou a supprimer dans ta chaine (entités html, tags html, accents, ..) bah faut combiner effectivement...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 53 Messages

15 oct. 2007, 21:43

ben j'arrive pas à echapper les espaces !!!
www.theitalianblog.com tout pour Nokia Symbian

Eléphant du PHP | 443 Messages

15 oct. 2007, 21:46

Tu pourrais donner l'exemple de deux chaines, celle que tu reçois et celle que tu voudrais obtenir ?

Tracker.

Eléphant du PHP | 53 Messages

16 oct. 2007, 21:50

ben en fait j'aimerais que si un user tape "le frelon" dans un champs de formulaire, je voudrai supprimer l'espace ce qui donnerai "lefrelon"

Autre chose sur les suppressions j'ai fais ce bout de code
<?php
$pseudo = ($_REQUEST['pseudo']);
$remplacements = array(
" " => "_",
'"' => '',
';' => '',
',' => '',
'?' => '',
'!' => '',
'@' => '',
'^' => '',
'#' => '',
'{' => '',
'}' => '',
'(' => '',
')' => '',
'=' => '',
'+' => '',
'°' => '',
'*' => '',
'/' => '',
'.' => '',
'$' => '',
'%' => '',
'î' => 'i',
'ï' => 'i',
'û' => 'u',
'ô' => 'o',
'ù' => 'u',
'à' => 'a',
'â' => 'a',
'€' => 'e',
'ê' => '',
'ô' => 'o',
'&' => '' );
$pseudo = strtr($pseudo, $remplacements);
$pseudo = addslashes($_REQUEST['pseudo']);
$password = addslashes($_REQUEST['password']);
?>
Mais je voudrais plutot utiliser str-replace mais ça ne marche pas grrr....
www.theitalianblog.com tout pour Nokia Symbian

ViPHP
ViPHP | 4039 Messages

16 oct. 2007, 21:59

Pourquoi pas le regex ?
$pseudo = preg_replace("|\W|","",$_REQUEST['pseudo'])
et elle est belle la vie..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 53 Messages

16 oct. 2007, 22:36

tu peux m'en dire plus sur cette fonction ?
www.theitalianblog.com tout pour Nokia Symbian

Eléphant du PHP | 185 Messages

16 oct. 2007, 23:46

Bonsoir,

les expressions regulières (regex) font l'objet d'une documentation extrêmement fournie et il serait fastidieux d'en énumérer ici toutes les possibilités. En cherchant un peu il est facile de trouver des tutoriaux qui en expliquent les principales fonctions et leur application...

C'est un assez gros morceau à digérer lorsqu'on se lance dans le php. Tu pourras par exemple trouver des réponses en étudiant le sujet sur ce site : http://www.expreg.com/index.php

Dans l'exemple qu'à proposé Berzemus, la fonction preg_replace va permettre de remplacer les espaces contenus dans la chaîne de la variable $_REQUEST par une chaîne vide.

Le premier argument de la fonction ("|\W|") indique que l'on souhaite sélectionner tout ce qui n'est pas constitué de lettres ou de chiffres (en l'occurence dans ton cas les espaces seront considérés comme "éléments" à traîter) et qu'on veut le(s) remplacer par le second argument ("") qui n'est rien d'autre qu'une chaîne vide. Le troisième argument de la fonction est la chaîne que l'on souhaite traîter.

Voilà, en espérant que ça pourra t'aider. Je te conseille tout de même d'étudier le sujet en profondeur, tu y apprendras de nombreuses choses intéressantes, comme par exemple effectuer des contrôles sur les formulaires ! :)

ViPHP
ViPHP | 4039 Messages

17 oct. 2007, 09:23

Merci Kaoteknik, c'est vrai que j'ai été un peu court sur le coup..
(pour ma défence, j'étais fatigué.. :wink: )
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 53 Messages

17 oct. 2007, 20:08

Merci, Merci mais bon je viens d'essayer et ça ne me supprime rien du tout !!!

C'est fou mais a chaque fois rien ne marche :cry:

Pourtant pas d'erreur mais marche po
www.theitalianblog.com tout pour Nokia Symbian

Eléphant du PHP | 53 Messages

17 oct. 2007, 20:14

ho ho desolé... c'est bon ça marche
j'ai un peu merder dans le code mais là c'est bon
www.theitalianblog.com tout pour Nokia Symbian