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

JDBC Java Discussion :

correspondance login et mot de passe tapés avec ceux de la base de données


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Par défaut correspondance login et mot de passe tapés avec ceux de la base de données
    bonjour

    dans mon application j'ai une fenetre d'authentification contenant un login et un mot de passe(jtextfield à remplir par l'utilisateur) et un bouton valider .
    Je saouhaite qu'en cliquant sur le bouton valider si le login et le mot de passe tapés correspodent à ceux d'un enregistrement dans la base de données on passe à la fenetre suivante sinon un Joption pane s'affiche déclarant que le login et le mot de passe ne sont pas valides

    voila le code de ma classe Auth contenant le login et le mot de passe
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    /*import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
    import javax.swing.JOptionPane;*/
     
    import javax.swing.*; 
     
     
     class Auth extends JFrame implements ActionListener{ 
     
       /**
             * 
             */
    private static final long serialVersionUID = 1L;
     
    public Auth(){
     
    	   this.setTitle("Authentification");
    	   this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
    	   JLabel login= new JLabel("login:"); 
    	   JTextField textlogin = new JTextField(15); 
    	   textlogin.setMaximumSize(textlogin.getPreferredSize());
    	   Box ABox1 = Box.createHorizontalBox(); 
    	   ABox1.add(login); 
    	   ABox1.add(Box.createHorizontalStrut(6)); 
    	   ABox1.add(textlogin); 
     
    	   JButton v=new JButton("valider");
    	   JButton r=new JButton("reinitialiser");
    	   JLabel mdp = new JLabel ("password :"); 
    	   JPasswordField textmdp = new JPasswordField(15); 
    	   textmdp.setMaximumSize(textmdp.getPreferredSize()); 
     
    	   Box ABox2 = Box.createHorizontalBox(); 
    	   ABox2.add(mdp); 
    	   ABox2.add(Box.createHorizontalStrut(6)); 
    	   ABox2.add(textmdp); 
    	   Box ABox3 = Box.createHorizontalBox(); 
    	   ABox3.add(v); 
    	   ABox3.add(Box.createHorizontalStrut(6)); 
    	   ABox3.add(r); 
    	   Box vBox = Box.createVerticalBox(); 
    	   vBox.add(Box.createVerticalStrut(50));
    	   vBox.add(ABox1); 
    	   vBox.add(Box.createVerticalStrut(100)); 
    	   vBox.add(ABox2); 
    	   vBox.add(Box.createVerticalStrut(50)); 
    	   vBox.add(ABox3); 
     
    	   JPanel panel = new JPanel();
    	   panel.add(vBox);
    	    //panel.repaint();
    	   this.setContentPane(panel);
    	   v.addActionListener(this);
     
    	   //this.getContentPane().add(vBox);
    	   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	   this.setVisible(true);
    	   this.setSize(500,500);
    	   Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    	   this.setLocation(dim.width/2 - this.getWidth()/2, dim.height/2 - this.getHeight()/2);
     
     
    }
     
    public void actionPerformed(ActionEvent e) { 
        if(e.getActionCommand().equals("valider"))
     	{ 
    	     new Selection();
    	     this.dispose();
    	    }
     
       }}
    et ma classe Connectt que je souhaite appeler dans action performed de la classe Auth pour faire le test de correspondance des logins et mots de passes tapés et ceux de la base de données

    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
    public class Connectt {
     
    	public Connectt(){
     
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
     
    			String url = "jdbc:mysql://localhost:3306/monmon";
    			String user = "root";
    			String passwd = "mymn";
    			ResultSet result = null;
    			Connection conn = DriverManager.getConnection(url, user, passwd);
    			Statement s = conn.createStatement ();
    			//Création d'un objet Statement
    			Statement state = conn.createStatement();
    			//L'objet ResultSet contient le résultat de la requête SQL
     
    			result = s.executeQuery( "Select * from tablemonmon WHERE login='"+Auth.textlogin.gettext()+"' AND password='"+password+"'" ) ;
    			if ( result.next() )
    			   System.out.println("Connexion OK") ;
    			else
    			   System.out.println("Mauvais login ou mot de passe") ;
     
     
                            result.close();
                            state.close();
     
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}		
    	}
    }
    le probleme figure dans cette instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = s.executeQuery( "Select * from tablemonmon WHERE login='"+Auth.textlogin.gettext()+"' AND password='"+password+"'" ) ;
    j'ai pas su appeler le contenu des jtextfield de lautre classe(Auth)


    s'il vous plait essayer de m'aider

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Salut,

    Citation Envoyé par allomona Voir le message
    le probleme figure dans cette instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = s.executeQuery( "Select * from tablemonmon WHERE login='"+Auth.textlogin.gettext()+"' AND password='"+password+"'" ) ;
    j'ai pas su appeler le contenu des jtextfield de lautre classe(Auth)

    une manière de le faire parmi plusieurs :

    Définir ton composant textlogin comme étant un attribut statique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     class Auth extends JFrame implements ActionListener{ 
     
    static JTextField textlogin = new JTextField(15);
     
    public Auth(){
     
    	   [...]
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 33
    Par défaut
    Citation Envoyé par slim_java Voir le message
    une manière de le faire parmi plusieurs :

    Définir ton composant textlogin comme étant un attribut statique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     class Auth extends JFrame implements ActionListener{ 
     
    static JTextField textlogin = new JTextField(15);
     
    public Auth(){
     
    	   [...]
    }
    Pour compléter, et afin d'être plus en accord avec les préconisations de Sun quant-à la façon de coder, ecrire des getters dans ta classe Auth pour lire le contenu de ces champs :
    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
     class Auth extends JFrame implements ActionListener{ 
     
    private JTextField textlogin = null;
    private JPasswordField textmdp = null;
     
       public Auth(){
     
    	   [...]
               textlogin = new JTextField(15); 
     	   [...]
              textmdp = new JPasswordField(15);
    	   [...]
     
       }
     
       public String getLogin() {
           return this.textLogin.getText();
       }
       public String getMdp() {
           return this.textmdp.getText();
       }
    }
    Par contre, cela implique que tu fasses passer ton instance de Auth à ta classe Connectt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connectt c = new Connectt(this)
    puis que tu modifies celle-ci de la façon 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    public class Connectt {
    	public Connectt(final Auth auth) {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
     
    			String url = "jdbc:mysql://localhost:3306/monmon";
    			String user = "root";
    			String passwd = "mymn";
    			ResultSet result = null;
    			Connection conn = DriverManager.getConnection(url, user, passwd);
    			Statement s = conn.createStatement ();
    			//Création d'un objet Statement
    			Statement state = conn.createStatement();
    			//L'objet ResultSet contient le résultat de la requête SQL
     
    			result = s.executeQuery( "Select * from tablemonmon WHERE login='"+auth.getLogin()+"' AND password='"+auth.getMdp()+"'" ) ;
    			if ( result.next() )
    			   System.out.println("Connexion OK") ;
    			else
    			   System.out.println("Mauvais login ou mot de passe") ;
     
     
                            result.close();
                            state.close();
     
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}		
    	}
    }

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Par défaut
    je vous suis vraiment reconnaissante merci infiniment pour ces reponses

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

Discussions similaires

  1. Mot de passe haché avec MD5 dans la base de données
    Par lelapinrusse dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/06/2009, 22h31
  2. Comparaison des données avec ceux d'un base de données
    Par Haya-Jiji dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 11/05/2009, 02h57
  3. [MySQL] Création d'un login et mot de passe securisé avec PHP/MySQL
    Par NicoMontreal91 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/09/2008, 23h01
  4. Réponses: 1
    Dernier message: 29/01/2007, 19h20
  5. Fenêtre avec login et mot de passe
    Par keawee dans le forum ASP
    Réponses: 5
    Dernier message: 29/08/2005, 15h30

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