8792 sujets

Développement web côté serveur, CMS

bonjour,

dans un formulaire de contact l'on peu choisir le destinataire de l'email par des boutons radio et j'attribue l'adresse e mail du destinataire en fonction du choix, l'adresse email apparait en dur dans le html.
comment faire pour par exemple ne donner que le début de l'adresse qui sera passée en variable et récupére en php et dans le php y ajouter le @xxx.xx

Voila le code html pour les bouton avec l'email en 'dur'

 
<td><label>*Destinataire :</label></td>
    <td colspan="11"><input name="dest" id="DestinataireAquaSafari"  title="Destinataire Aqua Safari" type="radio"  value="alleycat@mail.pf" tabindex="19" />
      Aqua Safari

      <input name="dest" id="DestinataireWebmaster" title="Destinataire Web master" type="radio"  value="alley_cat@mail.pf" tabindex="20" />
      Web Master</td>


Et le php

<?php 
$nom=$HTTP_POST_VARS['nom']; 
$mail=$HTTP_POST_VARS['mail']; 
$destinataire=$HTTP_POST_VARS['dest'];
$message=$HTTP_POST_VARS['message']; 
$subject=$HTTP_POST_VARS['sujet'];
$redirection=$HTTP_POST_VARS['redirection'];
$subject=$HTTP_POST_VARS['cause'];
/////voici la version Mine 
$headers = "MIME-Version: 1.0\r\n"; 
 
//////ici on détermine le mail en format text 
$headers .= "Content-type: text/plain; charset=iso-8859-2\r\n"; 
 
////ici on détermine l'expediteur et l'adresse de réponse 
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer [langue]HP"; 
 

 // Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap()
$message = wordwrap($message, 70);



$body="Nom : {$nom}\nMessage : {$message}\n"; 
if (mail($destinataire,$subject,$body,$headers)) { 
echo('<meta http-equiv="refresh" content="5;url=http://www.aquasafaribora.com/'.$redirection.'" />');

} 
?>


je n'ai pas trouvé comment faire Smiley biggol

merci
Modifié par onibaba (28 Sep 2006 - 10:49)
Actuellement, tu as quoi ?
<input type="radio" value="machin@truc.com" /> ?

Un extrait de HTML ne serait pas superflu.
Bonjour

et désolé pour avoir oublié les codes.

Effectivement j'ai les adresses en Value je n'ai pa réussi autrement.
Au début je voulais mettre des "value" style value="1" et value="2"
pour le choix des adresses mais je ne suis pas arrivé a récupérer la variable et utiliser les conditions genre

$dest=$HTTP_POST_VARS['dest'];
If $dest="1" $destinataire="alleycat@mail.pf" else $destinataire="alley_cat@mail.pf";

(je n'ai pas mis les parenthéses ou accolades je ne connais et c'est un exemple) Smiley biggrin
je ne connais pas le PHP et n'ai pas trouvé d'exemples sur mes bouquins

merci
Bonjour.

J'identifie deux problèmes potentiels :

1) le formulaire est-il complet ?


<form method="POST"  action="php_prog.php" >
<td>
    <input name=...
</td>

<input type="submit" value="Envoyer" />

</form>


... c'est à dire encadrer le code entre les balises <form> et </form>.
Il faut aussi un bouton "submit".


2) le code PHP pour choisir le destinataire :


$dest = $_POST["dest"];
// plus moderne que $HTTP_POST_VARS


if ($dest=="1")   // attention aux parenthèses et à l'opérateur logique "==" (double égal)
{
    $destinataire = "user@server";
}
else
{
    $destinataire = "other@server";
}



ça devrait marcher mieu.
Merci GeorgesM et aux autres

Effectivement cela fonctionne Smiley ravi

Je n'avais fournis qu'une partie du formulaire il y a bien les balises et le bouton Smiley cligne

Pour le passage de variable je ne connaissait pas le double ==
Tellement de choses encore a apprendre Smiley confused
Administrateur
Bonjour,

== n'est justement pas un passage de variable mais un simple test qui ne modifie rien et renvoie true ou false; j'ai un doute dans la manière dont ta phrase est tournée Smiley cligne
Si tu as plus de deux adresses, tu auras avantage à utiliser un tableau :


$mails = array("1@truc.com", "2@truc.com", "3@truc.com", "4@truc.com");
$destinataire = $mails[$_POST['destinataire']];


Pour un code HTML similaire à :

<input type="radio" name="destinataire" value="0" />
<input type="radio" name="destinataire" value="1" />
<input type="radio" name="destinataire" value="2" />
<input type="radio" name="destinataire" value="3" />