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 :

Conditions lors de l'envoi du formulaire


Sujet :

Langage PHP

  1. #21
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Il vient d'où ce code PHP extrêmement compliqué ?

    var_dump, ça sert juste à déboguer, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "tabLabelText :"; var_dump($tabLabelText);
    sert à voir ce que contient cette variable, en gros savoir ce que tu récupères comme valeur ; le but étant de retrouver le code postal...
    Sinon, je tire mon chapeau à k'amm ,d'avoir retrouvé dans les 868 lignes où se trouvait le champ du formulaire qui sert à initialiser cette variable et où on la récupère.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Bonsoir Laurent

    J'ai placé ton code PHP
    echo "tabLabelText :"; var_dump($tabLabelText);
    Voici la réponse
    tabLabelText :string(52) "YToxOntpOjA7YToxOntpOjU7czoxMToiQ29kZSBwb3N0YWwiO319" //---

    Sinon j'en suis là entre les lignes 30 et 65:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    <?php session_start(); header("Content-Type: text/html; charset=UTF-8"); ?>
     
    <?php echo "tabLabelText :"; var_dump($tabLabelText); ?> 
     
    <?php $tabFieldsetLegends[5]="Titre"; ?>
    <?php include("includes/fonction0.php"); ?>
            <script type="text/javascript">
            var tabErrorFields=new Array();
            var tabErrorFormats=new Array();
            var tabFieldsRequired=new Array();
            var tabFormatsRequired=new Array();
            </script>
    <?php $list_langIds="5"; $tab_langIds=explode(",",$list_langIds); ?>
    <?php $tabShortNames[4]="fr"; ?>
    <?php if(is_array($tabShortNames)){ $lang_id=array_search($_GET['lang'],$tabShortNames)+1; }else{ $lang_id=""; }?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="<?php echo $_GET['lang'];?>" xml:lang="<?php echo $_GET['lang'];?>">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title></title>
    <link rel="stylesheet" href="style/style.css" type="text/css" /> 
    <?php include("includes/script.php"); ?>
    <?php include("includes/switch.php"); ?>	       
    </head>
    <body>
    <?php define("_TAB_FORMALLEX","formallin_formallex"); ?>
    <?php $sessionFormallinEditor = "W74sbtAurtDHqKSHwsTQL71KinteXLdSi7kjICvY"; ?>
     
    <?php if( isset($_POST['submit']) ){ // le formulaire a été posté
    $tab_cp=array('93','95','60','62','80','59','02','27','28','76','14','50'); // Tableaux des codes postaux
    $select_email='0';
     
    if(!empty($_POST['tabLabelText'][0]))
    {
      $cp=$_POST$_POST['tabLabelText'][0];
      $int_cp = intval(substr($cp,0,2)); //Troncature du code postal pour ne garder que les 2 premiers caracteres et transforme en entier
    { 
    if(in_array($int_cp,$tab_cp)){
      $select_email='1'; // Si code postal est dans la liste on choisi cet email
        	}
       }
    }
    if($select_email == '1'){
      $email="adresseA@gmail.com";// code postal dans la liste
     
    }else{
    	if( date("d") % 2 == 0 ) // nous sommes un jour pair
      $email="adresseA@gmail.com";
    else
      $email="adresseB@gmail.com";// nous sommes un jour impair
    }
      $formName="Devis campagne N°1"; 
      $emailSubject="Informations transmises par le formulaire";
    ?>
     
    <?php include("includes/fonction2.php"); ?> 
    <?php include("includes/tab.php"); ?>
    <?php } ?><?php if(in_array($lang_id,$tab_langIds)){ ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>?lang=<?php echo $_GET['lang'];?>" onSubmit="return validForm();">
    <fieldset>
    <legend><?php echo $tabFieldsetLegends[$lang_id];?></legend>
    <table>
    <?php
    $tabLabelText[0][5]="Code postal";
    ?>
    <script type="text/javascript">
    tabErrorFormats[0] = new Array();
    tabErrorFormats[0][5]="le format n'est pas respecté";
    tabFormatsRequired.push(0);
    </script>
    <tr>
    <td><label for="element_id0-0"><?php echo $tabLabelText[0][$lang_id];?></label></td>
    <td><input type="text" size="20" maxlength="45" class="formallin_numeric" name="element_numeric[0]" id="element_id0-0"/></td>
    </tr>
    <tr><td></td><td><div class="errorMessage" id="error_0"><div class="errorField" id="errorField_0"></div><div class="errorFormat" id="errorFormat_0"></div></div></td></tr><tr><td></td><td></td></tr>
    <input type="hidden" name="tabGroupeElementsLabel" value="YToxOntpOjA7YTozOntpOjA7czoxOiIzIjtpOjE7czoxMToiQ29kZSBwb3N0YWwiO2k6MjtzOjI6Im5vIjt9fQ==" />
    <input type="hidden" name="tabErrorFields" value="czowOiIiOw==" />
    <input type="hidden" name="tabErrorFormats" value="YToxOntpOjA7YToxOntpOjU7czoyOToibGUgZm9ybWF0IG4nZXN0IHBhcyByZXNwZWN0w6kiO319" />
    <input type="hidden" name="tabShortNames" value="<?php echo base64_encode(serialize($tabShortNames));?>" />
    <input type="hidden" name="tabLabelText" value="<?php echo base64_encode(serialize($tabLabelText));?>" />
    <input type="hidden" name="sli" value="5" />
    <tr>
    <td colspan="2"><span class='txterror'>Les champs marqué d'un <span class="errorMessage">*</span> sont obligatoires</span></td>
      </tr>
    <tr><td>&nbsp;</td><td><?php if(isset($_POST['submit']) && $nbrErrors>0){ echo '<div class="submitError"><br />'.$errorsText.'<br /></div>'; }?></td></tr>
    <?php
    $tabAttributesValues_11['value'][5]="valider";
    ?>
    <tr>
        <td>&nbsp;</td>
        <td><input id="element_id11-0" name="submit" type="submit" class="formallin_submit"  value="<?php echo $tabAttributesValues_11['value'][$lang_id];?>"  /> - 
    <?php
    $tabAttributesValues_12['value'][5]="effacer";
    ?>
    <input id="element_id12-0" name="reset" type="reset" class="formallin_reset"  value="<?php echo $tabAttributesValues_12['value'][$lang_id];?>"  /></td>
      </tr>
    </table>
    </fieldset>
    </form>
    <?php
    if(isset($_POST['submit']) && $nbrErrors==0){
    $lang = $_GET['lang'];
    // si le message a bien été transmis
    $tabLangSuccess['fr'] = "Les informations que vous avez saisies ont bien été transmises. Nous vous en remercions."; // France
     
    // si le message n'a pu être transmis
    $tabLangFailure['fr'] = "Les informations que vous avez saisies n'ont pu être transmises, veuillez réessayer ultérieurement."; // France
    $messageText = $tabLangSuccess[$lang];
     
    $successMessage=<<<msn
    <script type="text/javascript">
    var SUCCESS_MESSAGE="$messageText";
    </script>
    msn;
    echo $successMessage;
    ?>
    <script type="text/javascript">
    $(document).ready(function(){
     
        var bgColor = $('fieldset').css('backgroundColor');
     
        // effet lumineux et confirmation de soumission du formulaire
        $('fieldset').animate({backgroundColor:"#9ee19a", opacity:0},500)
        .animate({backgroundColor:bgColor,opacity:1},500 )
        .animate({opacity:0},500 )
        .queue(function(){
            $('fieldset').html('<div id="success">'+SUCCESS_MESSAGE+'</div>').css({opacity:1});
            $('#success').hide().fadeIn('slow');
        })
    });
    </script>
    <?php
    };
    ?>
    <?php } ?>
    </body>
    </html>
    </body>
    </html>
    C'est un peu plus light afin de chagriner personne
    Cela ne fonctionne pas
    Merci pour ta patience.

  3. #23
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Pas réussi à installer formallin...

    Pour deboguer, rajoute un echo (ligne 36) et dis-nous ce que ça dit (suite demain) :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php session_start(); header("Content-Type: text/html; charset=UTF-8"); ?>
     
    <?php echo "tabLabelText :"; var_dump($tabLabelText); ?> 
     
    <?php $tabFieldsetLegends[5]="Titre"; ?>
    <?php include("includes/fonction0.php"); ?>
            <script type="text/javascript">
            var tabErrorFields=new Array();
            var tabErrorFormats=new Array();
            var tabFieldsRequired=new Array();
            var tabFormatsRequired=new Array();
            </script>
    <?php $list_langIds="5"; $tab_langIds=explode(",",$list_langIds); ?>
    <?php $tabShortNames[4]="fr"; ?>
    <?php if(is_array($tabShortNames)){ $lang_id=array_search($_GET['lang'],$tabShortNames)+1; }else{ $lang_id=""; }?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="<?php echo $_GET['lang'];?>" xml:lang="<?php echo $_GET['lang'];?>">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title></title>
    <link rel="stylesheet" href="style/style.css" type="text/css" /> 
    <?php include("includes/script.php"); ?>
    <?php include("includes/switch.php"); ?>	       
    </head>
    <body>
    <?php define("_TAB_FORMALLEX","formallin_formallex"); ?>
    <?php $sessionFormallinEditor = "W74sbtAurtDHqKSHwsTQL71KinteXLdSi7kjICvY"; ?>
     
    <?php if( isset($_POST['submit']) ){ // le formulaire a été posté
    $tab_cp=array('93','95','60','62','80','59','02','27','28','76','14','50'); // Tableaux des codes postaux
    $select_email='0';
     
    if(!empty($_POST['tabLabelText'][0]))
    {
      $cp=$_POST['tabLabelText'][0];
      echo "cp=".$cp;
      $int_cp = intval(substr($cp,0,2)); //Troncature du code postal pour ne garder que les 2 premiers caracteres et transforme en entier
    { 
    ...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #24
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Bonjour Laurent

    j'ai rajouté echo "cp=".$cp;
    mais c'est pas causant, même pas un petit mot, rien.
    J'ai testé
    <?php echo "tabLabelText :"; var_dump($_POST['tabLabelText'][0]);?>
    le resultat:
    tabLabelText :string(1) "Y" //---

    pour formallin, il faut modifier dans le répertoire \formallin\connectors le fichier formallin_connector_bddAcces.php afin d'indiquer les acces SQL,
    Pour installer la Base de données Lancez le programme d'installation : http://localhost/formallin/install/
    Normalement si le répertoire formallin est a la racine, cela doit fonctionner.

  5. #25
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Pour formallin, tout ce que tu dis est bon...

    Quand tu dis "rien", même pas "cp=" ? Sinon, ça veut dire qu'on passe pas dans la boucle et il vaut mieux déplacer le "echo" (ligne 32 maintenant):
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     <?php session_start(); header("Content-Type: text/html; charset=UTF-8"); ?>
     
    <?php echo "tabLabelText :"; var_dump($tabLabelText); ?> 
     
    <?php $tabFieldsetLegends[5]="Titre"; ?>
    <?php include("includes/fonction0.php"); ?>
            <script type="text/javascript">
            var tabErrorFields=new Array();
            var tabErrorFormats=new Array();
            var tabFieldsRequired=new Array();
            var tabFormatsRequired=new Array();
            </script>
    <?php $list_langIds="5"; $tab_langIds=explode(",",$list_langIds); ?>
    <?php $tabShortNames[4]="fr"; ?>
    <?php if(is_array($tabShortNames)){ $lang_id=array_search($_GET['lang'],$tabShortNames)+1; }else{ $lang_id=""; }?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="<?php echo $_GET['lang'];?>" xml:lang="<?php echo $_GET['lang'];?>">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title></title>
    <link rel="stylesheet" href="style/style.css" type="text/css" /> 
    <?php include("includes/script.php"); ?>
    <?php include("includes/switch.php"); ?>	       
    </head>
    <body>
    <?php define("_TAB_FORMALLEX","formallin_formallex"); ?>
    <?php $sessionFormallinEditor = "W74sbtAurtDHqKSHwsTQL71KinteXLdSi7kjICvY"; ?>
     
    <?php if( isset($_POST['submit']) ){ // le formulaire a été posté
    $tab_cp=array('93','95','60','62','80','59','02','27','28','76','14','50'); // Tableaux des codes postaux
    $select_email='0';
      echo "cp=".$cp;
     
    if(!empty($_POST['tabLabelText'][0]))
    {
      $cp=$_POST['tabLabelText'][0];
      $int_cp = intval(substr($cp,0,2)); //Troncature du code postal pour ne garder que les 2 premiers caracteres et transforme en entier
    { 
    ...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #26
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Encore une fois :
    Normal du coup que, quoique tu fasses, ton test foire : ton $_POST n'a rien à faire là puisque ce que tu veux tester est déjà contenu dans $tabLabeltest (qui récupère la valeur désérialisée de ton POST)...du moins du peu que j'ai pu comprendre de ton code (qui est - une fois de plus - tout sauf lisible).
    En l'occurence, ça, c'est ta chaîne sérialisée et encodée en base 64 :
    tabLabelText :string(52) "YToxOntpOjA7YToxOntpOjU7czoxMToiQ29kZSBwb3N0YWwiO319" //---
    Un petit coup de unserialize(base64_decode()) avant le var_dump pourra t'aider à mieux voir ce qu'il contient ?
    Pour la chaîne citée ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    array (size=1)
      0 => 
        array (size=1)
          5 => string 'Code postal' (length=11)
    Ce qui est assez logique puisque, dans tout le code que tu nous as fourni, tu n'instancies jamais $tabLabelText hormis à la ligne 799 : $tabLabelText[0][5]="Code postal";.
    Il manque un bout de code donc que tu n'as pas posté ? Si non, va falloir que tu adaptes ton formulaire pour transmettre également le code postal (ou l'instancier en dur s'il s'agit d'une info non entrée par l'utilisateur).



    Pour aide mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // Pour récupérer la variable et la convertir en tableau.
    $tabLabelText = unserialize(base64_decode($_POST['tabLabelText ']));
     
    // Pour afficher ton tableau pour debug
    var_dump($tabLabelText);
     
    // Pour vérifier que ton tableau n'est pas vide. En l’occurrence, ton test devra être un peu plus fin que ça m'enfin c'est un début qui te permettra déjà de mieux voir où tu vas.
    if (!empty($tabLabelText))
    {
        // ton traitement
    }
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    tu as raison pardon laurent.

    echo "cp=".$cp; ligne 36
    donne: cp=Y //---

    k'amm
    j'ai donc placer ceci en haut de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    echo "tabLabelText :"; 
    unserialize(base64_decode()); 
    var_dump($_POST['tabLabelText'][0]);
    ?>
    donne:
    tabLabelText :
    Warning: base64_decode() expects at least 1 parameter, 0 given in /homez.59/nom de ma base/geolocalisation/formallin/formallin/files/Test_code_postal.php on line 5
    string(1) "Y"
    Le champ code postal est un champ texte
    peut-être alors faut-il un champ menu déroulant avec le département à sélectionné et faire la condition suivant la sélection ?

  8. #28
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Ca serait mieux comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    echo "tabLabelText :"; 
    var_dump(unserialize(base64_decode(unserialize(base64_decode($_POST['tabLabelText'])))));
    ?>
    En gros, c'est pareil que l'aide-mémoire de k'amm...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Ok avec l'aide mémoire correcte:
    tabLabelText :
    Warning: base64_decode() expects parameter 1 to be string, array given in /homez.59/nom de ma base/geolocalisation/formallin/formallin/files/Test_code_postal.php on line 4
    bool(false) cp=Y //---
    Sinon je refais un formulaire test avec tous les départements au cas ou!

  10. #30
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Je m'aperçois qu'il y avait une erreur de copier-coller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    echo "tabLabelText :"; 
    var_dump(base64_decode($_POST['tabLabelText']));
    ?>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Alors cela donne
    tabLabelText :string(39) "a:1:{i:0;a:1:{i:5;s:11:"Code postal";}}" cp=Y //---
    heu...pour moi c'est pas limpide!
    Mais si pour toi c'est claire tant mieux Laurent

  12. #32
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vatmx Voir le message
    k'amm
    j'ai donc placer ceci en haut de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    echo "tabLabelText :"; 
    unserialize(base64_decode()); 
    var_dump($_POST['tabLabelText'][0]);
    ?>
    Est-ce que tu cherches à comprendre ce qu'on t'explique où tu c/c tout le code qu'on te donne sans même prendre le temps de le lire (et encore moins de l'adapter) ? unserialize(base64_decode()); si tu ne donnes aucun argument à ta fonction, forcément qu'elle ne renverra pas ce que tu veux.

    heu...pour moi c'est pas limpide!
    C'est pas super clair mais ça reste lisible : il s'agit de ta chaîne sérialisée, donc il suffit de lui appliquer la fonction unserialize pour retrouver ton tableau d'origine.

    ...Et là tu reviendras à ce point :
    Ce qui est assez logique puisque, dans tout le code que tu nous as fourni, tu n'instancies jamais $tabLabelText hormis à la ligne 799 : $tabLabelText[0][5]="Code postal";.
    Il manque un bout de code donc que tu n'as pas posté ? Si non, va falloir que tu adaptes ton formulaire pour transmettre également le code postal (ou l'instancier en dur s'il s'agit d'une info non entrée par l'utilisateur).
    Et donc ta réponse (je suppose) :
    Le champ code postal est un champ texte
    peut-être alors faut-il un champ menu déroulant avec le département à sélectionné et faire la condition suivant la sélection ?
    Tu peux me montrer où tu remplis ton tableau $tabLabelText avec les valeurs possibles des départements ?
    S'il s'agit d'un champs libre, tu peux me montrer lequel, où l'utilisateur peut entrer son numéro de département ?
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  13. #33
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Bonsoir k'amm

    Pardon, je ne connais pas les termes techniques que vous utilisez pour aider.

    S'il s'agit d'un champs libre, tu peux me montrer lequel, où l'utilisateur peut entrer son numéro de département ?
    ici

    Tu peux me montrer où tu remplis ton tableau $tabLabelText avec les valeurs possibles des départements ?
    Heu...il n'y a pas de valeurs car c'est un champs libre.
    J'ai donc fait au cas ou un menu déroulant avec les départements. faut-il plutôt utiliser cette solution? ici
    Il y a un ligne pour chaque département
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tabItemValue_0[5][0]="01 Ain";
    Sinon j'en suis là
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php if( isset($_POST['submit']) ){ // le formulaire a été posté
    $tab_cp=array('93', '95', '60', '62' , '80' , '59' , '02' , '27' , '28' , '76' ,  '14' , '50'); // Tableaux des codes postaux
    $select_email='0';
    {
      $cp=$tabLabelText = unserialize(base64_decode($_POST['tabLabelText']));
    echo "cp=".$cp;  
      $int_cp = intval(substr($cp,0,2)); //Troncature du code postal pour ne garder que les 2 premiers caracteres et transforme en entier
     
    	if (in_array($int_cp,$tab_cp)){
      $select_email='1'; // Si code postal est dans la liste on choisi cet email
        	}
       }
     
    if($select_email == '1'){
      $email="adresseA@gmail.com";// code postal dans la liste
     
    }else{
    	if( date("d") % 2 == 0 ) // nous sommes un jour pair
      $email="adresseA@gmail.com";
    else
      $email="adresseB@gmail.com";// nous sommes un jour impair
    }
      $formName="Test N°1"; 
      $emailSubject="Informations transmises par le formulaire";
    ?>
    Maintenant si tu peux me donner le code qui fonctionne, soit avec le champ libre ou si c'est impossible avec le menu déroulant en l'étudiant je comprendrais comment cela fonctionne.
    Mais je ne suis pas de mauvaise volonté
    Juste un vrais débutant

  14. #34
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    S'il y a des termes que tu ne comprends pas...demandes ce que ça signifie ou regardes sur google ! On est là pour te donner des pistes mais c'est à toi derrière de faire tes recherches, adapter les choses et faire des tests...à terme tu comprendras mieux ce que tu fais et tu iras ainsi bien plus vite
    Un bon tuto à lire : http://sylvie-vauthier.developpez.co...rand-debutant/

    Le champs en question où l'utilisateur entre son code postal se nomme... element_numeric[0].
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td><label for="element_id0-0">Code postal</label></td>
    <td><input type="text" size="20" maxlength="45" class="formallin_numeric" name="element_numeric[0]" id="element_id0-0"/></td>
    Forcèment, tu n'auras rien dans tabLabelText

    Repars là dessus par exemple et essaies d'avancer pas à pas de manière aussi logique que possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if (isset($_POST['submit'])) { // le formulaire a été posté
        var_dump($_POST['element_numeric']);
    }
    ?>
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  15. #35
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Merci k'amm de ne pas baisser les bras
    Donc je part avec le formulaire champs libre!
    J'en suis là

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php if (isset($_POST['submit'])) { // le formulaire a été posté
    $tab_cp=array('93', '95', '60', '62' , '80' , '59' , '02' , '27' , '28' , '76' ,  '14' , '50'); // Tableaux des codes postaux
    $select_email='0';
    if(!empty($_POST['element_numeric'][0])) // Le champs où l'utilisateur entre son code postal
    {
      $cp=$tabLabelText = unserialize(base64_decode($_POST['tabLabelText'][0])); // récupérer la variable et la convertir en tableau 
      $int_cp = intval(substr($cp,0,2)); //Troncature du code postal pour ne garder que les 2 premiers caracteres et transforme en entier
     
    	if (in_array($int_cp,$tab_cp)){
      $select_email='1'; // Si code postal est dans la liste on choisi cet email
        	}
       }
     
    if($select_email == '1'){
      $email="adresseA@gmail.com";// code postal dans la liste
     
    }else{
    	if( date("d") % 2 == 0 ) // nous sommes un jour pair
      $email="adresseA@gmail.com";
    else
      $email="adresseB@gmail.com";// nous sommes un jour impair
    }
      $formName="Test N°1";// en sortant du else le message et valable pour les 2 conditions
      $emailSubject="Informations transmises par le formulaire";
    ?>

  16. #36
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    J'admire la maîtrise de k'amm. Par contre, tu n'as pas suivi ses conseils pour savoir dans quoi est stocké le code postal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if (isset($_POST['submit'])) { // le formulaire a été posté
        echo "POST['element_numeric']="; var_dump($_POST['element_numeric']);
    }
    ?>
    Et une question à k'amm : où tu l'as vu ce code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td><label for="element_id0-0">Code postal</label></td>
    <td><input type="text" size="20" maxlength="45" class="formallin_numeric" name="element_numeric[0]" id="element_id0-0"/></td>
    Je l'ai pas trouvé...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  17. #37
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Bonjour Laurent

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td><label for="element_id0-0">Code postal</label></td>
    <td><input type="text" size="20" maxlength="45" class="formallin_numeric" name="element_numeric[0]" id="element_id0-0"/></td>
    ligne 73 du post 22
    En réalité dans mon formulaire final, j'ai plusieurs champs libres
    element_numeric[4]
    element_numeric[6]
    element_numeric[7]
    Donc dans mon test element_numeric[0] le [0] correspond à la clef comme pour $_POST['tabLabelText'][0], c'est pas ca?

    le code pour savoir dans quoi est stocké le code postal
    POST['element_numeric']=array(1) { [0]=> string(5) "95180" }

  18. #38
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    OK, alors essaye ce code-là (j'ai volontairement enlevé les guillemets dans le tableau $tab_cp) :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     <?php if (isset($_POST['submit'])) { // le formulaire a été posté
    $tab_cp=array(93, 95, 60, 62 , 80 , 59 , 02 ,27 , 28 , 76 ,  14 , 50); // Tableaux des codes postaux
    $select_email='0';
     $cp=$_POST['element_numeric'][0] ;
    echo "cp=".$cp;  
      $int_cp = intval(substr($cp,0,2)); /*Troncature du code postal pour ne garder que les 2 premiers caracteres et transforme en entier*/
     
    if(!empty($cp)) // Le champs où l'utilisateur entre son code postal
    {
      if (in_array($int_cp,$tab_cp)){
      $select_email='1'; // Si code postal est dans la liste on choisi cet email
        	}
       }
     
    if($select_email == '1'){
      $email="adresseA@gmail.com";// code postal dans la liste
     
    }else{
    	if( date("d") % 2 == 0 ) // nous sommes un jour pair
      $email="adresseA@gmail.com";
    else
      $email="adresseB@gmail.com";// nous sommes un jour impair
    }
      $formName="Test N°1";// en sortant du else le message et valable pour les 2 conditions
      $emailSubject="Informations transmises par le formulaire";
    ?>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  19. #39
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Laurent

    C'est bon
    J'ai compris!
    Mille mercis pour la recette

  20. #40
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 374
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Content d'avoir aidé, mais sans les interventions de k'amm, impossible...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [PHP 5.4] rien ne s'affiche dans ma BD lors de l'envoi de formulaire
    Par cristelle1986 dans le forum Langage
    Réponses: 24
    Dernier message: 09/10/2014, 12h41
  2. Réponses: 13
    Dernier message: 24/05/2011, 20h38
  3. Réponses: 4
    Dernier message: 21/05/2011, 17h45
  4. Réponses: 1
    Dernier message: 03/01/2011, 09h25
  5. Réponses: 5
    Dernier message: 04/06/2009, 23h05

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