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

PHP & Base de données Discussion :

Envoi d'un mail avec les identifiants d'un utilisateur [PHP Mysql]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2014
    Messages : 40
    Points : 26
    Points
    26
    Par défaut Envoi d'un mail avec les identifiants d'un utilisateur [PHP Mysql]
    Bonjour,

    J'ai une interface pour générer un mot de passe pour que les utilisateurs puissent se connecter au site. Quand l'administrateur génère le mdp, j'aimerai qu'un mail soit automatiquement envoyé à l'utilisateur contenant son identifiant et son mot de passe.

    J'ai effectué des tests mais je n'arrive pas à recevoir de mail. Que me conseillez-vous ?

    Au clic sur le bouton de ce formulaire, je souhaiterai que le mail soit envoyé :
    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
    <form name="add_user" method="post" action="ajouterAdherent_add.php">
    <?php
    // on choisi l'adhérent
    $req="select NomAdherent, PrenomAdherent from adherent order by NomAdherent asc";
    		$exec=mysql_query($req);
    		echo 'Nom de l adhérent : <select name="NomAdherent">';
    		while ($ligne=mysql_fetch_array($exec))
    		   {
    				echo '<option value="'.$ligne['NomAdherent'].'">'.$ligne['NomAdherent']. " " .$ligne['PrenomAdherent'];   
    		   }
    		echo '</select><br>';
    ?>
    <!-- on lui génère un mdp -->
    <input type="hidden" name="thelength" size=1 value="6">
    <input type="button" value="Générer un mot de passe"  onClick="populateform(this.form.thelength.value)" /><input type="password" name="mdpUtilisateur" value="<? include('ajouterAdherent_add.php')?>" readonly="readonly" size=3/><br>
    <input type="submit" class="btn_addSuppEdit" name="submit" value="Ajouter l'adhérent" /></form>
    Voici le mail avec l'ajout du MDP dans la BDD:
    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
    <!-- AJOUTE LE MDP DANS LA BDD -->
    <?php
    include "connexion.php";
     
    $_mdpUtilisateur = $_POST["mdpUtilisateur"];
    $_NomAdherent = $_POST["NomAdherent"];
     
    if (!isset($_NomAdherent) && !isset($_mdpUtilisateur))
    {
        echo'
        <script>
            document.location="javascript:history.back()";
        </script>';
    }
    else
    {
    		$sql="update adherent set mdpUtilisateur='$_mdpUtilisateur' where NomAdherent='$_NomAdherent'";
    		mysql_query($sql);
    		echo $sql;
    		header ("Location:ajouterAdherent.php");
    }
     ?> 
     
     
    <!-- ENVOIE UN MAIL AVEC LE MOT DE PASSE A L'ADHERENT -->
    <?php
    /* Destinataire */
    $to = 'monadressequejevouscache@gmail.com'; /* ou $to = '.$_MailAdherent.';
    $objet = "Identifiants GIRV";
     
    /* Construction du message */
    $msg .= 'Bonjour,'."\r\n\r\n";
    $msg .= 'Voici vos identifiants pour vous connecter au site du GIRV, vous pourrez modifier votre mot de passe sur votre espace adhérent'."\r\n";
    $msg .= 'Identifiant : '.$_NomAdherent."\r\n";
    $msg .= 'Mot de passe : '.$_mdpUtilisateur."\r\n";
    $msg .= '***************************'."\r\n";
    $msg .= 'Ne pas répondre à cet email'."\r\n";
    $msg .= '***************************'."\r\n";
     
    /* En-têtes de l'e-mail */
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     
    /* Envoi de l'e-mail */
    mail($to, $objet, $msg, $headers);
    ?>
    Il manque sûrement un SELECT pour qu'il me trouve l'adresse mail de l'adhérent sélectionné ? Sachant qu'en attendant, pour être certaine, j'ai utilisé mon adresse mail et qu'après je la remplacerait par une valeur de BDD.
    Du coup j'ai essayé comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     <!-- ENVOIE UN MAIL AVEC LE MOT DE PASSE A L'ADHERENT -->
    <?php
    $destinataire = 'alizeelepy.com';
    // Adresse email du destinataire
    $sujet = 'Titre du message';
    // Titre de l'email
    $message = 'Bonjour. Ceci est un message qui sera envoyé par email. Au revoir.';
    // Contenu du message de l'email
    $headers ='From: alizeelepy@gmail.com'."\n"; 
    mail($destinataire, $sujet, $message, $headers);
    // Fonction principale qui envoi l'email
    echo 'Email envoyé!';
    ?>
    Et même comme ça je ne reçois aucun mail ...


    Cordialement,
    Je vous remercie d'avance,
    lizeal

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il est déjà impératif que tu te documentes sur la sécurité des requêtes (injections SQL).
    Ensuite, je ne vois pas ce que vient faire le mot de passe dans le formulaire ; puisque ce n'est pas l'utilisateur qui le choisit, sa génération devrait être au moment de l'UPDATE.
    Également dans la logique de ton code, n'utilise pas des variables avant de les avoir contrôlé (tu utilises $_POST["mdpUtilisateur"] et tu le vérifie quelques lignes après).

    Sinon pour le mail, tu as simplement besoin d'une requête SELECT sur ta colonne email.

    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
    <?php
    include "connexion.php";
     
    $_mdpUtilisateur = $_POST['mdpUtilisateur'];
    $_NomAdherent = $_POST["NomAdherent"];
     
    if (!isset($_POST["NomAdherent"]))
    {
        echo'
        <script>
            document.location="javascript:history.back()";
        </script>';
    }
    else
    {
    $mdpUtilisateur = fonctionquigenere();
    $_NomAdherent = mysql_real_escape_string($_POST["NomAdherent"]);
     
    		$sql="update adherent set mdpUtilisateur='$_mdpUtilisateur' where NomAdherent='$_NomAdherent'";
    		mysql_query($sql);
     
    		$sql = 'SELECT email FROM adherent WHERE NomAdherent = "' . $_NomAdherent . '"';
                    .....
    }
     ?>

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2014
    Messages : 40
    Points : 26
    Points
    26
    Par défaut wampserver
    Effectivement je ne me suis pas encore attaqué à tout ce qui est sécurité. J'aimerai faire le plus important d'abord car à la limite pour l'instant ça ne l'est pas.
    Ensuite je ne comprend pas pourquoi le mot de passe ne peut pas être dans le formulaire car il n'est pas utilisable ni visible donc il ne pose aucun problème, si ? Ca veut dire que là il est généré avant d'être updaté alors qu'il devrait être pendant l'update ?

    Quant au mail (ce qui me préoccupe le plus), effectivement il manquait bien un select mais j'ai toujours le même problème où je ne reçois aucun mail. Je pense que ça pourrait venir du faire que j'utilise wampserver, pourtant je l'ai configuré...

    Merci pour votre réponse !

Discussions similaires

  1. Envoi Mail avec les composants INDY via SSL
    Par NorexaMS dans le forum Web & réseau
    Réponses: 1
    Dernier message: 30/08/2011, 06h41
  2. Envoi de mails avec les composants Indy
    Par Pascal Fonteneau dans le forum Web & réseau
    Réponses: 4
    Dernier message: 21/01/2008, 20h27
  3. Réponses: 12
    Dernier message: 12/02/2007, 11h34
  4. Envois d'un mail Avec CDont
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/10/2004, 17h34
  5. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 16h18

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