OVH Cloud OVH Cloud

Controle de formulaire

6 réponses
Avatar
Automatisez
Bonjour,
J'utilise un formulaire avec la méthode POST. Dans ce cas les données des
différents champs sont transmises dans leur intégralité et récupérables dans
le fichier PHP appelé en tant que variables : $Champ1, $Champ2, $Champ3,
etc.
Comment empécher que des personnes puissent mettre dans les champs des
caractères tels que : ", <, >, ?, =, ', etc.
et de ce fait pouvoir faire des requêtes dans ma base de donnée ?
Merci de votre aide.
Michel

6 réponses

Avatar
Claude
passer par une fonction javascript intermediaire dès la validation du
formulaire et faire des tests sur le contenu des champs avec
document.formulaire.champ.value.indexof par exemple


"Automatisez" a écrit dans le message de
news:c00b7j$rsk$
Bonjour,
J'utilise un formulaire avec la méthode POST. Dans ce cas les données des
différents champs sont transmises dans leur intégralité et récupérables
dans

le fichier PHP appelé en tant que variables : $Champ1, $Champ2, $Champ3,
etc.
Comment empécher que des personnes puissent mettre dans les champs des
caractères tels que : ", <, >, ?, =, ', etc.
et de ce fait pouvoir faire des requêtes dans ma base de donnée ?
Merci de votre aide.
Michel


Avatar
cyberyo
Pourquoi ne pas utiliser un ereg_replace par exemple pour enlever tous ces
caracteres ?

Le Fri, 06 Feb 2004 19:40:29 +0000, Automatisez a écrit :

Bonjour,
J'utilise un formulaire avec la méthode POST. Dans ce cas les données des
différents champs sont transmises dans leur intégralité et récupérables dans
le fichier PHP appelé en tant que variables : $Champ1, $Champ2, $Champ3,
etc.
Comment empécher que des personnes puissent mettre dans les champs des
caractères tels que : ", <, >, ?, =, ', etc.
et de ce fait pouvoir faire des requêtes dans ma base de donnée ?
Merci de votre aide.
Michel


Avatar
Nicklas
Le Fri, 06 Feb 2004 19:40:29 +0000, Automatisez a écrit :

Bonjour,
J'utilise un formulaire avec la méthode POST. Dans ce cas les données des
différents champs sont transmises dans leur intégralité et récupérables dans
le fichier PHP appelé en tant que variables : $Champ1, $Champ2, $Champ3,
etc.
Comment empécher que des personnes puissent mettre dans les champs des
caractères tels que : ", <, >, ?, =, ', etc.
et de ce fait pouvoir faire des requêtes dans ma base de donnée ?
Merci de votre aide.
Michel


J'ai un exemple de traitement de variables si cela t'intéresse :
http://www.progweb.com/modules/cours/consult.php?own=4&numR

La librairie 6.

--
Nicklas

Avatar
charly
*----------------------------------------------------------------------------
| Enlève les balises dangereuses d'un champ soumis en paramètre
+---------------------------------------------------------------------------*/

function Bib_stripTags($val){
$lst_motifs = array(
'<script(.)*</script>',
'<br>',
'</textarea>',
'<?(.)*?>',
'<%(.)*%>'
);

$total = count($lst_motifs);
for ($a=0 ; $a < $total ; $a++){
if ( ereg($lst_motifs[$a], $val) ){
$val = ereg_replace($lst_motifs[$a], '', $val);
}
}
return $val;
}
Avatar
Zouplaz
Automatisez - :

Bonjour,
J'utilise un formulaire avec la méthode POST. Dans ce cas les données
des différents champs sont transmises dans leur intégralité et
récupérables dans le fichier PHP appelé en tant que variables :
$Champ1, $Champ2, $Champ3, etc.
Comment empécher que des personnes puissent mettre dans les champs des
caractères tels que : ", <, >, ?, =, ', etc.
et de ce fait pouvoir faire des requêtes dans ma base de donnée ?
Merci de votre aide.
Michel


Si tu as des requêtes du type

$query = "SELECT * FROM Bozo WHERE c1='$C1'" je pense pas que les > < et
autres posent un problème. En utilisant systématiquement ' et '
systématiquement.

Au pire seuls posent problème les caractères génériques % et _ dans le cas
d'un champ texte. Mais si c'est le seul problème c'est assez simple à
éliminer.

Avatar
Guillaume Bouchard
Automatisez wrote:
Comment empécher que des personnes puissent mettre dans les champs des
caractères tels que : ", <, >, ?, =, ', etc.
et de ce fait pouvoir faire des requêtes dans ma base de donnée ?


Tu t'y prend de la mauvaise maniere.
Tu doit décidé des caracteres autorizer pour tes champs et non pas de
ceux interdit. Après il te suffit de tester via un preg ( ou une
fonction native tel que is_numeric ) que ton champs est correct.

Pour l'insertion en base, le seul caractere dangereux est le '.
J'en profite pour faire un peu de pub:

http://guillaume.apinc.org/2003/aout/12/3-gerer_correctement_magic-quotes

Ensuite, pour traiter A l'affichage les caracteres genres < et > pour ne
pas parasiter ton html, il existe

www.php.net/htmlspecialchars

Bonne chance.

--
Guillaume.