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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    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 chevronné 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
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    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 chevronné 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
    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 chevronné 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
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    Bojour ! Encore une petite question, dans mon code j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if objRs.eof or objRs.bof then
    		response.write "Désolé, votre mot de passe n'a pas été enregistré correctement.<br><br>Veuillez réessayer."
    	else
    		response.write "Votre nouveau mot de passe à bien été enregistré.><br>"
    	end if
    J'aurais aimé savoir comment mettre en forme (Bordure, centré, etc) mon texte du response.write.
    Si je le met entre la balise <p> et que je met un id, ca ne fonctionne pas, ma page ne s'affiche même pas.
      0  0

  8. #8
    vva
    vva est déconnecté
    Membre chevronné 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
    Par défaut
    avec une balise div et uen feuille de style CCS pour les propriétés de mise en forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.write "<div id=''>Désolé......</div>"
      0  0

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    Ca ne fonctionne toujours pas..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.write "<div id="ok"> Votre nouveau mot de passe à bien été enregistré.</div>"
    Est-ce que je peux enlevée les response.write ? Fermer les balise asp et les réouvrir juste après mon texte ?
      0  0

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Par défaut
    Salut,

    Tu as créé un style ok qq part ?
    Sinon, il vaut mieux utiliser l'attribut class pour définir un style que l'attribut id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.write "<div class="ok"> Votre nouveau mot de passe à bien été enregistré.</div>"
    Puis dans ta feuille de style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .ok {
    		border:#FFF solid 3px;
    }
    Ici, le style t'encadre en blanc ta div.
      0  0

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    OUi oui, jai créer le style ok. Ca ne marche pas non plus avec l'attribut class.

    J'ai fait comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if objRs.eof or objRs.bof then
    		%><div class="dsl">Désolé, votre mot de passe n'a pas été enregistré correctement.<br><br>Veuillez réessayer.</div><%
    	else
    		%><div class="ok">Votre nouveau mot de passe à bien été enregistré.<br></div><%
    	end if
    C'est le seul moyen que j'ai trouvé pour que ca fonctionne..
      0  0

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    Bonjour ! J'ai denouveau un problème avec mon code pour mon nouveau mot de passe....

    Voici mon code (celui que tu avais modifié vva)

    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
    <% 
    Response.AddHeader "Pragma", "no-cache"
    Response.AddHeader "cache-control", "no-store"
     
    if Session("access") = "" then
    	'l'utilisateur n a pas ouvert de compte donc il est redirigé vers la page d inscription
    	response.redirect ("Inscription.asp")
    else
    	'Connexion de recorset et de commande 
    	Set dbConnection = Server.CreateObject("ADODB.Connection")
    	dbConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("../../BDD/Inscription.mdb")&"; Persist Security Info=False"
    	set objRs = Server.CreateObject("ADODB.Recordset")
    	set objCmd = Server.CreateObject("ADODB.Command")
    	set objCmd.ActiveConnection = dbConnection
    	objCmd.CommandText = "SELECT * FROM Donnee WHERE Pass = '" & Request.Form("ancien") & "'"
    	set objRs = objCmd.Execute
     
    	if objRs.eof or objRs.bof then
    		%><div id="dsl">Désolé, votre mot de passe n'a pas été enregistré correctement.</div><%
    	else
    		%>
    <div id="ok">Votre nouveau mot de passe a bien été enregistré.<br>
    </div><%
    	end if
     
    	objCmd.CommandText = "SELECT * FROM Donnee WHERE Email='" & Session("access") & "'"
    	set objRs = objCmd.Execute
     
    	if not objRs.eof or objRsbof then
    		objCmd.CommandText = "UPDATE Donnee SET PASS='"&Request.Form("nouveau2")&"' WHERE Email='"& Session("access")&"'"
    		set objRs = objCmd.Execute
    	end if
     
    	set objCmd = nothing
    	set objRs=nothing
    	dbConnection.close
    	set dbConnection = nothing
    end if
    %>
    Le code fonctionne bien, sauf une petite erreur. Lorsque je rentre mon ancien de passe, et que je le rentre faux, il enregistre quand même le nouveau. Comment faire pour qu'il ne le fasse pas ? Dois-je insérer du javascript dans ma page de formulaire ?
    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 != document.getElementById("nouveau2").value){
    		alert ('Veuillez retapez le même mot de passe');
    		return false;
    	}
     
    return true;
    } 
    </SCRIPT>
    Ou dois-je modifié dans mon code asp ? Merci d'avance
      0  0

  13. #13
    vva
    vva est déconnecté
    Membre chevronné 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
    Par défaut
    c'est normal dans ton test tu vérifies l'adresse mail et pas l'ancien mot de passe, il faut tester les deux en même temps pour être sur qu'il n'y ai pas d'erreur
      0  0

  14. #14
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Je crois qu'on a largement dérivé du sujet initial. Merci d'ouvrir un autre fil.
    "Winter is coming" (ma nouvelle page d'accueil)
      0  0

Discussion fermée
Cette discussion est résolue.

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