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

Windev Mobile Discussion :

Vérification Login sur une base de données distante Mysql [WM20]


Sujet :

Windev Mobile

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Par défaut Vérification Login sur une base de données distante Mysql
    Bonjour tout le monde,
    Dans mon application android,je souhaite que l'utilisateur s'identifie avec un Nom d'utilisateur et un mot de passe. Le nom d'utilisateur et le mot de passe sont sur une base de données distante mysql. J'ai pu établir la connexion entre l'application et la base via php4wm. Maintenant j'ai une requête sql qui me permet de vérifier si les données entrées dans l'application correspondent à ce qui est sur la base de données? Pour cela j'utilise le code suivant
    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
    sCodeSql est une chaîne=[
    	SELECT 
             *
    	FROM 
            jos_users
    	WHERE 
    	jos_users.username = '%1'
            AND
            jos_users.password = '%2' 
     
    ]     
    sV_requete est une chaîne=ChaîneConstruit(sCodeSql,SAI_Nom_Utilisateur,SAI_Mot_de_passe)
    SI monAccess:mySQLExec(sV_requete,1) ALORS
    	monAccess:mySQLPremier(1)
     
    	SI monAccess:mySQLCol(1,1)>0 ALORS
    		Info(monAccess:mySQLCol(1,1))
     
    		OuvreFenêtreMobile(FEN_Accueil)
    	SINON
    		Erreur("Nom d'utilisateur ou mot de passe incorrect !!")
    	FIN
    FIN
    Mais ma requête me ramène toujours 0
    Je suis ouvert à vos suggestions et guides. Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 57
    Par défaut
    bonjour,

    deja mettez des points d'arret ou affichez des infos :
    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
     
    sV_requete est une chaîne=ChaîneConstruit(sCodeSql,SAI_Nom_Utilisateur,SAI_Mot_de_passe)
    trace(sV_requete)
    SI monAccess:mySQLExec(sV_requete,1) ALORS
    	monAccess:mySQLPremier(1)
            trace( monAccess:mySQLCol(1,1))
            trace( monAccess:mySQLLitCol(1,1))
     
    	SI monAccess:mySQLCol(1,1)>0 ALORS
    		Info(monAccess:mySQLCol(1,1))
     
    		OuvreFenêtreMobile(FEN_Accueil)
    	SINON
    		Erreur("Nom d'utilisateur ou mot de passe incorrect !!")
    	FIN
    FIN
    ensuite regarder ce que donnerais la requete en la mettant dasn la partie test=OUI du script pour voir ce qu'elle renvoie directement depuis le navigateur
    ensuite comme vous faites un select * il faut etre sur que la premiere colonne renvoyer est bien celle que vous voulez
    enfin mysqlCol ou mySQLLitCol renvoie un buffer et une chaine = 0 si tous les caracvteres ne sont pas des chiffres donc voir exactement ce que renvoie la premiere colonne de votre requete

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Par défaut
    Bonsoir tout le monde,
    Merci pour votre réponse. En effet après les tests que vous m'avez conseillez,je me suis rendu compte que lorsque je fais le test sur un seul paramètre(Nom d'utilisateur) et en changeant le select(id seulement au lieu de *) la valeur exacte de l'Id de l'utilisateur s'affiche. Jusque là tout va bien. Mais une fois que je fais le test sur le mot de passe uniquement comme seul paramètre(même avec le bon mot de passe), les fonctions trace ramènent 0.
    NB: Les mots de passe sont constitués de lettres et de chiffres.
    J'ai l'impression que le problème vient de là mais je en sais pas comment remédier à cela. Merci pour vos éventuelles solutions

    Une autre inquiétude concerne la clé de cryptage(pourtant la clé contenue dans le script est pareille à celle qui est dans l'application)

  4. #4
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 57
    Par défaut
    bonjour,

    votre mot de passe est hashé dans la base
    si ca fonctionne avec la requete juste avec l'utilisateur

    ne cherchez pas dans la cle de cryptage php4WD ni dans la classe mais plutot en SQL et mySQL sur comment ecrire la bonne requete alors que le mot de passe est hashé

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 143
    Par défaut
    Bonsoir,
    Merci de vous pencher sur mon cas. En effet ce que vous dites est vrai parce que j'ai récupérer le mot de passe hashé depuis la base de données via phpMyAdmin pour le test via windev et c'est passé. Du coup je sais que la requête est bonne mais il faut juste que je trouve une solution pour que le mot de passe soit hashé de la même manière que dans la base pour qu'il ait une correspondance. Je précise aussi que la méthode de hashage utilisée c'est HASH et le mot de passe final est constitué de 60 caractères. Je donne toutes ces précisions au cas ou quelqu'un souhaite se pencher d'avantage sur le sujet.
    Merci d'avance !!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/11/2015, 09h39
  2. Réponses: 12
    Dernier message: 10/09/2014, 02h15
  3. autoriser l'acces a une base de données distante mysql
    Par marouene_ dans le forum Administration
    Réponses: 1
    Dernier message: 20/04/2011, 18h28
  4. [MySQL] accès sur une base de données distante
    Par joboy84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/10/2008, 23h11
  5. connexion a une base de donnée distante mysql(site internet)
    Par rollernox dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2004, 13h14

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