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 et de variables


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut mail et de variables
    Bonjour à tous!

    voilà j'ai fait un bout de code qui a pour fonction de controler des seuils et de m'envoyer un mail si ces seuils limites sont atteints. Mon problème est le suivant, à chaque rafraichissement de page il m'envoi un mail, or je voudrais qu'il ne m'en envoi qu'un seul. Mon début d'idée est la suivante, je voudrais mettre le contenu de ma requete sql qui me permet d'avoir mes seuils atteints, dans un variable, de la sauvegarder et de comparer à chaque modification si le contenu est le même.
    S'il est le même on envoi pas de mail mais s'il est différent la il m'envoi un mail et un seul. Voici mon bout de code pour vous illustrer tout ca :

    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
    $reqseuil= mysql_query("SELECT * FROM printers WHERE nbr <= 1;"); // nbr étant la quantitié dispo
    $nbrep= mysql_num_rows($reqseuil);
    $commandefaite=false;
     
    while($ligne=mysql_fetch_array($reqseuil))
    {
            $contenu .= $ligne[1].' '.$ligne[2].' '.$ligne[3].' '.$ligne[4].' '.$ligne[5].' '.$ligne[6].' '.$ligne[7]."\n";   
    }
    echo $contenu;
    ////////////
    c'est icic que je bug ! Peut être une comparaison de 2 chaînes de caractères?
    //////////
        if(($nbrep==4)&&($strcompar<>0)
        {               
            ini_set("SMTP","smtp.monsmtp.fr");
            ini_set("sendmail_from","adresse@destintaire.com");
            $to = 'mon.adresse.mail@domaine.com';
            $subject = 'A Commander';
            $msg = "Voici les consommables à commander :\r\n".$contenu1;
            mail($to, $subject, $msg);
            $commandefaire=true;
            echo 'ENVOI OK' ;
        }
    Voila si quelqu un pourrai m'aider svp ca serait super gentil !!MERCI d'AVANCE

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Bonjour,
    Je ne comprends ni ton script et ni ton idée
    Ce que je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    vérif du seuil
    Si seuil dépassé Alors
      Si mail pas encore envoyé Alors
        envoyer mail
        marquer qu'un mail a été envoyé
      FinSi
    Sinon
      Si la marque qu'un mail a déjà été envoyé est présente Alors
        supprimer la marque qu'un mail a été envoyé
      FinSi
    FinSi

  3. #3
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    Moi aussi j'ai un peu de mal à comprendre ton idée, mais ce que j'ai pus interpréter c'est que tu veux être informé par mail de chaque nouveaux enregistrement dans ta base ou tout les x enregistrements. c'est bien ça ?

    Si c'est ce que tu veux moi je fairais :

    pour être informé à chaque enregistrement:

    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
     
    if(isset($_POST['monchamp1'])AND isset($_POST['monchamp2']))
          {
           $champ1 = $_POST['monchamp1'];
           $champ2 = $_POST['monchamp2'];
           if($champ1 != NULL AND $champ2 != NULL)
                 {
                  ta connection à ta base
                  ta requete pour enregistrer
     
                  et la tu mets la traditionnellle fonction mail
                  $headers ='From:tartanpion'."\n";  
                  $headers .='Reply-To: '.$var.''."\n";
                  $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
    	 $headers .='Content-Transfer-Encoding: 8bit'."\n"; 
                  $adress = 'tonadresse@.fr';
                  $sujet = 'retour enregistrement';
                  $message = 'bravo ton site tourne bien tu as encore une
                                   inscription'; 
     
                 mail($adress, $sujet, $message, $headers);
                 }
           }
    si tu veux un mail tous les dix enregistrements, je fairais une table repère avec juste deux champ qui aurais comme nom id_rep et l'autre rep et dans la table d'engeristrement que tu as déjà je rajouterai un champ que j'appelerai id_envoi_mail en auto incrément il faut bien sur qu'il soient initialisé à la même valeur de départ par exemple 1. Ensuite je conterai le nombre d'entré dans la table ou tu enregistre. pour comparé à la tale repère et si la valeur entre les deux table est de 10 j'envoi un mail et je modifie la valeur de la table repère pour y insérerer le nouveau repère ce qui donne:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    //vérification de tes champs
    if(isset($_POST['monchamp1'])AND isset($_POST['monchamp2']))
          {
           $champ1 = $_POST['monchamp1'];
           $champ2 = $_POST['monchamp2'];
     
    //vérification du contenu des champs
           if($champ1 != NULL AND $champ2 != NULL)
                 {
    //Si toutes c'est véricationsont ok alors
    //connection à la base
                  ta connection à ta base
    //Selection du champ avec la valeur repère
                  $rep = mysql_query("SELECT rep FROM table_repere WHERE id='1'");
    //comptage du nombre d'entrée dans la table d'enregistrement
                  $valeur = mysql_query("SELECT COUNT(*) AS id_envoi_mail FROM table_enregistrement");
                  $valeur1 = mysql_fetch_array($valeur);
    //ajout de 10 à la valeur de comparaison
                  $comparaison = $rep + 10;
    //si la valeur de comparaison + dix est égale aux nombres d'enregistrements alors tu mail sans oublier e réenregistrer par dessus la nouvelle valeur de comparaison.
                  if($comparaison == $valeur1)
                      {
     
                      // la fonction mail :
     
                       $headers ='From:tartanpion'."\n";  
                       $headers .='Reply-To: '.$var.''."\n";
                      $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
    	      $headers .='Content-Transfer-Encoding: 8bit'."\n"; 
                       $adress = 'tonadresse@.fr';
                       $sujet = 'retour enregistrement';
                       $message = 'bravo ton site tourne bien tu as encore dix
                                   inscriptions'; 
     
                       mail($adress, $sujet, $message, $headers);
     
                       //Et n'oublions pas de changer la valeur de la table repère 
     
                       mysql_query("UPDATE table_repere SET rep ='$comparaison'  WHERE id_rep='1'");
     
                      //et tu insère les valeurs encours $champ1 et $champ2
     
                      } 
     
                 else
                       {
                      //sinon tu enregistres juste les valeurs en cours $champ1 et $champ2
                       }
                 }
           }

Discussions similaires

  1. [Mail] Enctype et variables PHP
    Par Hulkus dans le forum Langage
    Réponses: 3
    Dernier message: 02/02/2009, 02h22
  2. [MySQL] Comment stocker un $_POST['mail'] dans une variable le temps de le traiter
    Par Dendrite dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/06/2008, 01h03
  3. [Mail] Formatage de variable php ?
    Par TheBananier dans le forum Langage
    Réponses: 2
    Dernier message: 07/12/2007, 11h05
  4. [Mail] mail HTML avec variables
    Par tremeur53 dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2007, 14h15
  5. [Mail] Pb de variable dans blob pour mail
    Par Manuxy dans le forum Langage
    Réponses: 3
    Dernier message: 29/09/2006, 15h41

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