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] E-mail de récupération de données


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut [Mail] E-mail de récupération de données
    Bonjour tout le monde
    Un petit soucis sur un envois de mail via formulaire.
    Voici le code :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    <?php
     
    error_reporting(E_ALL);
     
    include("config.php"); // on demande au script d aller se référer à config.php pour prendre en compte les paramètres contenus dans celui-ci
     
    // On commence par récupérer les champs 
     
    // si on renseigne le champs "societe", alors la variable $soc prendra la valeur de ce champs, sinon elle reste vide. le ['societe'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['societe']))      $soc=$_POST['societe'];
    else      $soc="";
     
    // si on renseigne le champs "activite", alors la variable $act prendra la valeur de ce champs, sinon elle reste vide. le ['activite'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['nom']))      $no=$_POST['nom'];
    else      $no="";
     
    // si on renseigne le champs "code_ape", alors la variable $ape prendra la valeur de ce champs, sinon elle reste vide. le ['code_ape'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['adresse']))      $adr=$_POST['adresse'];
    else      $adr="";
     
    // si on renseigne le champs "num_siren", alors la variable $si prendra la valeur de ce champs, sinon elle reste vide. le ['num_siren'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['code_postal']))      $cp=$_POST['code_postal'];
    else      $cp="";
     
    // si on renseigne le champs "adresse", alors la variable $adr prendra la valeur de ce champs, sinon elle reste vide. le ['adresse'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['ville']))      $vil=$_POST['ville'];
    else      $vil="";
     
    // si on renseigne le champs "code_postal", alors la variable $cp prendra la valeur de ce champs, sinon elle reste vide. le ['code_postal'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['telephone']))      $tel=$_POST['telephone'];
    else      $tel="";
     
    // si on renseigne le champs "ville", alors la variable $vil prendra la valeur de ce champs, sinon elle reste vide. le ['ville'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['fax']))      $fa=$_POST['fax'];
    else      $fa="";
     
    // si on renseigne le champs "nom", alors la variable $no prendra la valeur de ce champs, sinon elle reste vide. le ['nom'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['mail']))      $em=$_POST['mail'];
    else      $em="";
     
     
    // On vérifie si les champs sont vides
    // on controlle chaque saisie de référence voir si elles sont vides ou renseignées, c'est a dire toutes celles qui dans la base de données auront une importance pour etre traitée par la suite
    if(empty($soc) OR empty($no) OR empty($adr) OR empty($cp) OR empty($vil) OR empty($tel) OR empty($fa) OR empty($em))
        {
    	// on affiche un message de controlle sur la saisie en fonction des champs vides
        echo '<font color="red">Attention, aucuns champs ne peut rester vide !</font>';
        }
    // Aucun champ n'est vide, on peut enregistrer dans la table
    else     
        {
        $db = mysql_connect('****', '****', '****');  // connexion à la base : ('serveur', 'utilisateur', 'mdp de la base')
        mysql_select_db('****',$db);                  // sélection de la base ('nom de la base')
     
        // on regarde si la societe existe déjà en fesant un select sur un champs unique, ou il ne peux pas y avoir 2 fois le meme dans la table
    	// le select porte sur le champs societe (numero unique) dans la table sacados de la base de données, on stock le résultat dans la variable $sql
        $sql = "SELECT societe FROM **** WHERE societe='$soc'";
    	// on execute la requete : si OK, on poursuit, sinon on affiche le message d'erreur SQL
        $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        // va retourner le nombre de lignes du résultat de la requete
        $res = mysql_num_rows($req);
     
        if($res!=0)  // si la société existe déjà, on affiche un message d'erreur
            {
            echo '<font color="red">Désolé, mais cette société existe déjà dans notre base de données.</font>';
            }
        else  //  ou le numero n'existe pas, alors on insère les informations du formulaire dans la table renseignée
            {   
            $sql = "INSERT INTO ****( societe, nom, adresse, cp, ville, tel, fax, mail) 
    		 VALUES('$soc','$no','$adr','$cp','$vil','$tel', '$fa', '$em')"; // (societe,  ...) = nom des champs de la table                             ---------                   ($soc,  ...) valeur des variables qui seront stockées dans leur emplacement respectif dans la table
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
            }
        mysql_close();  // on ferme la connexion
        } 
    // liste des variables pour le script
    $sujet="CADEAU SALON";
    $corpmail="Une demande de cadeau vient d'être envoyée .\n
    SOCIETE : $soc 
    NOM : $no
    ADRESSE : $adr 
    CODE POSTAL : $cp
    VILLE : $vil 
    TELEPHONE : $tel
    FAX : $fa
    EMAIL : $em
    ";
     
     
    // on vérifie que le format de l'adresse mail est valide
     
     
          $pt = strpos($em,".");
          $aro = strpos($em,"@");
              if($pt == '')     {echo " Votre adresse email est invalide<br><a href='$urlsite'>Retour</a>";}
              elseif($aro == ''){echo " Votre adresse email est invalide<br><a href='$urlsite'>Retour</a>";} 
     
    // Si tout est OK, le mail est envoyé.
          else {
          mail("$votremail","$sujet","$corpmail","from: //// CADEAU SALON /////"); 
          echo "<font face='Arial' color='#7D9729' size='2'>Votre message a bien été envoyé, une réponse vous sera donnée d'ici 24 à 48 heures.<a href='$urlsite'>Retour</a></font> " ;} 
     
     
    ?>
    Jusqu'ici, aucuns problèmes.
    Le script php insere bien dans la BDD et envoit bien un mail à l'admin du site.

    Seulment, j aimerai y rajouter l'envoi d'un autre mail (notamment à l'utilisateur qui rentre ses données) en allant chercher dans la BDD l'identifiant (id) de sa demande, et de lui insérer cet identifiant dans le mail.

    Cela est il possible ? Si oui, comment ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    de la meme façon


    tu vas récupérer les données qu'il te faut pour ton utilisateur
    et tu utilises la fonction mail() de PHP comme t'as fait
    mail("$votremail","$sujet","$corpmail","from: //// CADEAU SALON /////");
    avec @@Identity pour récupérer le denier ID

  3. #3
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    Ca d'accord, je vois bien le truc, mais pas le code pour y arriver ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("$em","$sujet2","$corpmail2","from: //// CADEAU SALON /////");
    Ce code fonctionnerait il pour l'envoi sur sa boite ? (le mail utilisateur est stocké dans la variable $em normalement)

    Ensuite pour $coprmail2, j'avais pensé à faire :
    $coprmail2 = "Votre demande de cadeau a été effectué .\n
    Votre code promotionel à conserver et à nous retourner pour le recevoir est le $res2
    ";
    $res2 correspont à la requete de select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "SELECT id FROM **** WHERE societe='$soc'";
     
        $req2 = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
     
        $res2 = mysql_num_rows($req2);
    En faisant comme cela, ca pourrait marcher ou non ?

    Et à quoi correspond cela ?
    Citation Envoyé par LeXo
    avec @@Identity pour récupérer le denier ID

  4. #4
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    oui mail() est la fonction qui va construire ton mail

    à mois que tu veux monter une classe mais mail() devrait te suffire

    @@identity <-- c pour récupérer le dernier id de ton insertion en MySQL

    je te mets cette explication
    pour que tu comprennes la fonciton mail()

    http://www.vulgarisation-informatique.com/mail.php

    de la meme façon tu construis ton mail

    ton $res2 ..?? tu récupères l'id de ta société ..?? je croyais que tu voulais renvoyer l'id du message ou de la commande
    sinon c'est ça

    PS :

    si tu mets des champs qui n'ont pas d'obligation d'etre rempli alors ça va etre compliqué pour remplir ta Bdd et remplir retrourner tes mails

    peut etre faudrait faire une fonction javascript pour vérifier que les champs soient remplis

    Bon courage

  5. #5
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    en fait, quand l'utilisateur s'enregistre, on lui attribue automatiquement un id (jusque là c'est normal et basique : auto increment)
    mais cet id sert aussi en quelque sorte de code "identifiant" (comme un code promo en fait) et il doit etre retourné par mail à l'utilisateur pour que celui ci nous le fasse reparvenir pour que l'on mette à jour ensuite la BDD (ceux qui ont renvoyé le code [id] recoivent le cadeau, les autres, bah ... ils en auront pas ^^ )
    Donc d'apres toi le code que j'ai mis devrait fonctionner et aboutir au résultat que je souhaite ?

    Merci de ton aide ;p

  6. #6
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    alors je vais m'abstenir pour dire si ça marche le mieux c'est que tu fasses un essai

    alors oui tu récupères l'id en imaginant que l'id correspond o nombre de commande

    ce qui n'est pas totalement mais assez dangereux
    si une commande est supprimé et on supprime les commandes trop vieilles
    alors ton mysql_num_rows ne retournera plus ton id

    c pour ça qu'il faudrait que tu te renseignes sur le @@identity

  7. #7
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    okidak
    merci pour tes renseignements
    ( je trouve rien sur le identity dans google ... )
    par contre la fonction mail() ca ca va, je pense avoir capté l'essentiel ;p

  8. #8
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    Bon à prioris mon code pour le mail marche (c'est déja ca) ^^
    Mais il ne retourne pas le bon id
    Comment puis je faire avec le @@identity (synthaxe) pour l'incrémenter dans mon code ?
    J'ai trouvé un truc du style
    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
    <%
    'conn est la connexion à la base
    
    sql = "INSERT INTO ma_table(champ1,champ2) VALUES(" & valeur1 & ",'" & valeur2 & "') " & _
    "SELECT @@IDENTITY"
    
    'execution des requetes sql
    set rs = conn.execute(sql)
     
    'on passe au jeu de résultat de la 2ème requète en fermant le premier
    set rs = rs.nextrecordset
    
    'on récupere la valeur d'@@IDENTITY
    id = rs(0)
    
    'on détruit le jeu de resultat
    set rs = nothing
     
    %>
    Mais bon, asp ..., je ne sais pas du tout comment le mettre dans du php
    Merci d'avance.

  9. #9
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    c'est bon, ouf ^^

    j'ai utilisé la fonction mysql_insert_id();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "INSERT INTO ****( societe, nom, adresse, cp, ville, tel, fax, mail) VALUES('$soc','$no','$adr','$cp','$vil','$tel', '$fa', '$em')"; 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());    
    $last_id = mysql_insert_id();
    et donc dans le corps je récupere la valeur de last_id, et c'est bon

    Merci pour ton aide Lexo

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

Discussions similaires

  1. Récupération de données de mails et mise en forme des données récupérées
    Par ElPibeOro dans le forum Shell et commandes POSIX
    Réponses: 15
    Dernier message: 08/07/2014, 16h46
  2. Réponses: 5
    Dernier message: 24/03/2009, 18h12
  3. Réponses: 3
    Dernier message: 19/03/2009, 20h21
  4. [MySQL] récupération de données dans 2 tables + fonction mail()
    Par matperino dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/03/2007, 01h54
  5. Réponses: 3
    Dernier message: 27/04/2006, 16h21

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