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 :

authentification (puis redirection)


Sujet :

ASP

  1. #1
    Membre du Club Avatar de vever88
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 114
    Points : 68
    Points
    68
    Par défaut authentification (puis redirection)
    Bonjour,

    je cherche à identifier un utilisateur par un login/password (jusque là normal )
    Ensuite si son login/password est dans ma base, je le dirige vers la page d'accueil sinon je l'invite à re-saisir ses identifiants.
    Le problème (et oui il y en a un ) c'est que ma page garde en mémoire les saisies précedantes.
    Explication: Si la fois précedante l'utilisateur à été identifié (puis redirigé vers la page d'accueil), ma page d'identification ne se charge pas et la page d'acceuil se charge directement à sa place.

    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
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
     
    <HTML>
    <HEAD>
    <TITLE>identification</TITLE>
    </HEAD>
    <BODY>
     
       <CENTER><H1>Identification</H1> </CENTER>
    	<IMG SRC="bottom.gif" Width=1000>
     
              <%
     
    		'Création de l'objet connection
    		dim objConnection
    		Set objConnection = Server.CreateObject("ADODB.Connection")
     
    		'Localisation de la base de données access
    		connpath = "DBQ=" & Server.MapPath("dbtest.mdb")
     
    		'Ouverture de la base de données access
    		objConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; " & connpath
     
    		'Requête
    		SQLQuery = "SELECT * FROM login"
     
    		'Exploitation des résultats dans un recordset
    		dim RS
    		set RS = Server.CreateObject("ADODB.Recordset")
     
    		RS.open SQLQuery, objConnection
     
    		'Vérification  des résultats dans le recordset
    		dim rep
    		rep=false
    		Do While Not RS.eof
    			If Request.Form("login")=RS("login") Then
    			rep=true
    		End If
    			Response.Write("<BR>")
    			RS.MoveNext
    		Loop
    			If rep=true Then
    				response.redirect "accueil.asp"
    			Else
    				response.redirect "loginerror.asp"
    			End If
     
    		'Fermeture du recordset
    		RS.close
    		set RS = nothing
     
    		'Fermeture de la connexion à la base de données
    		objConnection.close
    		set objConnection = nothing
    		%>
    			<center><form method="POST" action="identification.asp" name="fichier">
     
    <table bgcolor="#FFF4F4" bordercolor="#800000" border="1" cellspacing="0" cellpadding="4">
      <tr>
        <td><font size="2" face="Arial" color="#008000">Login:</font></td>
        <td><font size="2" face="Arial" color="#008000"><input type="text" name="login"  value="entreprise" size="20"></font></td>
      </tr>
      <tr>
    	   <td><font size="2" face="Arial" color="#008000">Password:</td>
    	   <td><font size="2" face="Arial" color="#008000"><input type="password" name="password" value="password" size="20"></font></td>
    	</tr>
    </table>
    <input type="submit" value="valider" name="action">
     
    </form>
    </center>
     
    </BODY>
    </HTML>
    Sauriez-vous comment je pourrais régler le problème ?

    à vous

    ++

  2. #2
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Tu peux commencer par t'assurer que la page n'est pas mise en cache :
    Ajoute cela au début de ta page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Expires = -1

  3. #3
    Membre du Club Avatar de vever88
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 114
    Points : 68
    Points
    68
    Par défaut
    Merci Lek ,

    Je te remercie de ton aide, mais le problème persiste toujours,
    quelqu'un aurait-il une idée

  4. #4
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    2 choses:
    1 - Elle est où la verification du mot de passe?
    2 - Plutôt que faire une boucle pour vérifier si le login existe tu devrais modifier ta requete SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLQuery = "SELECT * FROM LOGIN WHERE login_name = '" & Request.Form("login") & "';"
    Ensuite tu teste si ton recordset contient un enregistrement (normalement y'en a un seul).

    A+

  5. #5
    Membre du Club Avatar de vever88
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 114
    Points : 68
    Points
    68
    Par défaut
    Bonjour et merci Immo,

    En fait je vérifiais bien le mot de passe en faisant cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                    Do While Not RS.eof
    			If Request.Form("login")=RS("login") AND Request.Form("password")=RS("password") Then
    				rep=true
    			End If
    			Response.Write("<BR>")
    			RS.MoveNext
    		Loop
    Par contre en optant pour ta proposition immo je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLQuery ="SELECT * FROM identification WHERE login = '" & Request.Form("login") & "' AND password= '" &Request.Form("password")& "';"
    Mais pour vérifier si mon recordSet contient un enregistrement cela ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If RS("entreprise")<>"" AND RS("password")<>"" Then
    				rep=true
    			End If
    Comment puis-je faire ?

    Merci

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Et en modifiant ton test comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Do While Not RS.eof
    	If ucase(Request.Form("login"))=ucase(RS("login")) AND ucase(Request.Form("password"))=ucase(RS("password")) Then
    		rep=true
                              exit do
    	End If
    	Response.Write("<BR>")
    	RS.MoveNext
    Loop

  7. #7
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    Le UCASE() est interessant sauf si l'identification est sensible à la casse.
    En utilisant cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLQuery ="SELECT COUNT(*) FROM identification WHERE login = '" & Request.Form("login") & "' AND password= '" &Request.Form("password")& "';"
    Tu ne devrais avoir qu'un seul enregistrement ou rien du tout. C'est cela qu'il faut verifier.

  8. #8
    Membre du Club Avatar de vever88
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 114
    Points : 68
    Points
    68
    Par défaut
    Merci vraiment à vous pour votre aide, les deux solutions fonctionnent, toute fois celle d'Immo nécessite moins de ressource.

    Malheureusement cela ne règle pas mon problème initial

    Sauriez-vous d'où vient ce problème

  9. #9
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    tu dois utiliser un cookie ou une variable de session et verifier à chaque fois que tu vas sur ton site que cette variable est valide.

  10. #10
    Membre du Club Avatar de vever88
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 114
    Points : 68
    Points
    68
    Par défaut
    Je mets quoi exactement dans mon cookie

  11. #11
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    de la farine, du chocolat, des oeufs, du sucre, TRUE, FALSE, "est connecté", "OK", 1... Ce que tu veux qui te permette de savoir que l'utilisateur est connecté.

  12. #12
    Membre du Club Avatar de vever88
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 114
    Points : 68
    Points
    68
    Par défaut
    elle est bien méritée celle-là,
    Facile, mais marrante

    Je test et je repost

    ++

  13. #13
    Membre du Club Avatar de vever88
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 114
    Points : 68
    Points
    68
    Par défaut
    à tous de m'avoir aider,

    en ce qui concerne mon problème, la création d'une variable session est la bonne solution.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Mire d'authentification puis redirection vers l'index
    Par Spidermeu dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 09/08/2012, 11h34
  2. [AJAX] Authentification ajax puis redirection php
    Par skandaboy dans le forum AJAX
    Réponses: 6
    Dernier message: 15/03/2011, 16h34
  3. Authentification et redirection
    Par KeKeMaN dans le forum MVC
    Réponses: 4
    Dernier message: 02/05/2007, 19h19
  4. [Php/Html] Information puis Redirection
    Par Myogtha dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 17h57
  5. Flash animation puis redirection
    Par cubepiege dans le forum Intégration
    Réponses: 3
    Dernier message: 12/01/2007, 16h23

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