Changement de mot de passe asp-access

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 348 fois - Téléchargée 30 fois

Contenu du snippet

Supposons qu'on veut permettre aux utilisateurs de changer leurs mots de passe, on réalise un formulaire avec les champs (ancien) ou on tape l'ancien mot de passe, un champ (nouveau1) pour taper le nouveau mot de passe désiré et un autre champ (nouveau2) pour saisir la confirmation du nouveau mot de passe.

Le formulaire sera dans une page par exemple update.htm dont il sera tarité dans la page
updateConfirm.asp comme:

<form method="post" action="updateConfirm.asp">

Vous trouverez copyright et commentaires dans le code

Source / Exemple :


<%@ LANGUAGE = "VBScript" %>
<%

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'            Changement de mot de passe ASP/ACCESS          '
'  Auteur: Farid - ALGERIE  /  Site Web: www.farid.f2o.org  '
'  E-mail: sidoummoudz@yahoo.fr                             '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'  Ce code est gratuit. Ces lignes de commentaires doivent  '
'  être conservées pour son utilisation légale.             '
'  Il a été testé sous IIS v.5, Windows XP Professionnel    '
'  Service Pack 2 et Internet Explorer 6                    '
'  Bonne utilisation a tous et @ ++                         '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

  ancien=Request.Form("ancien") 
  nouveau1=Request.Form("nouveau1")
  nouveau2=Request.Form("nouveau2")
  
' Si le premier champ (ancien mot de passe) a été laissé vide
if Request.Form("ancien")="" then
response.write "<p align='center'><font face='Arial' color='red'><span style='font-size:10pt;'><b>Champ ancien mot de passe vide" 

' Si le deuxieme champ (nouveau mot de passe) a été laissé vide
else if Request.Form("nouveau1")="" then
response.write "<p align='center'><font face='Arial' color='red'><span style='font-size:10pt;'><b>Champ nouveau mot de passe vide"

' Si le troisieme champ (confirmation du nouveau mot de passe) a été laissé vide
else if Request.Form("nouveau2")="" then
response.write "<p align='center'><font face='Arial' color='red'><span style='font-size:10pt;'><b>Champ confirmation de mot de passe vide"

' Si le nouveau mot de passe n'est pas confirmé d'une facon valide
else if Request.Form("nouveau1")<> Request.Form("nouveau2") then
response.write "<p align='center'><font face='Arial' color='red'><span style='font-size:10pt;'><b>Veuillez ressaisir le même nouveau mot de passe"

else 'sinon
  
   Set OBJdbConnection = Server.CreateObject("ADODB.Connection")  
   connpath = "DBQ=" & Server.MapPath("bd1.mdb")  
   OBJdbConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; " & connpath 
   SQLQuery = "SELECT password FROM administration where password='"&ancien&"'" 
   Set RS = OBJdbConnection.Execute(SQLQuery) 
 
 'si rien n'a été trouvé
  If rs.eof Then       'Le mot de passe n'éxiste pas
  response.write "<br><p align=center><font face=Verdana color=red><b>Ce mot de passe semble invalide<br><br>"
  else ' Sinon (si tout va bien) changement du mot de passe 
  
 SQLstmt = "UPDATE administration SET password='" & nouveau1 & "' WHERE password='" & ancien & "'"
 Set requete = OBJdbConnection.Execute(SQLStmt)

' generation des messages d'erreurs
If  err.number>0 then
      response.write "VBScript Errors Occured:" & "<P>"
      response.write "Error Number=" & err.number & "<P>"
      response.write "Error Descr.=" & err.description & "<P>"
      response.write "Help Context=" & err.helpcontext & "<P>" 
      response.write "Help Path=" & err.helppath & "<P>"
      response.write "Native Error=" & err.nativeerror & "<P>"
      response.write "Source=" & err.source & "<P>"
      response.write "SQLState=" & err.sqlstate & "<P>"
end if
IF  OBJdbConnection.errors.count> 0 then
      response.write "Database Errors Occured" & "<P>"
      response.write SQLstmt & "<P>"
for counter= 0 to OBJdbConnection.errors.count
      response.write "Error #" & OBJdbConnection.errors(counter).number & "<P>"
      response.write "Error desc. -> " & OBJdbConnection.errors(counter).description & "<P>"
next
requete.close
set requete=nothing
else ' Sinon (si changement effectué) un message comme bravo
      response.write "<p align='center'><font face='Arial' color='navy'><span style='font-size:10pt;'><B>Everything Went Fine. Record is updated now!</b>"
      response.write "<br>" & SQLstmt 'vous pouvez ignorez cette ligne puisque elle affiche le changement, ce qu'il est peut-être indésirable pour vous
end if
End if   

RS.close 
set RS=nothing
OBJdbConnection.close
Set OBJdbConnection = nothing 

'fin de toutes les ifs
End if
End if
End if
End if
%>
<html>
<head>
<title>Sans titre</title>
<meta name="generator" content="Namo WebEditor v5.0">
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p align="center"><font face="Verdana"><span style="font-size:10pt;"><b><a href="javascript:history.back(-1)">< Retour au formulaire</a></b></span></font></p>
</body>
</html>

A voir également

Ajouter un commentaire

Commentaires

ThunderPsycho
Messages postés
180
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
4 février 2007
-
Tout ça pour ça ???
Bon ton code est propre et commenté heureusement avec un joli détail d'erreur pour la connection on en voie pas assez je trouve :o))).....

Mais je pense que ça mérite d'être un peu plus exploité, avec un petit <SELECT> pour lister les utilisateurs par exemple (qui apparement seraient listés dans la table 'users' ?!?) et puis je sais pas la gestion de quelques options.....Je suis peut-être trop exigeant... :o)
saadzizou
Messages postés
3
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
1 novembre 2006
-
très très bonne source,Mercii bcp,tu me sauves la peau (k)
OPSIO
Messages postés
2
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
11 juillet 2007
-
Hélas, si l'on considère que plusieurs personnes peuvent avoir le même mot de passe, je vous laisse imaginer les conséquences de l'update !

Il faut donc associer le mot de passe à un accès (unique : email, pseudo, identifiant fourni par le serveur), et il n'y a plus qu'à modifier le mot de passe correspondant à l'accès et à l'ancien mot de passe. Update administration set password=nouveau where id_acces=xxx and password=ancien. Si rien n'est modifié, avec un id_acces valide, c'est que l'ancien password n'est pas le bon.

l'id_acces étant récupéré et stocké en variable de session au moment de l'authentification, puis nettoyé en fin se session. Cela permet aussi en testant cette variable de session de savoir si l'authentification a eu lieu ou pas.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.