Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2007, 10h18   #1
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
Par défaut Variables POST : connaître le type du champ source

Bonjour,

Question très simple, est-il possible de connaitre directement le type d'une variable $_POST ?

Par exemple, j'aimerais pouvoir ignorer tous les champs de type='submit'

Merci.
Sayrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 21h25   #2
Membre confirmé
 
Inscription : avril 2007
Messages : 254
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 254
Points : 262
Points : 262
???? Je ne comprends pas l'idée qui sous-tend la question.
car
- Les inputs de type submit ne sont pas repris dans le POST.
- $_POST est un array associatif de type cle=>valeur. Tu lui donnes un index sous la forme d'un nom, il te fourni en réponse un string. Et puis c'est tout.
Pour connaire le contenu de $_POST, je te conseille de mettre dans ton code ces quelques lignes:
Code :
1
2
3
4
5
 
foreach($_POST as $cle=>$valeur)
{
  print("POST[".$cle."] = ".$valeur."<br>\n");
}
Ouach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 08h47   #3
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
Hello,

J'utilise ce foreach pour traiter mes post de manière générique. Seulement si par exemple je fais une insertion SQL, le $_POST['submit'] va etre traité dans le foreach...

Je voulais juste savoir si il y avait moyen de ne pas traiter ce genre de POST sans devoir faire if($key!='submit'){ ... }
Sayrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 13h15   #4
Membre confirmé
 
Inscription : avril 2007
Messages : 254
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 254
Points : 262
Points : 262
Peux-tu montrer ton code. Car je n'y vois pas encore bien clair.
Ouach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 17h21   #5
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Bonjour,
malheureusement la réponse à ta question est NON.
HTTP est un protocole indépendant du format HTML, donc dans une requete HTTP (typiquement émise par un navigateur web lors de la soumission d'un formulaire) contient des noms de parametres associés à des valeurs, mais aucune relation avec le code html du formulaire qui en est à l'origine.
Donc, coté serveur (quelque soit le language) on peut voir que telle ou telle paramètre à été envoyé dans la requete ($_GET, $_POST, $_COOKIES), que ces paramètre on telle ou telle valeur, mais c'est tout (c'est déjà pas mal).

CONCLUSION : il va falloir ruser
Par exemple, tu peux inclure le type dans le nom de tes champs html :
Code HTML :
1
2
3
4
5
<form ... blabla>
    <input type="text" name="text_login"/>
    <input type="password" name="password_motDePasse"/>
    <input type="submit" name="submit_boutonValider" value="valider"/>
</form>
Après, en php tu n'as plus qu'a faire des tests sur le nom des parametres :
Code :
1
2
3
4
5
6
7
foreach($_POST as $nom=>$valeur)
{
    if(substr($nom,0,7) != 'submit_')
    {
        // ... tu fais tes traitements
    }
}
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 13h26   #6
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
Hello, merci pour cette précision

J'ai déjà fait des trucs similaires pour le contrôle des champs en JS (en plus des controles PHP). où j'appelais mes champs obligatoires commençaient par "req_mavariable" ou encore des champs de type mail "email_mail" et combinaison des 2 "req_email_mail", etc...

Mais effectivement je n'avais pas pensé rajouter les submit.

En tout cas merci!
Sayrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h19.


 
 
 
 
Partenaires

Hébergement Web