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 :

vérification d'un $_post


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 21
    Points : 15
    Points
    15
    Par défaut vérification d'un $_post
    Bonjour,
    j'ai un petit problème de vérification d'un champ $_post,
    j'ai par exemple :
    $_POST['un']
    $_POST['deux']
    $_POST['trois']
    $_POST['quatre']
    $_POST['cinq']
    $_POST['six']
    $_POST['sept']
    $_POST['huit']
    Dans ces posts ce trouvent des chiffres

    Je voudrais pouvoir vérifier si il y a un champ égal à 1, ou plusieurs champs égaux à 1

    Pour l'instant je procède d'une façon toute nulle et je m'arrache les cheveux pour en trouver une autre
    voilà ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $variable=0;
    	if($_POST['un']){$variable++;}
    	if($_POST['deux']){$variable++;}
            if($_POST['trois']){$variable++;}
            if($_POST['quatre']){$variable++;}
            if($_POST['cinq']){$variable++;}
     
    if($variable == 1){echo "un";}
    if($variable > 1){echo "plus de un";}
    Comme vous pouvez le voir c'est assez lourd et pas pratique... quelqu'un aurait une idée?

    merci

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach( $_POST as $champ )
    {
      if( $champ == 1 )
        $variable++;
    }
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    merci, mais il y a un petit probème avec cette soluce héhé...
    je ne peux pas faire ça parce que j'ai d'autres champs dans mon formulaire qui n'ont rien à voir avec ceux concernés par mon post...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il suffit d'ajouter un test pour réaliser l'incrémentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $variable = 0;
    foreach ($_POST as $k => $v) {
        if (in_array($k, array('un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit')) && $v === '1') {
            $variable++;
        }
    }
    var_dump($variable);
    Mais dommage que array_reduce ne fournisse pas la clé à la fonction de rappel.

    Autre option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $cles = array('un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit');
    $variable = 0;
    foreach ($cles as $v) {
        if (isset($_POST[$v]) && $_POST[$v] === '1') {
            $variable++;
        }
    }
    var_dump($variable);
    Tout se vaut ou presque.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    ah oui cool, ça m'a l'air de bien fonctionner!

    merci!

    [edit]
    par contre ça marche mieux si on ne met que 2 "=" dans la condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       if (in_array($k, array('un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit')) && $v == 1) {

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

Discussions similaires

  1. Vérification d'une requête ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/06/2004, 13h59
  2. vérification de passage dans un select case
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h05
  3. [VB6] procédure de vérification d'adresse mail ?
    Par ghohm dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/06/2004, 13h05
  4. [VB.NET] Vérification d'existance d'une table
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2004, 10h17
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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