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 :

Besoin d'aide pour créer une requête


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 90
    Points : 47
    Points
    47
    Par défaut Besoin d'aide pour créer une requête
    Bonjour,

    Voici mon problème, j'ai une page sur laquelle il est demandé de s'identifier.
    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
     
    <%
    	Select Case Request("Action")
    	Case "","Erreur"
    %>
    <%
    	If Request("Action")="Erreur" Then
    		Response.Write("<font color='red'><b>DONNÉES D'IDENTIFICATION INCONNUES !!!</b></font>")
    	End If	
    %>	
     
    	<form action="Identification.asp" method="post">
    		Identifiant
    	<br>
    		(Ex : guide.congres@copyright.fr) 
    	<br>
    	<br>
    			<input type="text" name="login" size="20"  style="border-style: solid; border-width: 1">
    	<p>
    		Code personnel
    	<br>
    		(il s'agit de votre code client CL2009/***)
    	<br>
    	<br>
    			<input type="password" name="password" size="20" style="border-style: solid; border-width: 1">
    	<p>
    			<input type="submit" value="Me Connecter" name="Action" style="border-style:solid; border-width:1; background-color: #64FEFD; border-color: #FFFFFF">    										
    	<p>
    			> Code personnel oublié
      </form>
     
        <%
    	Case "Me Connecter"
    		strRequete="SELECT * FROM Tbl_MonCompte WHERE identifiant='" & Request("login") & "' AND CodePersonnel='" & Request("password") & "'"
    		Set RsMonCompte=Server.CreateObject("ADODB.Recordset")
    		RsMonCompte.Open strRequete,ConnexAdmin
     
    		If RsMonCompte.Eof Then
    			Response.Redirect "Identification.asp?Action=Erreur&login=" & Request("login") & "&password=" & Request("password")
    		Else
    			Session("user")=Session.SessionId
    			Response.Redirect "MesDonnees.asp"
    		End If
    end Select
    %>
    après s'être connecté nous sommes redirigé vers la page MesDonnees.asp, hors sur cette page, je dois créer un requette permettant d'afficher le nom, l'adresse de livraison, de facturation, son mail..., mais je ne sais comment m'y prendre.

    Voici le début de ma requette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		Str_identifiant = Request.QueryString("identifiant")
     
    		strRequete="SELECT * FROM Tbl_MonCompte WHERE identifiant='" & Request("login") & "' AND CodePersonnel='" & Request("password") & "'"
    		Set RsMonCompte=Server.CreateObject("ADODB.Recordset")
    		RsMonCompte.Open strRequete,ConnexAdmin
     
     
     
    While Not RsMonCompte.EOF
     
    %>
    Si quelqu'un peut m'aider, car j'ai la vague impression de me noyer.

    Merci d'avance.

    Cédric

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Points : 48
    Points
    48
    Par défaut
    Bonjour !

    Il faut parcourir les enregistrements de ta requête (s'il y en a plusieurs), ou tout simplement afficher le résultat simplement si tu es certain que la requete ne renvoi qu'un seul enregistrement...

    Concretement si tu n'a qu'un seul enregistrement, tu récupères le résultat de chaque champ comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%=RsMonCompte("NomDuChamp")%>
    Dans un tableau, ou comme tu veux...

    Si tu dois parcourir plusieurs enregistrements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <%
    Do While Not RsMonCompte.EOF
    Response.Write(RsMonCompte("NomduChamp")) '(etc...)
    RsMonCompte.MoveNext 'pour passer à la suite
    Loop
    %>
    En espérant t'avoir aidé...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 90
    Points : 47
    Points
    47
    Par défaut
    Merci rossy,

    J'ai intégré ton code, mais j'ai le message suivant
    ADODB.Field error '80020009'

    BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.

    /Nouveaux site/Pages/MesDonnees.asp, line 0
    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
     
    <%
    		Str_identifiant = Request.QueryString("identifiant")
     
    		strRequete="SELECT * FROM Tbl_MonCompte WHERE identifiant='" & Request("login") & "' AND CodePersonnel='" & Request("password") & "'"
    		Set RsMonCompte=Server.CreateObject("ADODB.Recordset")
    		RsMonCompte.Open strRequete,ConnexAdmin
     
    Do While Not RsMonCompte.EOF
    Response.Write(RsMonCompte("adresse de livraison"))
    RsMonCompte.MoveNext 'pour passer à la suite
    Loop
    %>
     
     
    <p></p>
     
      <div class="story"> 
       	  <table width="100%" cellpadding="0" cellspacing="0" summary=""> 
            <tr valign="top"> 
              <td class="storyLeft">  
                <img src="" alt="" width="150" height="350">
    		  </td> 
              <td class="storyRight"> 
                <H2>Mes données personnelles</H2>
    		<p>
    			<h3>Code personnel <a href=""> > le personnaliser</a></h3>
    		<p>
    			<h3>Adresse de livraison <a href=""> > l'actualiser</a></h3>
    			<%=RsMonCompte("Adresse de livraison")%><br>
    			<h3>Adresse mail :</h3>
    			guide.congres@copyright.fr
    		<p>
    			<h3>Adresse de facturation <a href=""> > l'actualiser</a></h3>
    			<%=RsMonCompte("Adresse de facturation")%><br>
    			<h3>Adresse mail :</h3>
    			<%=RsMonCompte("mail")%>
    		  </td> 
            </tr> 
          </table>
      </div> 
     
    <%			
    	Set RsMonCompte=Nothing
    %>

  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
    il faut ajouter le test de début et de fin de fichier pour voir si la requête retourne un résultat

    if objRs.eof or objRs.bof then
    Response.Write "No result"
    else
    'construction du tableau
    end if

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Il faut parcourir les enregistrements de ta requête (s'il y en a plusieurs), ou tout simplement afficher le résultat simplement si tu es certain que la requete ne renvoi qu'un seul enregistrement...


    Si on demande de s'identifier, cela doit être de manière unique et il est nécessaire de contrôler cette unicité en amont (à la création du profil, par exemple)

    En fait, tout le boulot est déjà fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            If RsMonCompte.Eof Then
                Response.Redirect "Identification.asp?Action=Erreur&login=" & Request("login") & "&password=" & Request("password")
            Else
                Session("user")=Session.SessionId
                Response.Redirect "MesDonnees.asp"
            End If
    Simplement, mets plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session("user")=RsMonCompte("identifiant")
    strRequete="SELECT * FROM Tbl_MonCompte WHERE identifiant='" & Request("login") & "' AND CodePersonnel='" & Request("password") & "'"
    Ensuite, dans ta page mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strRequete="SELECT * FROM Tbl_MonCompte WHERE identifiant='" & Session("user") & "'"
    2 remarques :
    Response.Redirect "Identification.asp?Action=Erreur&login=" & Request("login") & "&password=" & Request("password")
    C'est à éviter au maximum, il ne faut jamais, au grand jamais (jamais, quoi) faire apparaître un mot de passe en clair (une faute de frappe sur le mot de passe, si celui-ci est la date de naissance de la petite dernière, par exemple, le collègue qui passe derrière a craqué le mot de passe sans même le vouloir )

    Par mesure de sécurité, et particulièrement dans une procédure d'identification, prendre le reflexe d'utiliser Request.form() au lieu de Request()


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 90
    Points : 47
    Points
    47
    Par défaut
    Merci Roro06,

    J'ai apporté les petites modif. et tout fonctionne.

    Voici le 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
     
    <%
    		Str_identifiant = Request.QueryString("identifiant")
     
    		strRequete="SELECT * FROM Tbl_MonCompte WHERE identifiant='" & Session("user") & "'"
    		Set RsMonCompte=Server.CreateObject("ADODB.Recordset")
    		RsMonCompte.Open strRequete,ConnexAdmin
     
     
    %>
     
     
    <p></p>
     
      <div class="story"> 
       	  <table width="100%" cellpadding="0" cellspacing="0" summary=""> 
            <tr valign="top"> 
              <td class="storyLeft">  
                <img src="" alt="" width="150" height="350">
    		  </td> 
              <td class="storyRight"> 
                <H2>Mes données personnelles</H2>
    		<p>
    			<h3>Code personnel <a href=""> > le personnaliser</a></h3>
    		<p>
    			<h3>Adresse de livraison <a href=""> > l'actualiser</a></h3>
    			<%=RsMonCompte("Adresse de livraison")%><br>
    			<h3>Adresse mail :</h3>
    			guide.congres@copyright.fr
    		<p>
    			<h3>Adresse de facturation <a href=""> > l'actualiser</a></h3>
    			<%=RsMonCompte("Adresse de facturation")%><br>
    			<h3>Adresse mail :</h3>
    			<%=RsMonCompte("mail")%>
    		  </td> 
            </tr> 
          </table>
      </div> 
     
    <%
    RsMonCompte.MoveNext
    Set RsMonCompte=Nothing
     
    %>
    Pour le mot de passe en clair... je ne comprend pas car lors de la saisie ce sont des points noirs et non le mot de passe en clair.
    Si tu peux eventuellement m'expliquer ce que tu entends par mot de passe en clair,

    Merci pour ton aide.

    A bientôt,

    Cédric

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect "Identification.asp?Action=Erreur&login=" & Request("login") & "&password=" & Request("password")
    L'internaute verra dans sa barre d'adresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/Identification=Erreur&login=monlogin&password=monpasswordquejevoudraisbiencacher
    Il apparaît en clair.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

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

Discussions similaires

  1. Besoin d'aide pour créer une requête
    Par fabien59420 dans le forum Requêtes et SQL.
    Réponses: 44
    Dernier message: 26/05/2008, 11h08
  2. Besoin d'aide pour créer une BD
    Par desfrags dans le forum Débuter
    Réponses: 6
    Dernier message: 30/01/2008, 22h20
  3. [MySQL] besoin d'aide pour exécuter une requête et en récupérer le résultat
    Par fast462 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 28/05/2007, 10h30
  4. besoin d 'aide pour formuler une requête
    Par cdu dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/04/2006, 19h38
  5. besoin d'aide pour optimiser une requête
    Par jisse dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/01/2006, 09h41

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