mail en double

Eléphant du PHP | 294 Messages

05 juil. 2007, 01:44

Bonjour
Je n'arrive pas a comprendre c'estt fonction mail envois le mail en double , le second par ailleurs ne récuperant pas les variables
$ls_destinataire= $row_clients['email'];
$ls_entete="MIME-Version: 1.0\r\n";
$ls_entete .="From:[email protected]\r\n";
$ls_entete .='Content-Type: text/plain; charset="iso-8859-1"';
$ls_entete .="\r\nContent-Transfert-Encoding: 8bit\r\n";
$ls_entete .='X-Mailer:PHP/'.phpversion()."\r\n";


$ls_objet="infos";
$ls_corps = "infos du ".$row_commande['date_crea']."\n\n";
$ls_corps .= "Cordialement";
mail($ls_destinataire,$ls_objet,$ls_corps,$ls_entete);
une expliquation ?
merci

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

05 juil. 2007, 09:57

Le problème n'est pas dans ce code qui envoit bien un seul mail (il faut pas être parano)
Le problème est ailleurs, dans ton programme principal qui apparamment exécute ce code sans condition et fort probablement à chaque chargement de la page avant même que le formulaire qui doit le déclencher ne le fasse.

Pour éviter ce genre de désagrément, il faut toujours conditionner un traitement déclenché par un formulaire quand le traitement php est écrit dans la même page du code html du formulaire.

Comme ça par exemple:
<?php 
    //Envoyer le mail si le formulaire est envoyé
    if ($_POST["envoyer"]){
       //ici, placez le code php qui envoit le mail
    }
?>
<!-- ici placez le code html du formulaire -->
<form method="POST">
...
...
<!-- Bouton d'envoi du formulaire -->
<p><input type="submit" name="envoyer" value="Envoyer" /></p>
</form>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 294 Messages

05 juil. 2007, 15:16

merci, je vais mettre une condition alors