IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variables POST : connaître le type du champ source


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    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.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    ???? 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($_POST as $cle=>$valeur)
    {
      print("POST[".$cle."] = ".$valeur."<br>\n");
    }

  3. #3
    Membre éclairé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Par défaut
    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'){ ... }

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    Peux-tu montrer ton code. Car je n'y vois pas encore bien clair.

  5. #5
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($_POST as $nom=>$valeur)
    {
        if(substr($nom,0,7) != 'submit_')
        {
            // ... tu fais tes traitements
        }
    }

  6. #6
    Membre éclairé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Par défaut
    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!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaître le type des champs d'une table ?
    Par ghohm dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 23/09/2009, 16h08
  2. Protection POST - substitution de type de champs
    Par Lost In Translation dans le forum Langage
    Réponses: 7
    Dernier message: 28/01/2009, 16h56
  3. JS: Connaître le type d'un champ HTML via son nom
    Par NikoBe dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/11/2006, 11h24
  4. Vérifier le type d'une variable postée
    Par kespy13 dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2006, 09h50
  5. Connaître le type d'un champs d'une table Mysql
    Par xoran dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/07/2005, 09h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo