Page 1 sur 1

probleme pour afficher l'expediteur via formulaire

Posté : 10 sept. 2013, 00:36
par M0ka
Bonjour,
J’utilise l’assistant de création de formulaire Formallin ; qui fonctionne très bien pour débuter, à mon avis.

J’ai quand même un problème pour lequel je ne trouve pas de solution, malgré de nombreuses heures de croquage de cerveau en règle. Je me tourne donc vers vous.

Voici le code de mon formulaire (trop austère pour être décemment publié en pleine page)
http://futuracommunication.biz/seminaire.txt

Mon problème est que l’expéditeur est sous cette forme est : [email protected]

Les lignes qui nous intéresse, je pense sont celle-ci (734 du doc ) :
// construction de l'email
$subject=$emailSubject.' ['.$formName.']';
$tab=explode("@",$e);
$ndd=$tab[1];
$expediteur="no-reply@$ndd";

$m= new Mail;
$m->From($expediteur);
$m->To($e);
$m->Subject($subject);
$m->Body(stripslashes($lines));
$m->Priority(1);

// envoie de l'email
$m->Send();
}

J’aimerai que le l’expéditeur soit le résultat de la valeur du champ « Mail ».

En modifiant mon code je suis arrivé a :

[email protected] comme expéditeur en mettant le mot sujet sous cette forme $m->From($expediteur); et en modifiant $expediteur="no-reply@$ndd";

Ou au mot [email protected] avec la fonction $tabLabelText[5][5]

Ou encore avec $e l’adresse email de la boite mail ou arrive le message



Je suis à cours d’idées et de connaissances ; si quelqu’un à une solution pour me permettre d’avancer cela me serai extrêmement utile.

Merci d’avance

Re: probleme pour afficher l'expediteur via formulaire

Posté : 10 sept. 2013, 13:28
par moogli
Salut,

La solution est dans ce tuto http://phpdebutant.org/article56.php ;)

@+

Re: probleme pour afficher l'expediteur via formulaire

Posté : 10 sept. 2013, 14:31
par M0ka
Salut, merci pour ta réponse, je me suis penché sur ce document.
J’ai adapté mon code comme ceci, je n’ai pas d’erreur php mais mon formulaire ne part plus :

$expediteur=$_POST['Email'];

$m= new Mail;
$m->From($expediteur);


Je pense que ça ne correspond pas avec la manière dont est généré par l’appel de l’information Email par formallin

<?php
$tabLabelText[5][5]="Email";
?>
<script type="text/javascript">
tabErrorFields[5] = new Array();
tabErrorFields[5][5]="Email nécessaire pour la validation";
tabFieldsRequired.push(5);
</script>
<script type="text/javascript">
tabErrorFormats[5] = new Array();
tabErrorFormats[5][5]="Email invalide";
tabFormatsRequired.push(5);
</script>
<tr>
<td><label for="element_id5-0"><?php echo $tabLabelText[5][$lang_id];?><span class="obligatoryField"> *</span></label></td>
<td><input class="formallin_email" maxlength="45" size="20" type="text" name="element_email[5]" id="element_id5-0"/></td>
</tr>
<tr><td></td><td><div class="errorMessage" id="error_5"><div class="errorField" id="errorField_5"></div><div class="errorFormat" id="errorFormat_5"></div></div></td></tr><tr><td></td><td></td></tr>


La Fonction $tabLabelText[5][5] n’est -elle pas que l’affichage du mot Email ?

J’ai eu besoin de cette assistant pour générer des formulaires plus complet notamment avec sélecteurs de dates mais je suis bien perdu pour ce qui est de l’appel des informations saisi je ne comprends pas comment elles sont traitées.

Merci

Re: probleme pour afficher l'expediteur via formulaire

Posté : 10 sept. 2013, 17:03
par moogli
le plus simple c'est de voir ce que contient $_POST, car la ce n'est pas ce que tu pense à priori.

pour cela ajoute
var_dump($_POST);
exit();
au début de ton script (donc juste après les <?php

tu auras affiché à l'écran le contenu du tableau $_POST

a priori je pencherais pour : $_POST['element_email'][5], mais il faut voir si le formulaire est bien envoyé en post (ça peu aussi être en get ...).


@+

Re: probleme pour afficher l'expediteur via formulaire

Posté : 12 sept. 2013, 12:14
par M0ka
Effectivement tu avais tout à fait raison.
Pour obtenir le résultat valeur du champ Email en référence expéditeur a la réception du formulaire avec Formallin 2.3.1

// construction de l'email
$subject=$emailSubject.' ['.$formName.']';
/* $tab=explode("@",$e);
$ndd=$tab[1];
$expediteur=$expediteur.($_POST['.$tabFieldsetLegends[5].']); */

$m= new Mail;
$m->From($_POST['element_email'][5]);
$m->To($e);
$m->Subject($subject);
$m->Body(stripslashes($lines));
$m->Priority(1);

// envoie de l'email
$m->Send();
}

Merci beaucoup pour ton aide. A bientôt surement :wink: