Valider les données d'un formulaire [Résolu]

Signaler
Messages postés
7
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
21 septembre 2007
-
Messages postés
7
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
21 septembre 2007
-
Bonjour,

j'ai mis en place un script qui permet de recevoir les données d'un utilisateur depuis un formulaire sur mon site web.

Parmi tous les contrôles effectués, il y a bien entendu la vérification de chaque champ, ce qui donne par exemple pour le champ "nom" :
$nom = stripslashes($_POST['nom']);
$nom = trim($nom);
$nom = strip_tags($nom);
$nom = str_replace($accent, $sans, $nom);
$nom = htmlentities($nom);


magic_quotes_gpc est à "on"

J'aimerais savoir s'il est possible de traiter tous les champs du formulaire dans une boucle, plutôt que répéter X fois, pour chaque champ, les 5 lignes ci-dessus ?

Si vous avez une idée !! ;)

Merci d'avance

5 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

oui.

Autre solution :
<?php
function myTrim($v) {
    return trim(stripslashes($v));
}
$_POST = array_map('myTrim', $_POST);
?>
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
    utilise une boucle foreach pour le tableau post

par exemple (non testé)

foreach ($_POST as $key => $value) {
       $_POST[$key] => trim($value) ;
// plus les autres traitements que tu veux
}

ensuite tu récup tes données traitées dans le tableau post

@+
Messages postés
7
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
21 septembre 2007

merci ;)
Messages postés
7
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
21 septembre 2007

après vérification, je n'arrive pas à faire fonctionner ta boucle.
<?php
23. foreach ($_POST as $key => $value)
24. {
25. $_POST[$key] => trim(stripslashes($value));
26. }
?>

en faite ça ne fonctionne pas ! j'ai le message d'erreur suivant à l'exécution de la boucle :

Parse error: syntax error, unexpected T_DOUBLE_ARROW in /chemin/www/script.php on line 25

la solution serait-elle :
<?php
foreach ($_POST as $key => $value) {
$_POST[$key] = trim(stripslashes($value));
}
?>

merci
Messages postés
7
Date d'inscription
jeudi 13 septembre 2007
Statut
Membre
Dernière intervention
21 septembre 2007

ok, c'est noté !
je valide la discussion...

merci à tous les deux pour vos conseils ;)

PS : J'aurais une autre question concernant l'injection de headers dans les formulaires php, mais je pense que je vais faire un autre post, pour ça !