Discussion: Probléme DAO JEE

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2018
    Messages : 1
    Points : 3
    Points
    3

    Par défaut Probléme DAO JEE

    Salut tout le monde,

    Je suis en train de préparer mon projet fin d'étude, mais j'ai un problème, donc je vais que l'administrateur se connecter pour pouvoir utiliser l'application, mais n'importe que l'email et le mot de passe entré et chaque fois que je clique sur connecter l'application me rédige vers la page d’accueil, je crois que le problème est au niveau de DAO exactement au niveau de la requête SELECT, une idée SVP ?

    voici le code

    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
    public Administrateur getAdministrateurByEmail(String email, String motPasse){
             Administrateur administrateur = new Administrateur();     
     
                try {
                    connection = ConnectionManager.getConnection();
                    ResultSet resultSet = connection.createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_READ_ONLY).executeQuery("select * FROM administrateur where email = " + email+" and motPasse ="+motPasse);
     
                  if(resultSet.first()){
                    administrateur = new Administrateur(
                      email, motPasse,
     
                              resultSet.getInt("id"),
                              resultSet.getString("nom"),
                              resultSet.getString("prenom"),
                              resultSet.getString("motPasse"),
                              resultSet.getString("adminPic"));  
                          }
                } catch (SQLException e) {
                  e.printStackTrace();
                }
                return administrateur;
            }
    ou bien au niveau du Servlet ? :

    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
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            try (PrintWriter out = response.getWriter()) {
                //récupere les résultat
                String email=request.getParameter("email");
                String motPasse=request.getParameter("motPasse");
     
                String forward="";
     
                Administrateur administrateur = dao.getAdministrateurByEmail(email,motPasse);
                request.setAttribute("administrateur", administrateur);
     
                if (administrateur!=null)  {
                    forward="/acceuilAdmin.jsp";
                   }
                else {
                    forward="/index.html";
                }
                RequestDispatcher view = request.getRequestDispatcher(forward);
                view.forward(request, response);
            }
        }

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    janvier 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 561
    Points : 604
    Points
    604

    Par défaut

    Bonjour,

    Tu vas à ta page de garde parce
    administrateur = null
    quand tu quittes ta fonction getAdministrateurByEmail(...).

    Et il peut valoir null,
    soit parce que tu as une erreur SQL et dans ce cas, tu peux la lire à l'écran (dans ta console) grâce au e.printStacktrace() ou dans les logs de ton serveur web,
    soit parce que – et c'est ce que je pense – tu n'as pas d'enregistrement ayant ce profil et ce mot de passe dans la table administrateur de ta base, et c'est pour cela que tu dois retourner administrateur = null.

    Fais un essai avec un profil et un mot de passe qui sont dans ta base.

  3. #3
    Membre confirmé
    Avatar de provirus
    Homme Profil pro
    Consultant informatique
    Inscrit en
    février 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : février 2009
    Messages : 244
    Points : 585
    Points
    585

    Par défaut

    Bonjour,

    Premièrement, ne concatène jamais du texte fournis par les utilisateurs dans ta requête SQL ; sinon, tu invites les gens à faire de l'injection SQL.
    Par exemple, je pourrais remplir le formulaire avec le mot de passe: " ' or ''=' " et ta requête retournerait tous les utilisateurs. Je serais donc un utilisateur au hasard (le premier retourné).
    Il faut plutôt utiliser une requête paramétrée ("select * FROM administrateur where email = ? and motPasse = ?") et passer les arguments en paramètres.

    Ensuite, le problème est surement que tu passes du texte sans les mettre entre apostrophes:
    "select * FROM administrateur where email = '" + email+"' and motPasse ='" + motPasse + "'"
    Si tu utilises une requête paramétrée, tu n'auras pas besoin des apostrophes.

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

Discussions similaires

  1. Problème projet JEE
    Par azrtui dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 13/07/2013, 16h14
  2. Problème dao, liste avec doublons
    Par velocity dans le forum Java EE
    Réponses: 1
    Dernier message: 12/07/2012, 11h21
  3. Problème avec JEE et jBoss
    Par dabdallas dans le forum JBoss
    Réponses: 1
    Dernier message: 21/02/2011, 08h43
  4. Problème installation JEE SDK 5 sous WindowsXP
    Par malikoo dans le forum Général Java
    Réponses: 5
    Dernier message: 27/10/2008, 11h10
  5. Problème Connection 4D par DAO
    Par ballmaster dans le forum 4D
    Réponses: 3
    Dernier message: 23/06/2006, 10h54

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