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 de plusieurs identifiants et mot passe par mail


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 60
    Points : 43
    Points
    43
    Par défaut [Mail] envoi de plusieurs identifiants et mot passe par mail
    je voudrai mettre en place un code permettant de renvoyer le login et le mot de passe à une adresse mail.
    Le truc c'est que l'adresse mail a le droit a plusieurs compte !!!

    voici mon code qui marche mais qui n'envoie qu'une seule fois le login et mot de passe ( même si il en existe 15 ! ) :
    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
    <?php
     
    session_start();
     
    $_SESSION['adresse_mail']=$_POST['adresse_mail'];
    $destinataire = $_SESSION['adresse_mail'];
     
    if(preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-.]?[[:alnum:]])*\.([a-z]{2,4})$`',$destinataire))
     
    {
            mysql_connect("localhost","exemple","mot de passe bidon");
            mysql_select_db("pic_login");
            $reponse=mysql_query('SELECT login, mdp FROM pic_login WHERE mail="'.$_SESSION['adresse_mail'].'"') or die(mysql_error());
            $donnees = mysql_fetch_array($reponse);
            mysql_close();
     
            $objet = "Picavisio" ;
            $message = '<html>
    
                                    <head>
                                   
                                            <style type="text/css">
                                            <!--
                                            .Style1 {
                                                            font-family: "Lucida Sans";
                                                            font-weight: bold;
                                                            }
                                            .Style2 {font-family: "Lucida Sans"}
                                            -->
                                            </style>
                                   
                                    </head>
                                   
                                    <body>
                           
                                    <span class="Style2">Stocker vos photos et faites les voir avec des superbes visionneuses sur
                                    <a href="http://picavisio.free.fr">http://picavisio.free.fr</a> !
                                    </span>
                                    <p class="Style1">Votre login est :'.$donnees['login'].'</p>
                                    <p class="Style1">Votre mot de passe est :'.$donnees['mdp'].'</p>
                                   
                                    </body>
                                   
                                    </html>
                                    ';
     
     
            /* Si l’on veut envoyer un mail au format HTML, il faut configurer le type Content-type. */
            $headers = "MIME-Version: 1.0\n";
            $headers .= "Content-type: text/html; charset=iso-8859-1\n";
     
            /* Quelques types d’entêtes : errors, From cc's, bcc's, etc */
            $headers .= "From: Picavisio <picavisio@free.fr>\n";
     
     
            // On envoi l’email
            if ( mail($destinataire, $objet, $message, $headers) )
            {
                    echo "Envoi du mail réussi !";
            ?>
                    <p><a href="index.php">Retour</a></p>
            <?
     
            }
     
            else
            {
                    echo "Echec de l’envoi du mail";
            ?>
              <p><a href="index.php">Retour</a></p>
     
    <?
            }
     
    }
     
    else
     
    {
            echo " Votre adresse n'est pas valide !";?>
            <a href="demande_adresse.php">Retour</a>
    <?
    }
    ?>
    voici le code qu'y permet d'écrire les différents comptes :
    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
    <?
            mysql_connect("localhost","exemple","mot de passe bidon");
            mysql_select_db("pic_login");
            $reponse=mysql_query('SELECT login, mdp FROM pic_login WHERE mail="'.$_SESSION['adresse_mail'].'"')or die(mysql_error());
            mysql_close();
    ?>
     
    <html>
    <style type="text/css">
    <!--
    .Style1 {font-family: "Lucida Sans"}
    -->
    </style>                               
    <body>
     
    <p class="Style1">Stocker vos photos et faites les voir avec des superbes visionneuses sur <a href="http://picavisio.free.fr"> Picavisio</a> ! </p>
    <p class="Style1"><u>Voici votre (vos) identifiant(s) de compte : </u></p>
    <p class="Style1"><br />
     
      <?
    while($donnees = mysql_fetch_array($reponse))
    {
    ?>
      <br />
      <strong>Le compte</strong> <?php echo $donnees['login']; ?> <strong>a le mot de passe</strong> <?php echo $donnees['mdp']; ?> <br />
     
      <?
    }
    ?>
    </p>
    </body>
    </html>

    je n'arrive pas à insérer mon deuxième code dans $message du premier...

    Merci !

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 60
    Points : 43
    Points
    43
    Par défaut
    voici ce que j'ai fait,

    Mais:
    -si un utilisateur créé 3 comptes, alors il ne recoit que 2 mails. Le premier compte est donc absent.
    -si un utilisateur créé 1 seul compte, alors il ne recoir rien !!!

    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
    107
    108
    109
     
    <?php
     
    session_start();
     
    $_SESSION['adresse_mail']=$_POST['adresse_mail'];
    $destinataire = $_SESSION['adresse_mail'];
     
    mysql_connect("localhost","picavisio","mdp");
    mysql_select_db("pic_login");
    $reponse=mysql_query('SELECT * FROM pic_login WHERE mail="'.$_SESSION['adresse_mail'].'" ') or die(mysql_error());
    $donnees = mysql_fetch_array($reponse);
    mysql_close();
    ?>
     
    <style type="text/css">
    <!--
    .Style1 {font-family: "Lucida Sans"}
    -->
    </style>
     
    <?
     
      //requete pour voir si l'identification correspond a un enregistrement
     
      $req = "SELECT * FROM pic_login WHERE mail='$destinataire'";
      $exec = mysql_query($req);
      $result = mysql_fetch_array($exec);
     
            if(preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-.]?[[:alnum:]])*\.([a-z]{2,4})$`',$destinataire))
            {
                    //si le membre existe dans la base de donnees
                    if ($result)
                  {
                            while($donnees = mysql_fetch_array($reponse))
                            {
                                    $objet = "Picavisio" ;
                                    $message='     
                                    <html>
                                    <style type="text/css">
                                    <!--
                                    .Style1 {font-family: "Lucida Sans"}
                                    -->
                                    </style>                               
                                    <body>
                                    <p class="Style1">Stocker vos photos et faites les voir avec des superbes visionneuses sur <a href="http://picavisio.free.fr"> Picavisio</a> !
                                    <br />
                                    <br /> 
                                    Nom du compte: <strong>'.$donnees['login'].'</strong> <br />
                                    Mot de passe: <strong>'.$donnees['mdp'].'</strong> <br />
                                    </p>
                                    <br />
                                    <br /> 
                                    </body>
                                    </html>
                                    ';
                                    /* Si l’on veut envoyer un mail au format HTML, il faut configurer le type Content-type. */
                                    $headers = "MIME-Version: 1.0\n";
                                    $headers .= "Content-type: text/html; charset=iso-8859-1\n";
                                    /* Quelques types d’entêtes : errors, From cc's, bcc's, etc */
                                    $headers .= "From: Picavisio <picavisio@free.fr>\n";
                                    // On envoi l’email
                                    if ( mail($destinataire, $objet, $message, $headers) )
                                    {
    ?>
                                            <p align="center" class="Style1">Envoi du mail réussi !!! </p>
                                            <p align="center" class="Style1"><a href="index.php" class="Style1">Retour sur la page d'accueil </a></p>
                                            <p>
    <?
                                    }
     
                                    else
                                    {
    ?>
                                            </p>
                                            <p align="center" class="Style1">Echec de l’envoi du mail !!! </p>
                                            <p align="center" class="Style1"><a href="index.php" class="Style1">Retour sur la page d'accueil </a></p>
                                            <p>
    <?
                                    }
     
     
                            }
                    }
     
      //s'il n'existe pas
     
                    else
                  {
    ?>
                            <div align="center">
                            <strong> Votre e mail n'est pas present dans notre base de donnees !!! </strong>
                            <p><a href="demande_adresse.php"><img src="precedent.png" width="112" height="110" border="0" /></a></p>
                            <a href="demande_adresse.php" class="Style1">Retour sur la page de saisie de mail </a><a href="http://picavisio.free.fr"></a>
                            </p>
                            </span></div>
    <?
                  }
            }
     
            else
            {
    ?>
                    </p>
                    <p align="center" class="Style1">Votre adresse n'est pas valide !!!</p>
                    <p align="center"><a href="demande_adresse.php" class="Style1">Retour sur la page de saisie de mail </a></p>
    <?
            }
    ?>

    Comment faire pour que l'entrée n°1 de ma table soit aussi envoyer par mail ? ( alors que sa marche avec l'entrée n°2,n°3,n°4,... )

  3. #3
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    Le problème est que ton script saute le 1er enregistrement, voilà pourquoi :
    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
    <?php
     
    session_start();
     
    $_SESSION['adresse_mail']=$_POST['adresse_mail'];
    $destinataire = $_SESSION['adresse_mail'];
     
    mysql_connect("localhost","picavisio","mdp");
    mysql_select_db("pic_login");
    $reponse=mysql_query('SELECT * FROM pic_login WHERE mail="'.$_SESSION['adresse_mail'].'" ') or die(mysql_error());
    $donnees = mysql_fetch_array($reponse);
    mysql_close();
    ?>
     
    <style type="text/css">
    <!--
    .Style1 {font-family: "Lucida Sans"}
    -->
    </style>
     
    <?
     
      //requete pour voir si l'identification correspond a un enregistrement
     
      $req = "SELECT * FROM pic_login WHERE mail='$destinataire'";
      $exec = mysql_query($req);
      $result = mysql_fetch_array($exec);
     
            if(preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-.]?[[:alnum:]])*\.([a-z]{2,4})$`',$destinataire))
            {
                    //si le membre existe dans la base de donnees
                    if ($result)
                  {
                            while($donnees = mysql_fetch_array($reponse))
                            {
    primo je pense que le code en italique et en petite taille n'est jamais utilisé, donc tu peux le supprimer.
    secundo : regarde le mysql_fetch_array($reponse) en gras : tu fais un appel avant la boucle, c-a-d que tu saute le 1er enregistrement, ensuite tu le refais dans la boucle qui envoi les mails. Donc le solution est de supprimer le 1er appel
    J'espère que tu as compris pourquoi quand t'as N comptes, ton script envoi en fait N-1 mails ! c'est simplement à cause du 1er appel à mysql_fetch_array($reponse) !!
    '...parfois l'informatique peut vous rendre fou...'

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 60
    Points : 43
    Points
    43
    Par défaut merci
    ok j'ai compris!

    un do while au lieu du while marche aussi...

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

Discussions similaires

  1. Envoi de mot passe par mail encrypté
    Par dubis dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 10/04/2014, 11h39
  2. renvoi du mot de passe par mail
    Par goldy91 dans le forum Langage
    Réponses: 8
    Dernier message: 13/05/2009, 16h12
  3. [Mail] Envoi du contenu d'une pièce jointe par mail
    Par nonhosonno dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2007, 13h42
  4. Réponses: 6
    Dernier message: 14/11/2006, 10h35
  5. [javax.mail] envoi à plusieurs destinataires
    Par michaelbob dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 29/05/2006, 12h41

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