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 :

[Mail] envoi automatique de mail


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut [Mail] envoi automatique de mail
    Bonjour,

    Je travail sur un site de vente sur internet.
    Je voudrai envoyé un mail au client lorsque la commande est expédiée.
    En fait, sur la gestion des commandes, j'ai un menu déroulant avec les différents états que la commande peut avoir: annulée, en attente fournisseur, expediée... Il faudrait que lorsque je modifie le statut, le mail s'envoi...
    Ca j'y arrive, mais je voudrai que le mail ne s'envoi qu'une seule fois, c'est à dire uniquement lorsque je change l'état de mon select pour passer à option value=expediée...
    Voila mon code source:
    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
     
    ...
     
    <td width="171"><div align="right" class="Style10">&eacute;tat de la commande </div></td>
        <td width="589" class="Style9"><select name="statut" class="Style2">
          <option value="En cours de traitement"<? if($statut=="En cours de traitement"){echo" selected";} ?>>En cours de traitement</option>
          <option value="Commande fournisseur"<? if($statut=="Commande fournisseur"){echo" selected";} ?>>Commande fournisseur</option>
          <option value="En attente"<? if($statut=="En attente"){echo" selected";} ?>>En attente</option>
          <option value="Expediee"<? if($statut=="Expediee"){echo" selected";} ?>>Expedi&eacute;e</option>
          <option value="Annulee"<? if($statut=="Annulee"){echo" selected";} ?>>Annul&eacute;e</option>
        </select>
        </td>
      </tr>
       <td width="589" class="Style2"><label>
    <?
    $message .= "Bonjour $prenom $nom,\n\n";
    $message .= "Votre commande n° $commande sur Mon-Cheval.fr a bien été expédiée.\n";
    $message .= "Le colis a été envoyé à l'adresse suivante : $adrliv\n";
    $message .= "Merci de votre confiance et a bientôt sur http://www.mon-cheval.fr\n";
    $message .= "Une question ? N'hésitez pas : contact@mon-cheval.com ou 0 800 500 749, Numero VERT\nAppel gratuit depuis un telephone fixe en france metropolitaine\n\n";
    $message .= "Amicalement,\n\n";
    $message .= "L'equipe Mon-Cheval\n";
    $message .= "____________________________________\n";
    $message .= "Mon-Cheval.fr | Réalisé par http://www.urbanshot.com";
    ?>
          <input type="submit" name="Submit" value="Modifier" onclick="<? if($statut=="Expediee"){mail("$mail", "[MON-CHEVAL] Votre Commande", $message, "from: $from");}?>"/>
     
    ...
    Je ne sais pas si j'ai réussi à être clair.
    Si vous voulez plus d'infos demandez moi...

    Merci d'avance.

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Salut,

    tu arrives à envoyer un mail quand ta liste déroulante change d'état mais tu voudrais que ça le fasse uniquement pour un état particulier c'est ça et pas pour tous les changements ?

  3. #3
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    sur webcron

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Je veux que le mail s'envoi uniquement lorsque le statut passe à expédiée et seulement la première fois... Le problème et que si je retourne sur l'interface de gestion des commandes, et que j'affiche à nouveau une commande qui est déja sur l'état expédiée, le mail s'envoi à nouveau....

  5. #5
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par calitom
    Je veux que le mail s'envoi uniquement lorsque le statut passe à expédiée et seulement la première fois... Le problème et que si je retourne sur l'interface de gestion des commandes, et que j'affiche à nouveau une commande qui est déja sur l'état expédiée, le mail s'envoi à nouveau....
    Il te faut tout simplement un flag en base pour savoir que le mail à été envoyé

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Oui mais je n'ai pas spécialement envie de rajouter un champ dans une table de ma base de donnée... Ce n'est pas possible de faire autrement?

  7. #7
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par BiD0uille
    sur webcron
    Il veut juste envoyer au mail quand il change l'etat d'une commande, rien de bien compliqué, et pas besoin de faire un cron pour ça.

  8. #8
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par calitom
    Oui mais je n'ai pas spécialement envie de rajouter un champ dans une table de ma base de donnée... Ce n'est pas possible de faire autrement?
    Ben comment être sur que le mail a été envoyé ?

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    C'est clair si tu as déjà une BDD tu dois bien avoir un enregistrement commande quelque part, suffit de rajouter un champ mail et c'est fini.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai toutes les informations concernant ma commande qui s'affiche avec en dessous un bouton modifier et un bouton retour. Si je met l'état expédiée et que je clique sur retour, le statut de ma commande ne change pas dans ma base de donnée. Mais si je clique sur modifier, alors à ce moment là, le statut changera et prendra pour valeur l'option selectionné dans mon menu déroulant. En gros je voudrais que le mail s'envoi lorsque on clique sur modifier et que le statut est expediée...

  11. #11
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par calitom
    J'ai toutes les informations concernant ma commande qui s'affiche avec en dessous un bouton modifier et un bouton retour. Si je met l'état expédiée et que je clique sur retour, le statut de ma commande ne change pas dans ma base de donnée. Mais si je clique sur modifier, alors à ce moment là, le statut changera et prendra pour valeur l'option selectionné dans mon menu déroulant. En gros je voudrais que le mail s'envoi lorsque on clique sur modifier et que le statut est expediée...
    et bien, qu'est ce que tu ne sais pas faire la ?
    c'est encore plus simple que tout ce qui a été dit !

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Ce que je fais (cf code source premier message) me paraissait bon, mais lorsque j'affiche les informations d'une commande ou l'état est déja sur expediée, le mail s'envoi à nouveau sans que je clique sur le bouton modifier. Et je ne comprend pas pourquoi...

  13. #13
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par calitom
    Ce que je fais (cf code source premier message) me paraissait bon, mais lorsque j'affiche les informations d'une commande ou l'état est déja sur expediée, le mail s'envoi à nouveau sans que je clique sur le bouton modifier. Et je ne comprend pas pourquoi...
    Ok est ce que tu fais un test sur l'envoi de ton formulaire ?
    Apparement non, c'est bien pour ça que ton amil est envoyé à chaque fois.

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    C'est à dire? Je ne vois pas quel test tu veux que je fasse...

  15. #15
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par calitom
    C'est à dire? Je ne vois pas quel test tu veux que je fasse...
    Ben tu test si ton formulaire est posté (cf : $_POST)
    Et tu regarde la valeur de ta combo, et si la valeur est "expediée" tu envoi le mail.

    J'avoue ne pas voir la complexité.

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Je suis sur que c'est tout bête, j'avoue avoir l'impression d'être débile, mais je ne vois pas à quel endroit faire ce test, et je ne vois pas la syntaxe... Je n'ai encore jamais testé si un formulaire estr posté...


  17. #17
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par calitom
    Je suis sur que c'est tout bête, j'avoue avoir l'impression d'être débile, mais je ne vois pas à quel endroit faire ce test, et je ne vois pas la syntaxe... Je n'ai encore jamais testé si un formulaire estr posté...

    Un truc comme ça, ça doit marcher :

    A mettre en haut de ta page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ($_POST['statut'] == 'Expediee') { // si tu es en method POST evidement
    	$message .= "Bonjour $prenom $nom,\n\n"; 
    	$message .= "Votre commande n° $commande sur Mon-Cheval.fr a bien été expédiée.\n"; 
    	$message .= "Le colis a été envoyé à l'adresse suivante : $adrliv\n"; 
    	$message .= "Merci de votre confiance et a bientôt sur http://www.mon-cheval.fr\n"; 
    	$message .= "Une question ? N'hésitez pas : contact@mon-cheval.com ou 0 800 500 749, Numero VERT\nAppel gratuit depuis un telephone fixe en france metropolitaine\n\n"; 
    	$message .= "Amicalement,\n\n"; 
    	$message .= "L'equipe Mon-Cheval\n"; 
    	$message .= "____________________________________\n"; 
    	$message .= "Mon-Cheval.fr | Réalisé par http://www.urbanshot.com"; 
    	mail("$mail", "[MON-CHEVAL] Votre Commande", $message, "from: $from");
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ...
    <td width="171"><div align="right" class="Style10">&eacute;tat de la commande </div></td> 
        <td width="589" class="Style9"><select name="statut" class="Style2"> 
          <option value="En cours de traitement"<? if($statut=="En cours de traitement"){echo" selected";} ?>>En cours de traitement</option> 
          <option value="Commande fournisseur"<? if($statut=="Commande fournisseur"){echo" selected";} ?>>Commande fournisseur</option> 
          <option value="En attente"<? if($statut=="En attente"){echo" selected";} ?>>En attente</option> 
          <option value="Expediee"<? if($statut=="Expediee"){echo" selected";} ?>>Expedi&eacute;e</option> 
          <option value="Annulee"<? if($statut=="Annulee"){echo" selected";} ?>>Annul&eacute;e</option> 
        </select> 
        </td> 
      </tr> 
       <td width="589" class="Style2"><label> 
    <input type="submit" name="Submit" value="Modifier"/>
    ...
    J'ai peut-être laissé quelques coquilles ... je n'ai pas tout regardé mais il faut que revois un peu les bases (différence entre JS et PHP)

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    C bon, en fait, j'ai choisi la simplicité et j'ai ajouté un flag dans ma base de donnée et ca marche...
    Merci de votre aide en tout cas.

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

Discussions similaires

  1. [Mail] envoi d'un mail via la fonction mail() de php
    Par Abac_Angelique dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2009, 23h46
  2. [Mail] Envoi automatique d'emails
    Par mariogarcia dans le forum Langage
    Réponses: 29
    Dernier message: 16/09/2006, 14h12
  3. [Mail] Envoi automatique de mail & génération pdf
    Par moabomotal dans le forum Langage
    Réponses: 1
    Dernier message: 01/06/2006, 08h46
  4. [Servlet]Envoi automatique de mails d'alerte
    Par spk4ever dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/05/2006, 14h06
  5. Envoi automatique de mails d'alerte
    Par spk4ever dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/05/2006, 11h11

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