mail en double

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mail en double

par Gico » 05 juil. 2007, 15:16

merci, je vais mettre une condition alors

par sadeq » 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>

mail en double

par Gico » 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