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 :

Pas reception email pour MDP oublié


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut Pas reception email pour MDP oublié
    Salut , je viens vers vos lumières de cerveaux frais...
    Je ne vois pas mon erreur sur ce script php où je tente de recevoir un email de rappel de MDP..je vous glisse le script..merci (debug verif envoi email fait et ok à priori)
    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
    110
    111
    112
    113
    114
    <?php
    include("header.inc.php");
     
    $tmpself=$_SERVER["PHP_SELF"];
    $tab_tmpself=split('/',$tmpself);
    $selfurl='http://'.$_SERVER["SERVER_NAME"].ereg_replace($tab_tmpself[(count($tab_tmpself)-1)],'',$tmpself);
    if ($_POST["submit_mdp"])
    {
    	$email=$_POST["email2"];	
    	if ($email=='')
    	{
    		?>
            <script type="text/javascript">
    		alert('Veuillez renseigner votre adresse email !');
    		</script>
            <?php
    	}
    	else 
    	{
    		$qexists = mysql_query("SELECT * FROM users WHERE email='$email'");
    		$rexists = mysql_fetch_assoc($qexists);
    		if (($rexists["id_user"]>0)==false)
    		{
    		?>
            <script type="text/javascript">
    		alert('Cette adresse email n\'est associée à aucun compte !');
    		</script>
            <?php
    		}
    		else 
    		{
    			$sujet="Youresto.com - Votre mot de passe";
     
    			$msg="Votre demande de mot de passe a bien été enregistrée, retrouvez ci-dessous vos identifiants: <br /><br />Compte: ".$email."<br />Mot de passe: ".$rexists["pwd"]."<br /><br />Vous pouvez vous connecter à votre compte en cliquant <a href=\"www.youresto.com/identification.php\">ici</a><br /><br />Cordialement,<br /><br />L'equipe Youresto.com.";
     
    			$entete = "MIME-Version: 1.0\r\n";
    			$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
    			$entete .= "From: youResto@".$ip.".com\r\n";
     
    			mail($email,$sujet,$msg,$entete);
     
    			?>
    			<script type="text/javascript">
                alert('Votre demande de mot de passe a bien été enregistrée. Un email contenant votre mot de passe vous a été envoyé.');
                </script>
                <?php
    		}
    	}
    }
    ?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>YouResto.com - Inscription</title>
    <link rel="stylesheet" type="text/css" href="css/main-style.css"/>
    <link rel="stylesheet" type="text/css" href="css/mobile-style.css"/>
     
    <link rel="stylesheet" type="text/css" href="js_scripts/jquery.fancybox/jquery.fancybox.css" media="screen" />
    <script type="text/javascript" src="js_scripts/jquery.fancybox/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="js_scripts/jquery.fancybox/jquery.easing.1.3.js"></script>
    <script type="text/javascript" src="js_scripts/jquery.fancybox/jquery.fancybox-1.2.1.pack.js"></script>
    <script type="text/javascript">
    $(document).ready(function() 
    {
    	$("a.inline").fancybox();
    	$("a.inline").fancybox({ 'hideOnContentClick': false }); 
    });
    </script>
    </head>
     
    <body>
    <div id="cadre_principal">
    <div id="header"><? include("headerhtml.inc.php"); ?></div>
    	<div class="top-bar white"><h2><a href="http://youresto.com">youresto.com </a><span class="right">acceder à votre compte</span></h2></div>
     
     
     
    	  <div class="medium right ">
    		<h2 class="bloc2">Identification</h2>
    		<form name="form_resto" action="#" method="post">
     
    			<h3>Me connecter</h3><hr>
    			<p class="button"><strong>Email:</strong></p>
    			<span ><input class="input-search" type="text" name="email" value="<?=htmlentities(stripslashes($_POST["email"]));?>"/></span>
    			<div class="clear"></div>
    			<p class="button"><strong>Mot de passe:</strong></p>
    			<span ><input class="input-search" type="password" name="pwd" value=""/></span>
                <p class="title-xs"><a class="inline" href="#mdp_oublie">Mot de passe oublié ?</a></p>
    			<p><br /><input type="submit" name="submit_identification" value="Go!" style="color: white; background: none
                                    repeat scroll 0% 0% rgb(0, 155, 119);
                                    font-weight: bold; text-decoration:
                                    none; font-size: 50px; padding: 3px
                                    15px;margin-top:4px;width:98%; "/></p>
    		</form><br>
     
    		</div>
     
     
    	<div style="display:none" id="mdp_oublie">
            <form name="form_mdp" action="#" method="post">
                <div class="popupf" style="height:450px;">
                    <h2 style="font-size:13px; padding-bottom:10px;"><strong>Vous avez perdu votre mot de passe</strong></h2>
                    <p class="title-xs">Afin de retrouver votre mot de passe, renseignez ci-dessous votre adresse email utilisée lors de votre inscription sur youresto.com:</p>
                    <h4><strong>Email</strong></h4>
                    <p style="padding-bottom:15px"><strong><input type="text" name="email2" id="email2" style="width:200px; border:1px solid #AAAAAA;"/></strong></p>
                    <p><input type="submit" value="Valider ma demande" name="submit_mdp" id="email2"/></p>
                </div>
            </form>
    	</div>
    </div>
     
    </body>
    </html>

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Salut.
    Essaie cela ?
    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
    110
    111
    112
    113
    114
    115
    116
    <?php
    include("header.inc.php");
     
    $tmpself=$_SERVER["PHP_SELF"];
    $tab_tmpself=split('/',$tmpself);
    $selfurl='http://'.$_SERVER["SERVER_NAME"].ereg_replace($tab_tmpself[(count($tab_tmpself)-1)],'',$tmpself);
    if ($_POST["submit_mdp"])
    {
    	$email=trim($_POST["email2"]);	
    	if ($email=='')
    	{
    		?>
            <script type="text/javascript">
    		alert('Veuillez renseigner votre adresse email !');
    		</script>
            <?php
    	}
    	else 
    	{
    		$qexists = mysql_query("SELECT count(*) as nb FROM users WHERE email='$email'");
    		$rexists = mysql_fetch_assoc($qexists);
    		if ((int) $rexists['nb']==0)
    		{
    		?>
            <script type="text/javascript">
    		alert('Cette adresse email n\'est associée à aucun compte !');
    		</script>
            <?php
    		}
    		else 
    		{
             $qexists = mysql_query("SELECT * as nb FROM users WHERE email='$email'");
             $rexists = mysql_fetch_assoc($qexists);
    			$sujet="Youresto.com - Votre mot de passe";
     
    			$msg="Votre demande de mot de passe a bien été enregistrée, retrouvez ci-dessous vos identifiants: <br /><br />Compte: ".$email."<br />Mot de passe: ".$rexists["pwd"]."<br /><br />Vous pouvez vous connecter à votre compte en cliquant <a href=\"www.youresto.com/identification.php\">ici</a><br /><br />Cordialement,<br /><br />L'equipe Youresto.com.";
     
    			$entete = "MIME-Version: 1.0\r\n";
    			$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
    			$entete .= "From: youResto@".$ip.".com\r\n";
     
    			mail($email,$sujet,$msg,$entete);
     
    			?>
    			<script type="text/javascript">
                alert('Votre demande de mot de passe a bien été enregistrée. Un email contenant votre mot de passe vous a été envoyé.');
                </script>
                <?php
    		}
    	}
    }
    ?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>YouResto.com - Inscription</title>
    <link rel="stylesheet" type="text/css" href="css/main-style.css"/>
    <link rel="stylesheet" type="text/css" href="css/mobile-style.css"/>
     
    <link rel="stylesheet" type="text/css" href="js_scripts/jquery.fancybox/jquery.fancybox.css" media="screen" />
    <script type="text/javascript" src="js_scripts/jquery.fancybox/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="js_scripts/jquery.fancybox/jquery.easing.1.3.js"></script>
    <script type="text/javascript" src="js_scripts/jquery.fancybox/jquery.fancybox-1.2.1.pack.js"></script>
    <script type="text/javascript">
    $(document).ready(function() 
    {
    	$("a.inline").fancybox();
    	$("a.inline").fancybox({ 'hideOnContentClick': false }); 
    });
    </script>
    </head>
     
    <body>
    <div id="cadre_principal">
    <div id="header"><? include("headerhtml.inc.php"); ?></div>
    	<div class="top-bar white"><h2><a href="http://youresto.com">youresto.com </a><span class="right">acceder à votre compte</span></h2></div>
     
     
     
    	  <div class="medium right ">
    		<h2 class="bloc2">Identification</h2>
    		<form name="form_resto" action="#" method="post">
     
    			<h3>Me connecter</h3><hr>
    			<p class="button"><strong>Email:</strong></p>
    			<span ><input class="input-search" type="text" name="email" value="<?=htmlentities(stripslashes($_POST["email"]));?>"/></span>
    			<div class="clear"></div>
    			<p class="button"><strong>Mot de passe:</strong></p>
    			<span ><input class="input-search" type="password" name="pwd" value=""/></span>
                <p class="title-xs"><a class="inline" href="#mdp_oublie">Mot de passe oublié ?</a></p>
    			<p><br /><input type="submit" name="submit_identification" value="Go!" style="color: white; background: none
                                    repeat scroll 0% 0% rgb(0, 155, 119);
                                    font-weight: bold; text-decoration:
                                    none; font-size: 50px; padding: 3px
                                    15px;margin-top:4px;width:98%; "/></p>
    		</form><br>
     
    		</div>
     
     
    	<div style="display:none" id="mdp_oublie">
            <form name="form_mdp" action="#" method="post">
                <div class="popupf" style="height:450px;">
                    <h2 style="font-size:13px; padding-bottom:10px;"><strong>Vous avez perdu votre mot de passe</strong></h2>
                    <p class="title-xs">Afin de retrouver votre mot de passe, renseignez ci-dessous votre adresse email utilisée lors de votre inscription sur youresto.com:</p>
                    <h4><strong>Email</strong></h4>
                    <p style="padding-bottom:15px"><strong><input type="text" name="email2" id="email2" style="width:200px; border:1px solid #AAAAAA;"/></strong></p>
                    <p><input type="submit" value="Valider ma demande" name="submit_mdp" id="email2"/></p>
                </div>
            </form>
    	</div>
    </div>
     
    </body>
    </html>
    Oui, je sais que mysql_num_rows() existe, mais comme tu vas passer à PDO au prochain message, je te fais gagner du temps.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    Salut Dendrite, merci pour ta proposition...mais le résultat est page blanche :-)

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Mais au fait, elle est où ta connexion ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $qexists = mysql_query("SELECT * FROM users WHERE email='$email'");
    $rexists = mysql_fetch_assoc($qexists);
    echo '<pre>';
    print_r($rexists);
    echo '</pre>';
    Par ailleurs,
    1) tu stockes dans ta base les mdp en dur ????????????? (une infinité de points d'interrogation)
    2) Et tu demandes à l'utilisateur de te donner juste le mail, et tu lui envoies le mdp ??????????????????????????
    C'est vraiment tout bénef pour le mec qui viole ta base de données. C'est sympa... mais je ne suis pas prête de m'inscrire sur ton site !
    Et si je mets le mail de potes dont je sais qu'ils sont sur ton site, tu m'enverras leur mot de passe, ils seront contents.
    3) Enfin ton code est tout ouvert à l'injection SQL.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    ..c'est vrai que ça a été fait il y a quelques années, et la verif email avec la clé générée etait suffisante. Je vais changer pour placer un MD5...

    Mais bon, je ne comprends pas pour quoi le script oublie MDP ne fonctionne pas, alors que le script inscription envoi correctement les alertes email...

  6. #6
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Tu n'as pas testé mon dernier code ? tu ne montres pas ce que ça affiche ?

    Ce n'est pas md5 qui te manque (encore raté).

    C'est
    1) pasword_hash et password_verify, si tu as PHP5.3 ou plus
    2) Ensuite, tu te contentes de comparer deux chaînes cryptées pareil, sans jamais pouvoir toi fournir la chaîne de départ.
    3) Comment faire quand un utilisateur perd son mot de passe ? Tu lui envoies par mail un lien avec un token unique pour être sûr que c'est bien celui qui accède à la boîte mail qui veut changer son mdp, et ce token déclenchera la possibilité de saisir un nouveau mot de passe.
    4) tu passes à PDO ET aux requêtes préparées pour prévenir les injections SQL...

    Bref, t'as un peu de boulot mais c'est urgent ! parce que ton site est une passoire en l'état.
    edit : d'ailleurs, je te conseille de gommer le nom ici, histoire de ne pas attirer les nuisibles.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    Tu as raison, je vais refaire de ce pas les pages inscription et oubli MDP...

    Sur tes propositions de code, le résultat est page blanche ...il y a un truc qui est mal ou pas interprété

  8. #8
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Ben la connexion ne marche pas, c'était le but du test.
    Bon ça tombe bien. On va brancher direct une connexion PDO. Bouge pas, je vais éditer.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    ...bah en théorie on a ce qu'il faut dans header.inc.php.. nan..?

  10. #10
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Ben, non. tu veux passer d'une connexion mysql à une connexion PDO.

    Ici tu trouveras le code dont tu devras t'inspirer pour cette connexion :

    https://www.developpez.net/forums/d1.../#post10217889
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    MErci Dendrite. Je réflechissais à ce mode de MDP oublié, envoi par email...faut quand meme avoir acces à la boite email...ce que je vais proposer c'est un reset avec nouveau MDP

  12. #12
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Je suis têtue... Mais ta technique permet à un client facétieux de faire ceci :
    Mon pote Bernard est sur ton site. Je connais son mail. Je te fais un mail comme quoi moi, Bernard, j'ai perdu mon mot de passe. Tu changes d'abord le mot de passe, et tu envoies un mail à Bernard, qui ne t'a rien demandé, avec son nouveau mdp en dur dans le mail ?
    C'est pour le moins brouillon non ?
    Et puis tu envoies des mots de passe en clair dans un mail, ça fera fuir n'importe quel client averti.
    Et puis à chaque fois qu'il se reconnecte, il va oublier son mdp, vu qu'il ne l'aura pas choisi.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    @Dendrite : la technique "génération du nouveau mot de passe et envoi par mail" est valable SI c'est un mot de passe temporaire. Autrement dit, si la 1ere fois que l'utilisateur se connecte avec ce mot de passe, ça le redirige automatiquement vers une page de changement de mot de passe.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [Achat] Apple n'oublie pas la Belgique pour ses Apple Store
    Par Marcos Ickx dans le forum Apple
    Réponses: 1
    Dernier message: 22/10/2009, 18h46
  2. Pas de DNS pour les clients
    Par M.Dlb dans le forum Réseau
    Réponses: 2
    Dernier message: 05/07/2004, 23h06

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