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

ASP Discussion :

Permettre aux utilisateurs de changer de mot de passe


Sujet :

ASP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut Permettre aux utilisateurs de changer de mot de passe
    Bonjour ! Et bon courage pour cette nouvelle semaine qui commance

    J'aimerai rajouté a mon site, la possibilité aux utilisateurs de changer leur mot de passe. Pour cela, je commence d'habord à mettre un contrôle de formulaire (Si les champs ne sont pas remplis il ne peux pas allé plus loin) Je n'arrive pas a faire que, si il ne remplis pas les deux fois le même nouveau mot de passe, il ne puisse pas rentré. Voici mon code :
    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
     
    <SCRIPT LANGUAGE='JavaScript'>
    function verification(){
        if(document.getElementById('ancien').value == ""){
            alert ('Merci de saisir votre Ancien mot de passe');
            return false;
        }
     
    	if(document.getElementById('nouveau1').value == ""){
            alert ('Merci de saisir votre nouveau mot de passe');
            return false;
        }
     
    	if(document.getElementById('nouveau2').value == ""){
            alert ('Merci de retapez votre mot de passe');
            return false;
        }
     
    	if(document.getElementById('nouveau1').value <> nouveau2){
    		alert ('Veuillez retapez le même mot de passe');
    		return false;
        }
    return true;
    } 
    </SCRIPT>
    J'ai regardé sur plusieur site internet pour l'inégalité des champs nouveau1 et nouveau2. Il y'a plusieur signe : <> ou !=
    Le 1er ne fait pas le contrôle et me laisse rentrer même si les deux champs sont différents, et le 2ème ne me laisse pas rentrer, même si les deux champs sont identiquene

    Je ne comprend pas mon erreur, pouvez-vous m'aider ? Merci.
      0  0

  2. #2
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    bonjour,

    tu es sur un forum ASP et non JS alors si tu veux une aide efficace pose cette question sur l'autre forum

    sinon une première remarque
    d'où vient la valeur nouveau 2 de ton dernier test ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	if(document.getElementById('nouveau1').value <> nouveau2){
    		alert ('Veuillez retapez le même mot de passe');
    		return false;
        }
    peut être comme ceci serait mieux ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(document.getElementById('nouveau1').value <> document.getElementById('nouveau1').value )
    {
    alert ('Veuillez retapez le même mot de passe');
    return false;
    }
      0  0

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    D'accord je vai poster ma question sous l'autre forum dsl !

    Et bien j'ai un formulaire, avec :
    ancien mot de passe (ancien)
    Nouveau mot de passe (nouveau1)
    Veuillez retapez votre nouveau mot de passe (nouveau2)

    (Ta solution ne fonctionne pas )
      0  0

  4. #4
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    j'ai juste corrigé la valeur de ton code2 si tu avais fais un alert de cette valeur tu aurais eu une erreur ou vide car la valeur ne correspond ni à un objet ni à une variable.

    maintenant il vaut mieux mettre ton test sur l'évènement onsubmit de la balise form pour pouvoir bloquer l'action du formulaire en cas d'erreur de saisie si évidemment tu n'as pas déjà fait comme cela, je te livre un exemple perso

    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="NewsForm" method="POST" action="NewsCode.asp" enctype="multipart/form-data" onsubmit="return submitForm();">
     
    <input type='submit' name='action' value='Enregistrer' onmouseover="ControlZone(document.forms.NewsForm,'F')">
     
     
    function ControlZone(form,lg)
    {
    if (form.slt_TypeNews.value=="0")
    {
    	makeMsgBox(0,lg,48,0,256,4096,'Type de news');
    	form.slt_TypeNews.focus();
    	return false;
    }
    }
    </form>
      0  0

  5. #5
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    excuse je viens de voir une erreur dans ma première réponse si tu as fait copié collé sans corrigé normal que cela ne fonctionne pas, il faut changer le nom du champ dans le test j'ai laissé deux fois 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    if(document.getElementById('nouveau1').value <> document.getElementById('nouveau2').value )
    {
    alert ('Veuillez retapez le même mot de passe');
    return false;
    }
      0  0

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    Voila, j'ai trouvé mon erreur, effectivement je comparais enfaite 2fois le même champs !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(document.getElementById("nouveau1").value != document.getElementById("nouveau2").value){
    		alert ('Veuillez retapez le même mot de passe');
    		return false;
    Maintenant je dois enregistrer le nouveau mot de passe dans ma base de donnée. Je fait donc, en dessous de mon code pour vérifier si l'ancien mot de passe est bien le bon, ma nouvelle connexion a ma base de donnée (access) Mais voici l'erreur :
    Microsoft VBScript runtime erreur '800a01a8'

    Object required

    /test/changement.asp, ligne 62
    Voici mon code :
    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
     
    <!-- Rcuprer les variables de mon formulaire -->
    <% 
    	ancien = Request.Form("ancien") 
    	nouveau1 = Request.Form("nouveau1")
    	nouveau2 = Request.Form("nouveau2")
    %>
     
     
    <!-- Connextion avec ma base de donnée pour comparer l'ancien mot de passe--!>
    <%	
    	Set cnn = Server.CreateObject("ADODB.Connection")
    	ConnString = "DBQ=" & Server.MapPath("/test/Inscription.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25"
    	cnn.Open ConnString
    	SQL = "SELECT * FROM Donnee where Pass = '" & ancien & "' "
    	Set RS = Cnn.Execute(SQL)
    %>
     
     
    <%if RS.eof then%>
    Raté !
     
    <%else%>
    Bien joué !
     
    <%end if%>
     
     
    <!-- Ouverture de ma BDD et enregistrement des variables-->
    <%
    Set cnn = Server.CreateObject("ADODB.RecordSet")
    	ConnString = "DBQ=" & Server.MapPath("/test/Inscription.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25"
    	'Ouverture de la table dans la base
    	cnn.Open "Donnee", Connstring, 2,3,2
    	'Création d'un 'nouvel' enregistrement
    	cnn.AddNew()
    	'Sauvegarde des valeurs 
    	cnn("Pass") = replace(nouveau1, "<", "&lt;")
    	'Enregistrement dans la base de donnée
    	cnn.UpDate
    	'Fermeture et destruction du record set
    	cnn.close
    	Set cnn=Nothing
    %>
     
     
    <%
    	RS.MoveNext 
     
    	RS.close
    	Cnn.close
    	set RS = nothing
    	set Conn = nothing
    %>
    Je ne comprend pas l'erreur.. J'ai le droit d'enregistrer le nouveau mot de passe par dessus l'ancien dans ma base de donnée ?
      0  0

  7. #7
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    A quoi correspond la ligne 62 ?
      0  0

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    Elle correspond a :
      0  0

  9. #9
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    normal tu as deux fois cette commande
      0  0

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    Aie aie aie j'ai honte.. j'ai même pas vu sa..

    C'est claire que sa fonctionne mieux, mais je n'ai toujours pas ce que je voudrais.

    il enregistre bien le nouveau mot de passe dans ma BDD, mais ne remplace pas l'ancien, il crée simplement une nouvelle ligne Comment faire pour que ca remplace l'ancien mot de passe (et de l'utilisateur qui est loger) ?
    Est-dans la connexion a ma base que je dois changer quelque chose ?
      0  0

  11. #11
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    il fait ce que tu lui demande c'est à dire un ajout add.new pour mise à jour il faut faire une requête sql d'UPDATE
      0  0

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    D'accord, merci beaucoup pour l'aide !!
    Je vai regarder tout sa
      0  0

  13. #13
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    un exemple pour la route

    objCmd.CommandText = "UPDATE nomtable SET nomchamp1='valeur string', SECTIONSNUM=valeurnumeric WHERE champs3 = valeurrecherchée
    set objRs = objCmd.Execute
      0  0

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    D'accord, je vois un peu mieux, mais cela marche avec n'importe quel base de donnée ?
    Je ne comprend pas le : objCmd.CommandText
    C'est pour ouvrir ta connexion ?
      0  0

  15. #15
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    l'exemple que je t'ai donné fonctionne avec toute base supportant le sql donc access est ok

    oui c'est une façon de programmer, voici l'exemple complet pou raccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Set dbConnection = Server.CreateObject("ADODB.Connection")
    dbConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("GestDoc.mdb")&"; Persist Security Info=False"
    set objRs = Server.CreateObject("ADODB.Recordset")
    set objCmd = Server.CreateObject("ADODB.Command")
    set objCmd.ActiveConnection = dbConnection
    objCmd.CommandText = ""
    set objRs = objCmd.Execute
    set objCmd = nothing
    set objRs=nothing
    dbConnection.close
    set dbConnection = nothing
    voilà en gros ce qu'il faut faire, remplaces simplement mes variables par les tiennes. essayes de mettre ta BD au même niveau que les pages de codes c'est plus simple pour les accès
      0  0

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    Alors hier j'ai essayé de travailler cette connexion, mais sans succes.. J'ai essayer autre chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%
    Set RS = server.createObject("ADODB.RecordSet")
    	ConnString = "DBQ=" & Server.MapPath("/test/Inscription.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25"
    	RS.Open "Donnee", ConnString, 2, 3, 2
    	RS.Find "Pass = " & Pass
    	RS("Pass") = ancien1
    	RS.UpDate()
    	RS.Close()
    	Set RS = Nothing	
    %>
    Mais il m'indique une erreur ici : RS.Find "Pass = " & Pass

    Par contre j'ai penser a autre chose.. Je permet a l'utilisateur de changer de mot de passe, seulement lorsqu'il est loger sous sa session. Ne devrais-je pas récupéré son id en quelque part, pour indiquer a quel ligne la modification doit elle être faite ?
    Je suis un peu perdue la
      0  0

  17. #17
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    normalement ta base devrait avoir un code identifiant unique qui correspond normalement au login de ton utilisateur et s'il ne peut changer son mot de passe qu'une fois connecté c'est du caviar car à ce moment tu fais un update de motdepasse where login = variable de session("login").

    quand ton visiteur se signe sur ton site à ce moment là tu crées une variable de session avec son login pi profites en pour prendre aussi le mot de passe pour vérifier qu'il ne remette pas le même si tu as mis en place une politique d'historique de mot de passe
      0  0

  18. #18
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Salut

    Pour compléter un peu ce que dit vva :

    plutot que
    RS.Open "Donnee", ConnString, 2, 3, 2
    fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RS.Open "select * from Donnee where id='" & session("id") & "'", ConnString, 2, 3, 2
    (a adapter, bien sur) de manière à n'ouvrir que l'enregistrement qui t'interesse (la ligne qui concerne l'abonné).
    Ensuite, simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if not rs.eof then
    rs("pass")= nouveau1
    rs.update
    end if
    remarque :

    RS.Find "Pass = " & Pass
    Marcherait mieux comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RS.Find "Pass = '" & Pass & "'"
      0  0

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Points : 34
    Points
    34
    Par défaut
    Comment je fait avec les variable de sessions ?
    J'ai quelque chose, mais pas sur que sa me sert.. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <% 
    	Response.AddHeader "Pragma", "no-cache"
    	Response.AddHeader "cache-control", "no-store"
     
    	if Session("access") = "" then
    		response.redirect ("Inscription.asp")
    	end if
     
    %>
    En tout cas merci pour vos conseils, je vais allé essayer d'avancer !
      0  0

  20. #20
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    je peux imaginer que ton utilisateur doit s'authentifier sur une page d'accueil avec un champ login et un champ password puis dasn l'action du formulaire de saisie tu diriges ton utilisateurs sur le site. c'est à ce moment là en arrivant sur la page que tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    variable.session("nomvar") = request.form("nomduchamp")
    par la suite tu utilises la variable de session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if session("nomvar") = 0 then
    ....
    end if
      0  0

Discussion fermée
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2018, 20h48
  2. Squid: comment l'utilisateur peut changer son mot de passe?
    Par supInfo22 dans le forum Sécurité
    Réponses: 0
    Dernier message: 16/09/2011, 18h00
  3. Permettre aux utilisateurs de changer de mot de passe
    Par LaJess dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/01/2009, 09h18
  4. Réponses: 6
    Dernier message: 25/04/2007, 20h11
  5. changer le mot de passe d'un utilisateur
    Par Rdjedidene dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 13h56

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