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

Servlets/JSP Java Discussion :

Problème d'authentification avec le fichier action jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Problème d'authentification avec le fichier action jsp
    salut les geek, j'ai un soucis avec l'authentification.
    je voudrai faire l'authentification en fonction du statut(admin, professeur, étudiant), voici le formulaire

    Nom : auth.PNG
Affichages : 145
Taille : 6,9 Ko

    Quand je renseigne le formulaire , ça m'affiche une page vierge, voici le code de mon fichier action

    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.sql.*"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <%@include file="connexion.jsp"%>
    	<% 
            String statut=" ";
      //recuperation des données
      String Pseudo=request.getParameter("Pseudo");
      String Motpass=request.getParameter("Motpass");
      String Type=request.getParameter("Type");
    //Recherche du connecté
      PreparedStatement pst=null;
      ResultSet rs=null;
      pst=con.prepareStatement("select Pseudo, MotPass, Type from utilisateur where Pseudo=? and Motpass=? and Type=?" );
      pst.setString(1, Pseudo);
      pst.setString(2, Motpass);
      pst.setString(3, Type);
      rs=pst.executeQuery();
      while(rs.next()){
                     statut=rs.getString(3);
             
                     if(statut =="admin")
                            {
                                  this.getServletContext().getRequestDispatcher("/frais.jsp").forward(request,response);                    }
                    else if(statut =="professeur")
                             {
                                  this.getServletContext().getRequestDispatcher("/accueil.jsp").forward(request,response);
                            }
                    else
                             {
                                  this.getServletContext().getRequestDispatcher("/listeetudiant.jsp").forward(request,response);
                            }
               
                }
              
            con.close();
              %>
     
     
    </body>
    </html>
    S'il vous aidez-moi.Merci d'avance

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 681
    Points
    1 681
    Par défaut
    Tu as bien vérifié les branchements conditionnels de tes redirections ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(statut =="admin")    {
          this.getServletContext().getRequestDispatcher("/frais.jsp").forward(request,response);                }
           else if(statut =="professeur")
                     {
                          this.getServletContext().getRequestDispatcher("/accueil.jsp").forward(request,response);
                    }
                   else
                     {
                          this.getServletContext().getRequestDispatcher("/listeetudiant.jsp").forward(request,response);
                    }
    Le else if gagnerait à être séparé en
    Pour être sûr tu peux aussi logger avant les redirections.

    Edit :
    Depuis Java 7 il est aussi possible d'employer les switchs avec des strings :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    switch (month.toLowerCase()) {            
                case "january":
                    monthNumber = 1;
                    break;
                case "february":
                    monthNumber = 2;                 break;
    cf https://docs.oracle.com/javase/tutor...ts/switch.html

  3. #3
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    j'ai repris comme ci-dessous mais c'est toujours une page vierge qu'il m'affiche.

    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.sql.*"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <%@include file="connexion.jsp"%>
    	<%
            String statut="";
      //recuperation des données
      String Pseudo=request.getParameter("Pseudo");
      String Motpass=request.getParameter("Motpass");
      String Type=request.getParameter("Type");
    //Recherche du connecté
      PreparedStatement pst=null;
      ResultSet rs=null;
      pst=con.prepareStatement("select * from utilisateur where Pseudo=? and Motpass=? and Type=?" );
      pst.setString(1, Pseudo);
      pst.setString(2, Motpass);
      pst.setString(3, Type);
      rs=pst.executeQuery();
      while(rs.next()){
             statut=rs.getString(5);
             switch(statut){
                     
             
                     //if(rs.getString(5).equals(admin))
                             case "admin":
                                  this.getServletContext().getRequestDispatcher("/frais.jsp").forward(request,response);
                                  break;
                            
                    //else if(rs.getString(5).equals(professeur))
                             case "professeur":
                                  this.getServletContext().getRequestDispatcher("/accueil.jsp").forward(request,response);
                            break;
                             case "etudiant":
                                  this.getServletContext().getRequestDispatcher("/listeetudiant.jsp").forward(request,response);
                                  break;
                        default:
                            %><SCRIPT LANGUAGE="Javascript">alert("Login ou mot de passe incorrect");</SCRIPT>;
     
    	              <%}
             
                 }
            con.close();
              %>
    </body>
    </html>

  4. #4
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 681
    Points
    1 681
    Par défaut
    As-tu placé des log ?
    Rentres-tu dans la boucle while (y a t-il des données remontées par la requête ?)
    Que doit-il se passer si aucune ligne ne correspond aux critères ?

    Faut-il itérer sur le result set ou une seule ligne est-elle attendue ? (A priori cas n.2 : dès qu'une condition est validée il y a redirection.)
    Je m'interroge maintenant sur ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(rs.next()){     
      statut=rs.getString(5);      
      switch(statut){
    On dirait qu'aucune donnée n'est remontée et donc le while n'est jamais exécuté.

Discussions similaires

  1. problème d'arborescence avec mes fichiers
    Par M4XiMUZ dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 12/04/2007, 17h52
  2. Problème d'authentification avec webService
    Par iDaaX dans le forum Services Web
    Réponses: 7
    Dernier message: 29/01/2007, 19h19
  3. Problème de son avec un fichier swf
    Par dongnold dans le forum Flash
    Réponses: 5
    Dernier message: 31/12/2006, 07h08
  4. Réponses: 3
    Dernier message: 18/12/2006, 09h33
  5. Réponses: 3
    Dernier message: 28/02/2006, 12h41

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