Encore une question posée sur le forum et zou...
Le problème est simple :
On a oublié ses identifiants pour se connecter sur un site et on aimerait bien que le site nous les envoie par mél car on ne va pas recréer un compte à chaque fois que l'on oublie ses identifiants :(
Principe
Il arrive parfois que l'on oublie ses identifiants de connexion sur les sites privés.
Il est donc très pratique de proposer à ses inscrits une option qui leur enverra ceux-ci par mél.
Cette option pourra être facilement mise en place, que ce soit en PHP ou en ASP :
Dans la page où vous voulez proposer cette option, il suffira d'ouvrir un popup grâce à JavaScript, donc, inclure ceci entre les balises <HEAD> et </HEAD> :
<script language="Javascript"> function oubli(){ fic="oubli-ident.php"; // ou "oubli-ident.asp" si ASP param="top=250,left=150,width=450,height=100"; window.open(fic,"Oubli",param); } </script>
Puis le lien, où vous voulez sur la page, permettant d'appeler le module :
<a onClick="oubli()">Oubliés<a>
ou bien
<input type="button" onClick="oubli()" value="Oubliés"> qui donnera :
Chacun enjolivera ce texte à sa guise, en le remplaçant par une petite image sympa par exemple ;)
Le principe est simple :
Il part du fait qu'une adresse électronique est unique et va tout simplement effectuer une recherche dans la base de données de l'adresse électronique saisie.
Bien sûr, cela garantit également que seul celui qui a cette adresse électronique recevra le login et le mot de passe.
Si un petit malin s'amuse à saisir une autre adresse électronique, soit le système lui dira que cette adresse est inconnue, soit il enverra les informations à cette adresse, donc à son propriétaire.
La confidentialité est donc préservée. Mais ATTENTION !
Si le mot de passe en crypté, par exemple en MD5, il sera impossible de le restituer par mél. Dans ce cas, il conviendra d'envoyer à l'utilisateur un nouveau mot de passe, qui sera ensuite crypté en MD5 et inséré dans la base de données à la place de l'ancien.
Le module «oubli-ident.asp»
<% info="Saisissez votre adresse électronique et cliquez sur « Ok »." if Request("mel")<>"" then ' il a validé un mél DSN_BASE="DBQ=" & Server.Mappath(".")&"/labase.mdb" & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25" Set Conn=Server.createObject("ADODB.connection") Conn.Open DSN_BASE Set Rs=Server.CreateObject("ADODB.RecordSet") sql="select * from latable where mel='" & Request("mel") & "'" Rs.Open sql, Conn, 3, 3 if not Rs.eof then ' On a trouvé sujet = "Vos identifiants" message = "<HTML><BODY>" _ & "Login :" & Rs("login") & "<br/>" _ & "Mot de passe :" & Rs("motdepasse") & "<br/>" _ & "</BODY></HTML>" Set Mail = Server.CreateObject("Persits.MailSender") ' Utilisation d'AspEmail Mail.Host = "VOTRE SMTP" Mail.From = "Votre mél" Mail.FromName = "Votre nom" Mail.Subject = sujet Mail.IsHTML = True Mail.Body = message Mail.AddAddress Rs("mel") Mail.Send Set Mail=Nothing info="Vos identifiants vous ont été envoyés par mél." else info="Votre adresse électronique est inconnue." end if Rs.Close Conn.Close Set Rs=Nothing Set Conn=Nothing end if %> <html> <head> <style> body,input {font-family:Arial,Verdana;font-size:11px;} </style> </head> <body onLoad="document.frm.mel.focus()"> <font color="red"><%=info%></font><br/> <form name="frm" method="post" action="oubli-ident.asp"> Votre adresse électronique : <input type="text" name="mel" size="40"> <input type="submit" value="Ok"> </form> </html> </body> </html>
Le module «oubli-ident.php»
<?php $info="Saisissez votre adresse électronique et cliquez sur « Ok »."; if(isset($_POST['mel'])){ // il a validé un mél mysql_connect("localhost", "root", "") or die("Erreur connection : ".mysql_error()); mysql_select_db("labase") or die("Erreur sélection base : ".mysql_error()); $sql="select * from latable where mel='".$_POST['mel']."'"; $result = mysql_query($sql) or die("Erreur Query : ".mysql_error()); if(mysql_num_rows($result) != 0) { // On a trouvé while($row = mysql_fetch_array($result)){ // on boucle mais il n'y en a qu'un $sujet = "Vos identifiants"; $message = "<HTML><BODY>"; $message .= "Login :".$row['login']."<br/>"; $message .= "Mot de passe :".$row['motdepasse']."<br/>"; $message .= "</BODY></HTML>"; $tete = "From: Votre nom <votre mél>\n"; $tete .= "Reply-To: votre-mél\n"; $tete .= "Content-Type: text/html; charset=iso-8859-1\n"; mail($row["mel"],$sujet, $message,$tete); } $info="Vos identifiants vous ont été envoyés par mél."; }else{ $info="Votre adresse électronique est inconnue."; } } ?> <html> <head> <style> body,input {font-family:Arial,Verdana;font-size:11px;} </style> </head> <body onLoad="document.frm.mel.focus()"> <font color=red><?php echo $info;?></font><br/> <form name="frm" method="post" action="oubli-ident.php"> Votre adresse électronique : <input type="text" name="mel" size="40"> <input type="submit" value="Ok"> </form> </html> </body> </html>
Alors, maintenant, vous pouvez oublier vos identifiants...