J'aimerai contrôler des données provenant d'un formulaire qui se trouve sur
le net avant de les envoyer par une fonction mail(). En fait, j'aimerai
sécurisé ce champs.
Quels sont les fonctions PHP que je devrais regarder et surtout celles que
je devrais utiliser sur une variable du type $_POST['comment'] ?
Ce champs sert pour des commentaires, il n'est pas limite en longueur.
Les caractères autorisées seraient:
- les lettres de l'alphabet a-z A-Z
- les caractères français avec les accents, cédille...
- les chiffres 0-9
- @ ! % & () /*-+?;:.
- Les caractères utilisées dans les monnaies: $, Euros, Livre sterling,
etc....
Les autres caractères, je m'en fous car je ne sais lire que le français et
l'anglais. ;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
J'aimerai contrôler des données provenant d'un formulaire qui se trouve sur le net avant de les envoyer par une fonction mail(). En fait, j'aimerai sécurisé ce champs. Quels sont les fonctions PHP que je devrais regarder et surtout celles que je devrais utiliser sur une variable du type $_POST['comment'] ? Ce champs sert pour des commentaires, il n'est pas limite en longueur.
Voici une partie des fonctions à regarder : <http://fr2.php.net/pcre>.
Les caractères autorisées seraient: - les lettres de l'alphabet a-z A-Z - les caractères français avec les accents, cédille... - les chiffres 0-9 - @ ! % & () /*-+?;:. - Les caractères utilisées dans les monnaies: $, Euros, Livre sterling, etc....
Tu fais bien de lister les caractères autorisés plutôt que de chercher à prendre en compte les caractères interdits. C'est bien comme cela que tu ne pourras pas risquer d'avoir des caractères dont tu ne veux pas.
Cela étant dit, puisque ta liste ne se limite pas à des caractères us-ascii, tu dois en plus savoir si ce que tu récupères est en Latin1 ou en UTF-8 (ou autre chose encore, mais pour le français je ne vois pas pourquoi tu irais chercher du Big5 ou du Shift-JIS), et adapter ton expression rationnelle en fonction de cela. Si c'était du latin1, tu ne pourrais pas avoir le symbole « ¤ » (ou alors sous forme d'entité &#qqch;, ce qui risque d'entrer en conflit avec le fait d'accepter aussi le caractère « & »). D'un certain côté c'est dommage car tester des caractères en Latin1 peut se faire avec une simple expression du style "[...ici les caractères...]". Mais en UTF-8 cela peut se faire quand même.
Voici par exemple une expression qui prend en compte, en UTF-8, les caractères que tu as indiqués *et qui sont dans us-ascii*, plus le symbole euro. Pour les autres (caractères français accentués et monnaies), je rajouterai l'info plus tard.
Attention : note que tu as oublié des caractères qui pourraient être utiles, par exemple l'apostrophe ascii (') et la virgule (,).
J'aimerai contrôler des données provenant d'un formulaire qui se trouve sur
le net avant de les envoyer par une fonction mail(). En fait, j'aimerai
sécurisé ce champs.
Quels sont les fonctions PHP que je devrais regarder et surtout celles que
je devrais utiliser sur une variable du type $_POST['comment'] ?
Ce champs sert pour des commentaires, il n'est pas limite en longueur.
Voici une partie des fonctions à regarder : <http://fr2.php.net/pcre>.
Les caractères autorisées seraient:
- les lettres de l'alphabet a-z A-Z
- les caractères français avec les accents, cédille...
- les chiffres 0-9
- @ ! % & () /*-+?;:.
- Les caractères utilisées dans les monnaies: $, Euros, Livre sterling,
etc....
Tu fais bien de lister les caractères autorisés plutôt que de chercher à
prendre en compte les caractères interdits. C'est bien comme cela que tu
ne pourras pas risquer d'avoir des caractères dont tu ne veux pas.
Cela étant dit, puisque ta liste ne se limite pas à des caractères
us-ascii, tu dois en plus savoir si ce que tu récupères est en Latin1
ou en UTF-8 (ou autre chose encore, mais pour le français je ne vois pas
pourquoi tu irais chercher du Big5 ou du Shift-JIS), et adapter ton
expression rationnelle en fonction de cela. Si c'était du latin1, tu
ne pourrais pas avoir le symbole « ¤ » (ou alors sous forme d'entité
&#qqch;, ce qui risque d'entrer en conflit avec le fait d'accepter
aussi le caractère « & »). D'un certain côté c'est dommage car tester
des caractères en Latin1 peut se faire avec une simple expression du
style "[...ici les caractères...]". Mais en UTF-8 cela peut se faire
quand même.
Voici par exemple une expression qui prend en compte, en UTF-8, les
caractères que tu as indiqués *et qui sont dans us-ascii*, plus le
symbole euro. Pour les autres (caractères français accentués et
monnaies), je rajouterai l'info plus tard.
J'aimerai contrôler des données provenant d'un formulaire qui se trouve sur le net avant de les envoyer par une fonction mail(). En fait, j'aimerai sécurisé ce champs. Quels sont les fonctions PHP que je devrais regarder et surtout celles que je devrais utiliser sur une variable du type $_POST['comment'] ? Ce champs sert pour des commentaires, il n'est pas limite en longueur.
Voici une partie des fonctions à regarder : <http://fr2.php.net/pcre>.
Les caractères autorisées seraient: - les lettres de l'alphabet a-z A-Z - les caractères français avec les accents, cédille... - les chiffres 0-9 - @ ! % & () /*-+?;:. - Les caractères utilisées dans les monnaies: $, Euros, Livre sterling, etc....
Tu fais bien de lister les caractères autorisés plutôt que de chercher à prendre en compte les caractères interdits. C'est bien comme cela que tu ne pourras pas risquer d'avoir des caractères dont tu ne veux pas.
Cela étant dit, puisque ta liste ne se limite pas à des caractères us-ascii, tu dois en plus savoir si ce que tu récupères est en Latin1 ou en UTF-8 (ou autre chose encore, mais pour le français je ne vois pas pourquoi tu irais chercher du Big5 ou du Shift-JIS), et adapter ton expression rationnelle en fonction de cela. Si c'était du latin1, tu ne pourrais pas avoir le symbole « ¤ » (ou alors sous forme d'entité &#qqch;, ce qui risque d'entrer en conflit avec le fait d'accepter aussi le caractère « & »). D'un certain côté c'est dommage car tester des caractères en Latin1 peut se faire avec une simple expression du style "[...ici les caractères...]". Mais en UTF-8 cela peut se faire quand même.
Voici par exemple une expression qui prend en compte, en UTF-8, les caractères que tu as indiqués *et qui sont dans us-ascii*, plus le symbole euro. Pour les autres (caractères français accentués et monnaies), je rajouterai l'info plus tard.
Attention : note que tu as oublié des caractères qui pourraient être utiles, par exemple l'apostrophe ascii (') et la virgule (,).
Olivier Miakinen
Le 08/04/2006 17:49, je répondais à Phil P. :
Voici par exemple une expression qui prend en compte, en UTF-8, les caractères que tu as indiqués *et qui sont dans us-ascii*, plus le symbole euro. Pour les autres (caractères français accentués et monnaies), je rajouterai l'info plus tard.
Pour toute la partie haute de ISO-Latin1, rajouter ceci : |xC2[xA0-xBF]|xC3[x80-xBF]
Attention : note que tu as oublié des caractères qui pourraient être utiles, par exemple l'apostrophe ascii (') et la virgule (,).
Regarde ici, en particulier les onglets ISO-8859-1 et ISO-8859-15, pour déterminer les caractères qui t'intéressent, sans en oublier : http://www.miakinen.net/vrac/charsets/
Le 08/04/2006 17:49, je répondais à Phil P. :
Voici par exemple une expression qui prend en compte, en UTF-8, les
caractères que tu as indiqués *et qui sont dans us-ascii*, plus le
symbole euro. Pour les autres (caractères français accentués et
monnaies), je rajouterai l'info plus tard.
Pour toute la partie haute de ISO-Latin1, rajouter ceci :
|xC2[xA0-xBF]|xC3[x80-xBF]
Attention : note que tu as oublié des caractères qui pourraient être
utiles, par exemple l'apostrophe ascii (') et la virgule (,).
Regarde ici, en particulier les onglets ISO-8859-1 et ISO-8859-15, pour
déterminer les caractères qui t'intéressent, sans en oublier :
http://www.miakinen.net/vrac/charsets/
Voici par exemple une expression qui prend en compte, en UTF-8, les caractères que tu as indiqués *et qui sont dans us-ascii*, plus le symbole euro. Pour les autres (caractères français accentués et monnaies), je rajouterai l'info plus tard.
Pour toute la partie haute de ISO-Latin1, rajouter ceci : |xC2[xA0-xBF]|xC3[x80-xBF]
Attention : note que tu as oublié des caractères qui pourraient être utiles, par exemple l'apostrophe ascii (') et la virgule (,).
Regarde ici, en particulier les onglets ISO-8859-1 et ISO-8859-15, pour déterminer les caractères qui t'intéressent, sans en oublier : http://www.miakinen.net/vrac/charsets/
Phil P.
"Olivier Miakinen" <om+ wrote in message news:e19i4d$1c0t$
Le 08/04/2006 17:49, je répondais à Phil P. :
Voici par exemple une expression qui prend en compte, en UTF-8, les caractères que tu as indiqués *et qui sont dans us-ascii*, plus le symbole euro. Pour les autres (caractères français accentués et monnaies), je rajouterai l'info plus tard.
Pour toute la partie haute de ISO-Latin1, rajouter ceci : |xC2[xA0-xBF]|xC3[x80-xBF]
Attention : note que tu as oublié des caractères qui pourraient être utiles, par exemple l'apostrophe ascii (') et la virgule (,).
Regarde ici, en particulier les onglets ISO-8859-1 et ISO-8859-15, pour déterminer les caractères qui t'intéressent, sans en oublier : http://www.miakinen.net/vrac/charsets/
Merci Olivier. Desole je suis deborde. Je regarde ca un peu plus tard. Super le lien. Phil P.
"Olivier Miakinen" <om+news@miakinen.net> wrote in message
news:e19i4d$1c0t$1@cabale.usenet-fr.net...
Le 08/04/2006 17:49, je répondais à Phil P. :
Voici par exemple une expression qui prend en compte, en UTF-8, les
caractères que tu as indiqués *et qui sont dans us-ascii*, plus le
symbole euro. Pour les autres (caractères français accentués et
monnaies), je rajouterai l'info plus tard.
Pour toute la partie haute de ISO-Latin1, rajouter ceci :
|xC2[xA0-xBF]|xC3[x80-xBF]
Attention : note que tu as oublié des caractères qui pourraient être
utiles, par exemple l'apostrophe ascii (') et la virgule (,).
Regarde ici, en particulier les onglets ISO-8859-1 et ISO-8859-15, pour
déterminer les caractères qui t'intéressent, sans en oublier :
http://www.miakinen.net/vrac/charsets/
Merci Olivier. Desole je suis deborde. Je regarde ca un peu plus tard. Super
le lien.
Phil P.
"Olivier Miakinen" <om+ wrote in message news:e19i4d$1c0t$
Le 08/04/2006 17:49, je répondais à Phil P. :
Voici par exemple une expression qui prend en compte, en UTF-8, les caractères que tu as indiqués *et qui sont dans us-ascii*, plus le symbole euro. Pour les autres (caractères français accentués et monnaies), je rajouterai l'info plus tard.
Pour toute la partie haute de ISO-Latin1, rajouter ceci : |xC2[xA0-xBF]|xC3[x80-xBF]
Attention : note que tu as oublié des caractères qui pourraient être utiles, par exemple l'apostrophe ascii (') et la virgule (,).
Regarde ici, en particulier les onglets ISO-8859-1 et ISO-8859-15, pour déterminer les caractères qui t'intéressent, sans en oublier : http://www.miakinen.net/vrac/charsets/
Merci Olivier. Desole je suis deborde. Je regarde ca un peu plus tard. Super le lien. Phil P.