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 :

Sujet de mail avec plusieurs champs [PHP 5.1]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Sujet de mail avec plusieurs champs
    bonjour

    j'env un mail avec comme sujet des info du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mail->Subject= "" . $r1 ." " . $r2 ." " . $r3 ." " . $r4 ." " . $r5 ." " . $r6 ."_" .$da ;
    je place un espace entre chaque réponse ou un ;
    le problème si seule le champ r1 et renseigner le sujet devient r1 _da avec des espace ou r1;;;;;_da avec des ;
    comment faire pour ne pas avoir ce résulta si des champs reste vide

    merci

    cordialement

  2. #2
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut
    bonjour,

    il faut tester la valeur de chaque variable, et concaténer la chaine en conséquence.
    C'est curieux chez les marins ce besoin de faire des phrases !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Sujet de mail avec plusieurs champs
    bonjour

    à tu un exemple je suis pas un pro en PHP

    merci

    Cordialement

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Prends l'habitude d'utiliser des tableaux et non des variables avec des numéros.

    En l'état :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for ($n = 1; $n < 7; $n++) {
        if (!empty(${'r'.$n}) {
            $values[] = ${'r'.$n};
        }
    }
    $mail->Subject= implode(' ', $values) . $da;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    si tes valeurs proviennent d'un formulaire c'est que tu dois les récupérer dans un des supers tableaux $_POST ou $_GET.
    Le mieux serait que tu regroupes ces valeurs dans un sous-tableau du $_POST ainsi cela te simplifierait le traitement :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input id="r1" name="subject['r1']" type="text" value="">
    <input id="r2" name="subject['r2']" type="text" value="">
    <input id="r3" name="subject['r3']" type="text" value="">
    <input id="r4" name="subject['r4']" type="text" value="">
    <input id="r5" name="subject['r5']" type="text" value="">
    <input id="r6" name="subject['r6']" type="text" value="">
    <input id="da" name="subject['da']" type="text" value="">

    Dans ce cas, pour purger ces tableaux des valeurs de longueur nulles, il faut faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mail->Subject = implode(' ', array_filter($_POST['subject'], 'strlen'));

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Une manière de faire en gardant les variables :

    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
    function buildSubject() {
        $subject = '';
        $args = func_get_args();
        $first = array_shift($args);
        $da = array_pop($args);
     
        // Test si l'élément est vide ou non
        function testNonVide($val) {
            if (isset($val) AND $val !== '') {
                return true;
            }
            return false;
        }
     
        //Traitement du premier élément
        if (testNonVide($first)) {
            $subject .= $first;
        }
        //Test des éléments intermédiaires
        foreach ($args as $key => $value) {
            if (testNonVide($value)) {
                $subject .= ' ' . $value;
            }
        }
        // Test du 'da'
        if (testNonVide($da)) {
            $subject .= '_' . $da;
        }
        return $subject;
    }
     
    $r1 = 'a';
    $r2 = 0;
    $r3 = '';
    $r4 = 'null';
    $r6 = null;
    $r5 = 'test';
    $da = 'da';
     
    $subject = buildSubject($r1, $r2, $r3, $r4, $r5, $r6, $da);
     
    echo $subject;
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    @Spartacusply
    directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function testNonVide($val) {
        return (isset($val) and $val !== '');
    }
    Ensuite dans ton code tu présumes l'emplacement des variables dans le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $first = array_shift($args);
    $da = array_pop($args);
    ce qui est fortement déconseillé dans la mesure où les valeurs proviennent d'un formulaire

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

Discussions similaires

  1. Sujet des mail avec IdPOP31 de indy
    Par Coussati dans le forum Delphi
    Réponses: 8
    Dernier message: 13/07/2006, 15h08
  2. Envoi d'un mail avec plusieurs pièces jointes
    Par Wilco dans le forum Composants VCL
    Réponses: 3
    Dernier message: 04/04/2006, 10h19
  3. [Conception] Listes chainées avec plusieurs champs
    Par Nasky dans le forum Général Java
    Réponses: 6
    Dernier message: 11/03/2006, 23h52
  4. Réponses: 3
    Dernier message: 19/11/2004, 21h48
  5. liste deroulante avec plusieurs champs
    Par JulienT dans le forum Struts 1
    Réponses: 4
    Dernier message: 20/04/2004, 17h17

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