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 :

question pour empty ($_POST


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Points : 74
    Points
    74
    Par défaut question pour empty ($_POST
    Bonjour,

    j'ai plusieur champs de formulaire mais pour eviter les continuels "Notice: Undefined index: Date4 in C:\Program Files\EasyPHP 2.0b1\www\releve\picture.php on line 465" je fais un contrôle préalable sur mes variables.

    Mais voilà le script se rallonge car je suis contraint de les faire champs par champs.

    Comment faire pour regrouper ces instructions ?

    voilà mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $type = '';
    $type_acte = '';
    $Date1 = '';
     
    if (!empty ($_POST['type'])) {
    $type = $_POST['type'];
    }
     
    if (!empty ($_POST['Date1'])){ 
    $Date1 = $_POST['Date1']; //jour
    }
     
    if (!empty ($_POST['Date2'])){
    $Date2 = $_POST['Date2']; //mois
    }
    j'ai mis un raccourci mais mon formulaire comporte plus de 30 champs !!

    Merci de votre aide

    Aurore

  2. #2
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (!empty ($_POST['type'])) {
    $type = $_POST['type'];
    } else { $type=''; }
     
    if (!empty ($_POST['Date1'])){ 
    $Date1 = $_POST['Date1']; //jour
    } else { $Date1 = ''; }
     
    if (!empty ($_POST['Date2'])){
    $Date2 = $_POST['Date2']; //mois
    } else {$Date2 = ''; }
    Ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (!empty ($_POST['type']) && !empty ($_POST['Date1']) && !empty ($_POST['Date2'])) {
    $type = $_POST['type'];
    $Date1 = $_POST['Date1'];
    $Date2 = $_POST['Date2'];
    } else {
    $type = '';
    $Date1 = '';
    $Date2 = '';
    }

  3. #3
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Points : 74
    Points
    74
    Par défaut
    Bonsoir,

    j'avais déjà essayé ta seconde méthode, mais le soucis c'est que si on ne remplit pas un des champs les variables ne sont pas prises en compte.

    Par contre pour première c'est vrai que cela fait plus propre.

    Je reste toujours bloqué

    Merci quand même

    Aurore

  4. #4
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    je comprend pas ce que tu veus faire,
    selon ton code, si la personne n'as pas donner d'information au champs, il sera vide, ...
    mais tu n'as pas besoin de le vérifier?
    exemple:
    si la personne remplie le champ1 , mais pas le champ2
    le champ1 aura comme donné sont contenue, mais le champ2 sera vide mais existera quand meme . donc ca donnera ca $_POST['champ1'] = "donnée"; et $_POST['champ2'] = ""; .
    apres si tu as des champs obligatoire, la tu fait tes vérifications .
    ?

  5. #5
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Points : 74
    Points
    74
    Par défaut
    Tu as raison mais le problème c'est que si je ne fais pas ces verifs j'obtient pour chaque variable cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index:

  6. #6
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    Ha oui ...

    Et bien la ... tu n'as pas bcp de solution .. enfin du peu que je connaisse .. dsl,

    si tes champs sont numéroté ou quelque chose comme ca , tu peu le faire avec un 'for' .
    (ce que je propose par la suite .. je l'ai jamais tester ni essayé ...)
    Tu peux au sinon rentré le nom de tes champs dans un array avec des clé numéroté.
    ensuite avec un for tu les vérifie.

  7. #7
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Points : 74
    Points
    74
    Par défaut
    désolé aucun changement.

    Merci quand même

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Fais une fonction, ça sera toujors mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    test($var)
    {
      if (!empty ($var)) return $var;
      else return '';
    }
     
    $type = test($_POST['type']);
    $Date1= test($_POST['Date1']);
    et tu peux même coupler ceci aux variables dynamiques.
    Voici un exemple tout simple d'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $out=array('var1'=>10, 'var2'=>'rsdg', 'autre_var'=>true );
    print_r($out);
    echo '<br />';
     
    foreach ($out as $key=>$val) $$key=$val;
    echo '**'.$var1.'**<br />';
    echo '**'.$var2.'**<br />';
    echo '**'.$autre_var.'**';
    ?>

  9. #9
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    Salut
    tu peut utiliser les variables dynamiques avec une boucle pour declarer tous les variables issue de ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $tab=array('nom','prenom','age','login','password') ;
    //definir les variables à déclarer 
    $count=count($tab);
    $source=$_POST	; //la source de tes variables : methode d'envoi du formulaire
     
    for($i=0;$i<$count;$i++)
    {
    	$$tab[$i]=(!empty($source[$tab[$i]]))?$source[$tab[$i]]:'' ;
    }
     
    echo "nom : ".$nom."<br>" ;
    echo "prenom : ".$prenom."<br>" ;
    echo "age : ".$age."<br>" ;
    echo "login : ".$login."<br>" ;
    echo "password : ".$password."<br>" ;
    voila malgré que ton formulaire comporte 30 champs il sefit d'ajouter le nom du champs dans le tableau

  10. #10
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Points : 74
    Points
    74
    Par défaut
    Salut,

    merci beaucoup tout fonctionne impeccable,

    merci pour ce tuyau.

    @+

    Aurore

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

Discussions similaires

  1. BTS Info de Gestion passé aujourd'hui question pour SQL
    Par red210 dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 29/05/2005, 14h48
  2. [bochs] Question pour un kernel de base...
    Par hudson dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/02/2005, 12h07
  3. Petite question pour Backup
    Par chicken92000 dans le forum Administration
    Réponses: 2
    Dernier message: 16/09/2004, 16h10
  4. [MIB] Questions pour construire une mib
    Par fadoua dans le forum Développement
    Réponses: 4
    Dernier message: 11/03/2004, 10h47

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