diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index cb83cd3aac3d2d1bc348fbfc9e73b86a15aee922..0000000000000000000000000000000000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "java.project.sourcePaths": [ - "WEB-INF/classes", - "WEB-INF/lib" - ], - "java.project.referencedLibraries": [ - "/home/infoetu/alexandre.dehaine.etu/tomcat/lib/annotations-api.jar", - "/home/infoetu/alexandre.dehaine.etu/tomcat/webapps/sae-r4.01/WEB-INF/lib/postgresql-42.7.4.jar", - "/home/infoetu/alexandre.dehaine.etu/tomcat/webapps/sae-r4.01/WEB-INF/lib/chesslib-1.1.8.jar" - ], - "java.project.outputPath": "WEB-INF/classes" -} \ No newline at end of file diff --git a/ScriptSQL.sql b/ScriptSQL.sql index 6473068125198f4a8a33da9ff11bededca482d4a..fbf97127230241eedbd6ca2c75796eb3c5492f6d 100644 --- a/ScriptSQL.sql +++ b/ScriptSQL.sql @@ -47,7 +47,7 @@ CREATE TABLE Messages INSERT INTO Messages(message, utilisateur, idConv) VALUES('Hello', (SELECT email FROM Utilisateur WHERE email = 'audrey.v.etu@univ-lille.fr'), (SELECT idConv FROM Conversations WHERE nomConv = 'Conversation 1')); -- Créations d'une Conversation 2 et de messages - INSERT INTO Conversations(nomConv, createur) + INSERT INTO Conversations(nomConv, createur, pwd) VALUES('Conversation 2', (SELECT email FROM Utilisateur WHERE email = 'alexandre.dehaine.etu@univ-lille.fr'), MD5('mdp')); INSERT INTO Messages(message, utilisateur, idConv) VALUES('Conv 2', (SELECT email FROM Utilisateur WHERE email = 'alexandre.dehaine.etu@univ-lille.fr'), (SELECT idConv FROM Conversations WHERE nomConv = 'Conversation 2')); diff --git a/WEB-INF/classes/dao/ConversationDao.class b/WEB-INF/classes/dao/ConversationDao.class index a2930172d2374868a20253fe952d727e48f96892..3be0414e77e4b46609e99caf177665a0431f1e97 100644 Binary files a/WEB-INF/classes/dao/ConversationDao.class and b/WEB-INF/classes/dao/ConversationDao.class differ diff --git a/WEB-INF/classes/dao/ConversationJdbcDao.class b/WEB-INF/classes/dao/ConversationJdbcDao.class index 21c0c2d04aa20f9680699cd709e95b6cc96324ec..5dcd0f5eadfff1a1839538bd6e7d0d036c2cfe49 100644 Binary files a/WEB-INF/classes/dao/ConversationJdbcDao.class and b/WEB-INF/classes/dao/ConversationJdbcDao.class differ diff --git a/WEB-INF/src/dao/ConversationDao.java b/WEB-INF/src/dao/ConversationDao.java index 9f61d27a79ab593f6b9e53ea68c21170bdea1300..246c6152dcaca79f3d5b58c2d8845ae144454fd0 100644 --- a/WEB-INF/src/dao/ConversationDao.java +++ b/WEB-INF/src/dao/ConversationDao.java @@ -7,7 +7,7 @@ public interface ConversationDao { List<Message> findAllMessages(int idConv); List<Utilisateur> findAllUtilisateurs(int idConv); List<Conversation> findByUser(String email); - boolean createConversation(String nomConv, Utilisateur createur, String pwd); + int createConversation(String nomConv, Utilisateur createur, String pwd); boolean deleteConversation(int idConv); boolean goodPwd(int idConv, String pwd); } diff --git a/WEB-INF/src/dao/ConversationJdbcDao.java b/WEB-INF/src/dao/ConversationJdbcDao.java index d3897c291e609ad739961c868a55b165b2697175..ff2ea9335617b19e61df149cbe84c417d113b1ca 100644 --- a/WEB-INF/src/dao/ConversationJdbcDao.java +++ b/WEB-INF/src/dao/ConversationJdbcDao.java @@ -1,10 +1,5 @@ package dao; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; +import java.sql.*; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @@ -94,21 +89,32 @@ public class ConversationJdbcDao implements ConversationDao{ } @Override - public boolean createConversation(String nomConv, Utilisateur createur, String pwd) { - try (Connection con = getCon(); Statement stmt = con.createStatement()) { + public int createConversation(String nomConv, Utilisateur createur, String pwd) { + try (Connection con = getCon()) { + // Utilisation de PreparedStatement avec Statement.RETURN_GENERATED_KEYS pour récupérer l'ID généré String sql = "INSERT INTO Conversations(nomConv, createur, pwd) VALUES('"+nomConv+"', '"+createur.getEmail()+"', MD5('"+pwd+"'));"; - System.err.println(sql); - ResultSet rs = stmt.executeQuery(sql); - rs.next(); - rs.close(); - con.close(); - return true; - }catch (SQLException e) { + + // Préparer la requête pour insertion avec des paramètres + try (PreparedStatement pstmt = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) { + // Exécuter la requête d'insertion + pstmt.executeUpdate(); + + // Récupérer les clés générées + try (ResultSet rs = pstmt.getGeneratedKeys()) { + if (rs.next()) { + // Récupérer l'ID généré + int res = rs.getInt(1); // Le premier champ dans ResultSet est l'ID auto-généré + return res; + } + } + } + } catch (SQLException e) { System.out.println("Erreur lors de l'accès à la base de données : " + e.getMessage()); e.printStackTrace(); } - return false; - } + return 0; // Retourner 0 en cas d'erreur + } + @Override public boolean deleteConversation(int idConv) { diff --git a/accueil.jsp b/accueil.jsp index 8729b9cdf68c6a1b680c04aceadfb835673ef888..ff5805c361b0dc641d61a039c630e5e3ab0df4c2 100644 --- a/accueil.jsp +++ b/accueil.jsp @@ -40,11 +40,13 @@ response.sendRedirect("http://localhost:8080/sae-r4.01/accueil.jsp?idConv=" + selectedConvId); } } - if(request.getParameter("param") == "create"){ - jdbcConv.createConversation(request.getParameter("nomConv") ,utilisateur, request.getParameter("pwd")); + if(request.getParameter("param") != null && request.getParameter("param").equals("create")){ + System.out.println("suce"); + selectedConvId = jdbcConv.createConversation(request.getParameter("nomConv") ,utilisateur, request.getParameter("pwd")); jdbcMessage.createMessage(utilisateur, request.getParameter("Message"), selectedConvId); response.sendRedirect("http://localhost:8080/sae-r4.01/accueil.jsp?idConv=" + selectedConvId); } + System.out.println("bite"); %> <br> @@ -100,7 +102,7 @@ out.println("<label for=\"idConv,\">Identifiant de la conversation:</label>"); out.println("<input type=\"text\" id=\"idConv\" name=\"idConv\">"); out.println("<label for=\"pwd\">Mot de passe:</label>"); - out.println("<input type=\"text\" id=\"pwd\" name=\"pwd\">"); + out.println("<input type=\"password\" id=\"pwd\" name=\"pwd\">"); out.println("<label for=\"Message\">Message:</label>"); out.println("<input type=\"text\" id=\"Message\" name=\"Message\">"); out.println("<button type=\"submit\" name=\"param\" value = \"join\" class=\"btn btn-primary\">Rejoindre</button>"); @@ -109,13 +111,14 @@ <h3>Créer une conversation :</h3> <% + out.println("<form action='accueil.jsp' method='get'>"); out.println("<label for=\"nomConv\">Nom de la conversation:</label>"); out.println("<input type=\"text\" id=\"nomConv\" name=\"nomConv\">"); out.println("<label for=\"pwd\">Mot de passe:</label>"); - out.println("<input type=\"text\" id=\"pwd\" name=\"pwd\">"); + out.println("<input type=\"password\" id=\"pwd\" name=\"pwd\">"); out.println("<label for=\"Message\">Message:</label>"); out.println("<input type=\"text\" id=\"Message\" name=\"Message\">"); - out.println("<button type=\"submit\" name=\"param\" value = \"create\" class=\"btn btn-primary\">Créer</button>"); + out.println("<button type=\"submit\" name=\"param\" value =\"create\" class=\"btn btn-primary\">Créer</button>"); out.println("</form>"); %>