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

NetBeans Java Discussion :

[Visual Web] Connexion à une base pour identification - Netbeans + Visual Web Pack.


Sujet :

NetBeans Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 35
    Points
    35
    Par défaut Connexion à une base pour identification - Netbeans + Visual Web Pack.
    Bonjour,
    Je souhaite faire une page de connexion avec un login et un mot de passe dans Netbeans avec le Visual Web Pack.
    La page est simple :
    - 1 champ "text field" nommé "login" pour entrer le login
    - 1 champ "password"
    - 1 bouton "connecter" qui renvoi sur une autre page.

    Je souhaite vérifier si le login et le mot de passe correspondent bien dans une table de ma base. Table logname / colonnes : log_nom et log_pass.
    La requete dans le "lognameRowSet" est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ALL logname.log_nom, 
                        logname.log_pass 
    FROM logname
    WHERE logname.log_nom = ?
    Le data provider s'appelle lognameDataProvider.

    Le code sur le bouton est le 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
    24
    25
    26
    27
     public String connecter_action() {
            String req = "SELECT log_nom, log_pass FROM logname";
            String utilisateur = login.getText().toString();   
            String motpasse = password.getText().toString();  
     
            try {
    // 1 iere solution : création de la requete a la volée
                getSessionBean1().getLognameRowSet().setCommand (req + " WHERE name = " + utilisateur.toString() );
    // fin de la premiere solution
    // 2 ieme solution : =? de la requete est remplacé par login.getText() avec la fonction setObject()
                getSessionBean1().getLognameRowSet().setObject(1, login.getText());
    //fin de la 2 ieme solution
                } catch (Exception e) {
                error("Cannot switch to person " +
                        lognameDataProvider.getValue("logname.log_nom"));
               log("Cannot switch to person " +
                        lognameDataProvider.getValue("logname.log_pass"), e);
            }
        if (utilisateur.equals(lognameDataProvider.getValue("logname.log_nom")))
            {
            if (utilisateur.equals(lognameDataProvider.getValue("logname.log_pass")))
                {
                return "accepte";
                }
            }
            return "erreur";
        }
    LNetbeans ne retourne aucune erreur mais à l'exécution, Tomcat retourne une erreur 500 qui apparemment est du à un probleme de requete sur la base.
    J'ai lu et réalisé (ça fonctionne) les tutoriels concernant les accès aux données d'une base mais ils se font tous avec des listes déroulantes, rien sur une vérification à partir de champs.
    Avez-vous une idée d'où pourrait se trouver l'erreur ou comment faire ce genre de vérification ?
    L'accès à la base fonctionne très bien, j'ai vérifié en faisant des requetes avec des objets "table" de VWP.
    Merci

  2. #2
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Bonjour,

    Ta première solution n'est clairement pas la bonne manière de travailler.

    Pour la seconde, je pense qu'il manque un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lognameDataProvider.execute();
    pour fonctionner.

    Valère
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    J'ai testé ta commande mais elle n'existe pas.
    J'ai l'impression que l'utilisation que je fais du dataProvider n'est pas la bonne car je n'affiche pas de table directment sur la page.
    Je n'ai rien lié sur cette page (drag and drop) comme dans les tuto ur les dropdownlist ou les tables.

  4. #4
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Ah, effectivement, il faut que tu DnD ta table logname sur ta Page1. Automatiquement Creator/VWP va créer tout ce qu'il faut dans ton SessionBean1. Ensuite tu peux la modifier comme tu le souhaites.

    Bien sûr, tu n'est pas obligé de faire le DnD, si tu paramètres toi même tout comme il faut.

    Sinon, je me suis trompé d'objet pour la méthode execute(), c'est plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getSessionBean1().getLognameRowSet().execute();
    Valère
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par solean45
    Bonjour,
    Je souhaite faire une page de connexion avec un login et un mot de passe dans Netbeans avec le Visual Web Pack.
    La page est simple :
    - 1 champ "text field" nommé "login" pour entrer le login
    - 1 champ "password"
    - 1 bouton "connecter" qui renvoi sur une autre page.

    Je souhaite vérifier si le login et le mot de passe correspondent bien dans une table de ma base. Table logname / colonnes : log_nom et log_pass.
    La requete dans le "lognameRowSet" est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ALL logname.log_nom, 
                        logname.log_pass 
    FROM logname
    WHERE logname.log_nom = ?
    Le data provider s'appelle lognameDataProvider.

    Le code sur le bouton est le 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
    24
    25
    26
    27
     public String connecter_action() {
            String req = "SELECT log_nom, log_pass FROM logname";
            String utilisateur = login.getText().toString();   
            String motpasse = password.getText().toString();  
     
            try {
    // 1 iere solution : création de la requete a la volée
                getSessionBean1().getLognameRowSet().setCommand (req + " WHERE name = " + utilisateur.toString() );
    // fin de la premiere solution
    // 2 ieme solution : =? de la requete est remplacé par login.getText() avec la fonction setObject()
                getSessionBean1().getLognameRowSet().setObject(1, login.getText());
    //fin de la 2 ieme solution
                } catch (Exception e) {
                error("Cannot switch to person " +
                        lognameDataProvider.getValue("logname.log_nom"));
               log("Cannot switch to person " +
                        lognameDataProvider.getValue("logname.log_pass"), e);
            }
        if (utilisateur.equals(lognameDataProvider.getValue("logname.log_nom")))
            {
            if (utilisateur.equals(lognameDataProvider.getValue("logname.log_pass")))
                {
                return "accepte";
                }
            }
            return "erreur";
        }
    LNetbeans ne retourne aucune erreur mais à l'exécution, Tomcat retourne une erreur 500 qui apparemment est du à un probleme de requete sur la base.
    J'ai lu et réalisé (ça fonctionne) les tutoriels concernant les accès aux données d'une base mais ils se font tous avec des listes déroulantes, rien sur une vérification à partir de champs.
    Avez-vous une idée d'où pourrait se trouver l'erreur ou comment faire ce genre de vérification ?
    L'accès à la base fonctionne très bien, j'ai vérifié en faisant des requetes avec des objets "table" de VWP.
    Merci
    Bonjour

    As tu trouvé la bonne réponse ? si oui laquelle ? parce que je vais faire une page login avec VWP moi aussi.

    Merci.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Bonjour tout le monde,
    Désolé pour ce silence, mais pas mal de taf dernierement.
    J'ai pu me replonger sur mon probleme, et trouver la solution :

    Ma page web = un champ textfield "login", un champ password "password" et un bouton appelé "connecter".


    Ma table : "logname" , champs : "log_nom" et "log_pass".

    J'ai ajouté une table ou j'ai DnD ma table "logname"
    => création d'un rowset logname.Rowset : SELECT * FROM logname.
    dans SessionBean1
    => création d'un dataProvider dans ma page.

    Puis sur le bouton, j'ai ajouté l'action suivante :

    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
     
        public String connecter_action() {
     
            boolean trouve = false;
     
            // on se place sur la premiere ligne de la table logname
            lognameDataProvider.cursorFirst();
            // on passe sur chaque ligne ...
            do {
                // si le login et le mot de passe entrés dans les champs correspondent, le bouton renvoi la valeur accepte
                // on est donc redirigé automatiquement vers la page d'accueil
                if ((login.getText().toString().equals(lognameDataProvider.getValue("logname.log_nom").toString()))
                    && (password.getText().toString().equals(lognameDataProvider.getValue("logname.log_pass").toString())))
                {
                    return "accepte"; // valeur accepte retournée par le bouton, rouvoi directement vers la page, on sort de l exécution
                }
     
            } while (lognameDataProvider.cursorNext()); // .. jusqu a la derniere ligne de la table
     
            // si la valeur n est pas trouvée, le bouton retourne la valeur erreur (redirection vers page d'erreur).    
            return "erreur";
        }
    Ensuite, il suffit de passer la table (qui affiche les lignes de logname) en mode invisible pour la masquer.
    Je ne suis pas sur que les toString() soient nécessaires, mais ça marche comme ça et j'ai pas le temps de faire plus de tests.
    Comme l'a précisé Valered, il y a moyen de créer ses rowset dataprovider sans ajouter de table en DnD la table dans le connecteur de bd vers la page, mais j'ai pas testé...
    Il n'y a pas de controles approfondis, à vous de jouer suivant vos besoins.

    Bon courage.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/12/2011, 17h07
  2. [WD14] Connexion à une base MySQL hébergée sur le Web
    Par Trusty823 dans le forum WinDev
    Réponses: 0
    Dernier message: 25/07/2009, 23h38
  3. Réponses: 3
    Dernier message: 02/08/2007, 18h09
  4. connexion à une base de données sous visual studio
    Par mademoizel dans le forum Visual Studio
    Réponses: 1
    Dernier message: 02/03/2007, 18h03

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