Verifier les authentifications avec windev

Bonjour à tous!

je suis en train de devellopper une application avec windev 15, je parviens à enregistrer des utilisateurs dans ma base de donnée mysql à partir d'un formulaire. Maintenant je voudrais verifier le login et le password d'un utilisateur qui essaye de se connecter à l'application. Comment vérifier qu'ils sont dans ma BD MYSQUL en langage windev ?

Merçi d'avance.

1 réponse

  1. Bonjour, c'est assez classique comme question.
    Au lancement de ton application, tu te connectes à ta base de données SQL, par exemple, dans l'événement Déclarations globales de ton écran ou Initialisation de ton projet.
    Dans le code de ton bouton de connexion à ton application, tu interroges ta table des utilisateurs où tu mets dans ta clause where : login=login saisi.
    2 cas sont à considérer:
    - si ta requête ressort aucune ligne, c'est que le login saisi est inconnu (à voir si tu veux considérer ou non la casse)
    - si ta requête ressort une ligne, tu compares ensuite le mot de passe récupéré et le mot de passe saisi dans le formulaire, s'ils sont identiques, tu passes à l'écran suivant.
    0
    1. Bonjour, et merci pour la reponse je dois avouer que tu décrit exactement ce que je veus mais compte tenu du fait que je debute encore avec windev sa ne m'aide pas beaucoup. si tu pouvais avoir un exemple de code oû tu là fait sa va beaucoup m'aider.
      Avec les requêtes SQL j'utilise SQLExec pour executer ma requête.
      0
    2. @jkubuntuj'utilise également des SQLExec pour exécuter mes requêtes SQL, je ne sais pas me servir des fonctions commençant par h.
      Connexion à ta BDD (à tester car je me connecte via SQL Server)
      l_connexion est un entier=SQLConnecte("nom de ton instance SQL", "","","nom de ta BDD où tu veux te connecter","MySQL")
      si l_connexion=0 alors
      erreur("Erreur de connexion SQL")
      finprogramme
      fin


      Pour exécuter une requête SQL:
      l_idReq est une chaine="nom de ta requete"
      l_req est une chaine="SELECT ..."
      SI PAS SQLExec(l_req,l_idReq) Alors
      SQLInfogene(l_idreq)
      erreur(SQL.MesErreur")
      RETOUR
      SINON
      SQLPremier(l_idreq)
      SI PAS SQL.EnDehors alors //ou TANTQUE si tu veux faire une boucle
      //récupération d'une donnée dans la 1ere colonne en faisant SQLCol(l_idreq,1)
      //si tu fais une boucle, penser à faire SQLSuivant(l_idreq)
      sinon
      erreur("Le requête ne renvoie rien")
      fin
      SQLFerme(l_idreq) //penser à fermer une requête, très important
      0