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 :

Problème récupération de valeurs récupérées dans BDD


Sujet :

ASP

  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut Problème récupération de valeurs récupérées dans BDD
    Bonjour,


    Voila j'ai un petit soucis avec mon code d'identification.

    La page de départ est une page d'identification banale : on entre son identifiant et son pass.
    Ensuite, on arrive sur cette page, on extrait le login + pass
    on effectue une requete pour savoir si l'user existe dans la BDD et après on vérifie son mot de passe .

    Seulement j'ai un problème avec la méthode RS.fields("champ")
    En effet, j'ai beau l'avoir vue sur plusieurs sites et tuto, pour moi ca semble pas marcher :/

    voici le message d'erreur :

    ADODB.Recordset error '800a0bcd'

    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

    /traiterLogin.asp, line 47
    La ligne 47 étant celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if rs.fields("uti_nom") = nothing then
    Le code complet de la page :

    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
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <style type="text/css">
      <!--
      .Style1 {color: #FFFFFF}
      .Style2 {font-size: 12px}
      .Style3 {font-size: 18px}
      .Style4 {font-size: 12px; font-family: Arial, Helvetica, sans-serif; }
      -->
      </style>
      </head>
      <body>
      <a href="ajout.asp">Ajouter</a>
     
    <%
     
    login = Request.Form("login")
    pass = Request.Form("passwd")
     
    response.write(login)
    response.write(pass)
     
    connectStr="driver={SQL Server};server=ip;uid=user; pwd=pass; database=bdd"
     
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.ActiveConnection= connectStr
    rs.Source="select uti_nom,uti_pass from ges_utilisateur where uti_nom = '" &login& "';"
     
    rs.CursorType = 3 
    rs.CursorLocation = 2 
    rs.LockType = 3
    rs.Open()
     
    if rs.fields("uti_nom") = nothing then 
    	response.write("Pas d'utilisateurs de ce nom")
    else
     
    	if rs.fields("uti_pass") = pass then 
    		response.write "identification réussie"
    	else response.write "Mauvais mot de passe"
    	end if
     
    end if
     
     
    %>
     
    </body>
    </html>


    Merci d'avance pour votre aide, je pédale depuis un ptit moment dans le vide la :/

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

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

    if rs.fields("uti_nom") = nothing
    J'avais encore jamais vu ça. Remplace par
    et évidemment
    rs.Source="select uti_nom,uti_pass from ges_utilisateur where uti_nom = '" &login& "';"
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.Source="select uti_nom,uti_pass from ges_utilisateur where uti_nom = '" &login& "' and uti_pass = '" & pass & "'"
    Ta sécurité n'en sera que renforcée. Pas la peine d'indiquer à un éventuel plaisantin qui s'amuserait à fouiller ton site :

    "c'est bon, tu as déjà un login. trouve le mot de passe, maintenant"


    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.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Effectivement ca marche maintenant ^^

    Merci pour ton aide

    En ce qui concerne la sécurité, je débute vraiment dans l'ASP et cette page avait d'abord pour but de m'apprendre les bases avant de passer à des choses plus avancées xD

    Mais merci pour les conseils supplémentaires

  4. #4
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Autre question:

    Voila, si la personne ne peut s'identifier, je veux qu'elle puisse se créer un compte

    Je demande donc son nom, prénom et mot de passe.

    Quand la personne envoie le tout, il y a d'abord une vérification des champs si tout a été placé qui ne marche pas. J'ai fait des test sur les 3 Request.Form avec la fonction isnull()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      if not isnull(Request.Form("nom")) then
    		if not isnull(Request.Form("password")) then
    			if not isnull(Request.Form("prenom")) then
    cependant, peu importe ce que je met ou pas, il continue sa route dans le programme.

    Ceci est le premier problème de mon script.

    Le second problème vient de mes requêtes.

    Pour savoir si le nom existe déjà dans la base, je fais un simple

    select uti_nom from ges_utilisateur where uti_nom='" & login & "';

    Après cette requête, que j'ai mis un nom d'utilisateur que j'ai deja rentré ou non, lorsque je fais un RecordSet.Fields.Count, il me trouve toujours la valeur 1

    De même quand je fais un : Select * from ges_utilisateur;
    le RecordSet.Fields.Count est égal à 1.
    De plus, avec cette requête, je cherche à afficher le nom du seul utilisateur qui semble être dans la table, mais quand je fais un RecordSet.Fields("uti_nom"), il me met une erreur :

    ADODB.Field error '80020009'

    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

    /traiterAjout.asp, line 0
    Je pense avoir décrit au mieux mon problème.
    Quand j'aurais réglé ca, je pense que j'aurais fait le tour de tout ce qui me posait problème xD
    Donc merci d'avance =)

  5. #5
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Bon j'ai résolu mon problème avec la requête et j'ai honte de la cause du problème xD

    Enfin bon

    Il me reste le problème de savoir si un champ récupéré dans un formulaire est vide ou pas. Avis aux amateurs vu que le isnull() semble pas marcher comme il faudrait :/

    Merci bien

  6. #6
    Membre Expert
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Par défaut
    Citation Envoyé par Gordon Freeman Voir le message
    Bon j'ai résolu mon problème avec la requête et j'ai honte de la cause du problème xD

    Enfin bon

    Il me reste le problème de savoir si un champ récupéré dans un formulaire est vide ou pas. Avis aux amateurs vu que le isnull() semble pas marcher comme il faudrait :/

    Merci bien
    Salut,

    ASP 3.0 est de plus en plus délaissé mais malgré ça, les tutos sur le net c'est pas ce qui manque pourtant avec un peu de recherche tu aurais pu trouver ce genre de chose

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if request.*("nom") = "" then
      response.write "Vous n'avez rien rentré dans le champ nom"
    end if

    où * est à remplacer par querystring si method = get sinon form si method = post

  7. #7
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Merci pour ton aide ^^

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/10/2014, 16h05
  2. [AC-2010] Problème de valeur récupérée dans une variable
    Par sylhel34 dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/02/2014, 15h12
  3. récupération valeur checkbox dans BDD
    Par polux31 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 30/03/2011, 10h15
  4. Réponses: 12
    Dernier message: 20/02/2011, 18h17
  5. Réponses: 4
    Dernier message: 01/12/2005, 23h13

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