diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java
index b86d367a8983d5b7d597ce85edb554000f534593..2cf8653d8d01689d0460d79a89a453d15b3e345d 100644
--- a/WEB-INF/src/controleurs/Feed.java
+++ b/WEB-INF/src/controleurs/Feed.java
@@ -70,7 +70,7 @@ public class Feed extends HttpServlet {
 
                     boolean msgIsLiked = false;
                     try {
-                        msgIsLiked = messageDao.isMessageLikedByUser(message, user);
+                        msgIsLiked = messageDao.isMessageLikedByUser(message.getMsgId(), user);
                     }
                     catch (SQLException sqle) {
                         sqle.getStackTrace();
diff --git a/WEB-INF/src/controleurs/LikeMessage.java b/WEB-INF/src/controleurs/LikeMessage.java
index bf26557fb3a0e72dc7520abca2c02e9e48fa4cef..c1b98bc62db6f27f9fca4053f0386be9a48d91ce 100644
--- a/WEB-INF/src/controleurs/LikeMessage.java
+++ b/WEB-INF/src/controleurs/LikeMessage.java
@@ -23,19 +23,14 @@ public class LikeMessage extends HttpServlet {
             ThreadDAO threadDao = new ThreadDAO();
             MessageDAO messageDao = new MessageDAO();
 
-            Message msg = null;
-
-            try {
-                messageDao.getMessageByID(
-                    Integer.parseInt(req.getParameter("messageid")));
-            }
-            catch (SQLException sqle) {
-                sqle.getStackTrace();
+            int messageID = 0;
+            if (req.getParameter("messageid") != null) {
+                messageID = Integer.parseInt(req.getParameter("messageid"));
             }
 
             boolean messageLiked = false;
             try {
-                messageLiked = messageDao.isMessageLikedByUser(msg, user);
+                messageLiked = messageDao.isMessageLikedByUser(messageID, user);
             }
             catch (SQLException sqle) {
                 sqle.getStackTrace();
@@ -43,7 +38,8 @@ public class LikeMessage extends HttpServlet {
 
             if (!messageLiked) {
                 try {
-                    userDao.reactToMsg(user, msg);
+                    System.out.println("message liké " + messageLiked);
+                    userDao.reactToMsg(user, messageID);
                 }
                 catch (SQLException sqle) {
                     sqle.getStackTrace();
@@ -51,7 +47,8 @@ public class LikeMessage extends HttpServlet {
             }
             else {
                 try {
-                    userDao.unreactToMsg(user, msg);
+                    System.out.println("message liké" + messageLiked);
+                    userDao.unreactToMsg(user, messageID);
                 }
                 catch (SQLException sqle) {
                     sqle.getStackTrace();
@@ -63,5 +60,4 @@ public class LikeMessage extends HttpServlet {
             res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html");
         }
    }
-}
-// A TESTER
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/WEB-INF/src/controleurs/LogIn.java b/WEB-INF/src/controleurs/LogIn.java
index a8138c1ab0534b21430c328607139b80e33ee83b..384eea6339fe5db5999e941d9959872c656a098b 100644
--- a/WEB-INF/src/controleurs/LogIn.java
+++ b/WEB-INF/src/controleurs/LogIn.java
@@ -18,6 +18,9 @@ public class LogIn extends HttpServlet {
         PrintWriter out = res.getWriter();
         UserDAO userdao = new UserDAO();
         User user = userdao.getUserByLogs(req.getParameter("login"), req.getParameter("pwd"));
+        if (user.getUserName() == null) {
+            res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html");
+        }
         req.getSession().setAttribute("login", user.getUserName());
         if (user == null) System.out.println("user null");
  
diff --git a/WEB-INF/src/dao/MessageDAO.java b/WEB-INF/src/dao/MessageDAO.java
index 39c7601611c8d5d94c9624ba752c730c2686f6d6..967c672a3717854c43c6733e2bce2cc5b7184511 100644
--- a/WEB-INF/src/dao/MessageDAO.java
+++ b/WEB-INF/src/dao/MessageDAO.java
@@ -35,7 +35,7 @@ public class MessageDAO {
         return message;
     }
 
-    public boolean isMessageLikedByUser(Message message, User user) throws SQLException {
+    public boolean isMessageLikedByUser(int messageID, User user) throws SQLException {
         PreparedStatement ps = this.con.prepareStatement("""
                 SELECT reaction FROM reactions 
                 WHERE userID_reactions = ?
@@ -43,7 +43,7 @@ public class MessageDAO {
                 """);
         try {
             ps.setInt(1, user.getId());
-            ps.setInt(2, message.getMsgId());
+            ps.setInt(2, messageID);
             ResultSet rs = ps.executeQuery();
             while(rs.next()) {
                 if (rs.getBoolean("reaction")) {
@@ -51,6 +51,38 @@ public class MessageDAO {
                 }
                 else return false;
             }
+            if (!rs.next()) {
+                return false;
+            }
+        }
+        catch (SQLException sqle) {
+            sqle.getStackTrace();
+        }
+        return false;
+    }
+
+    public boolean userReactedToMessage(User user, int msgID) throws SQLException {
+        PreparedStatement ps = this.con.prepareStatement("SELECT * FROM reactions WHERE userid_reactions=? AND msgID_reactions=?");
+        try {
+            ps.setInt(1, user.getId());
+            ps.setInt(2, msgID);
+            ResultSet rs = ps.executeQuery();
+            if (rs.next()) return true;
+            else return false;
+        }
+        catch (SQLException sqle) {
+            sqle.getStackTrace();
+        }
+        return false;
+    }
+
+    public boolean isInReactionTable(int msgID) throws SQLException {
+        PreparedStatement ps = this.con.prepareStatement("SELECT * FROM msg WHERE msgID=?");
+        try {
+            ps.setInt(1, msgID);
+            ResultSet rs = ps.executeQuery();
+            if (rs.next()) return true;
+            else return false;
         }
         catch (SQLException sqle) {
             sqle.getStackTrace();
diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java
index 2a32cdf083281b93d35ed51f47db5c81cbcc630a..dd86a2f3e0ac6fe8ca825a2584f91fb6c4449474 100644
--- a/WEB-INF/src/dao/UserDAO.java
+++ b/WEB-INF/src/dao/UserDAO.java
@@ -234,12 +234,39 @@ public class UserDAO {
     }
 
     // Réagir à un message
-    public void reactToMsg(User user, Message msg) throws SQLException {
-        PreparedStatement ps = this.con.prepareStatement("INSERT INTO reactions VALUES(?, ?, ?)");
+    public void reactToMsg(User user, int msgID) throws SQLException {
+        PreparedStatement ps = null;
+        MessageDAO messageDAO = new MessageDAO();
+        if (messageDAO.isInReactionTable(msgID) && messageDAO.userReactedToMessage(user, msgID)) {
+            ps = this.con.prepareStatement("UPDATE reactions SET reaction=true WHERE userid_reactions=? AND msgid_reactions=?");
+        }
+        else {
+            ps = this.con.prepareStatement("INSERT INTO reactions VALUES(?, ?, true)");
+           
+        }
+        try {
+            ps.setInt(1, user.getId());
+            ps.setInt(2, msgID);
+            System.out.println(ps);
+            ps.executeUpdate();
+        }
+        catch (SQLException sqle) {
+            sqle.getStackTrace();
+        }
+    }
+
+    public void unreactToMsg(User user, int msgID) throws SQLException {
+        PreparedStatement ps = this.con.prepareStatement("""
+            UPDATE reactions
+            SET reaction = false
+            WHERE userID_reactions = ?
+            AND msgID_reactions = ?
+        """);
         try {
             ps.setInt(1, user.getId());
-            ps.setInt(2, msg.getMsgId());
-            ps.setString(3, "true");
+            ps.setInt(2, msgID);
+            System.out.println("requete unreact");
+            ps.executeUpdate();
         }
         catch (SQLException sqle) {
             sqle.getStackTrace();
@@ -363,21 +390,4 @@ public class UserDAO {
         }
         return messages;
     }
-
-    public void unreactToMsg(User user, Message msg) throws SQLException {
-        PreparedStatement ps = this.con.prepareStatement("""
-            UPDATE reactions
-            SET reaction = false
-            WHERE userID_reactions = ?
-            AND msgID_reactions = ?
-        """);
-        try {
-            ps.setInt(1, user.getId());
-            ps.setInt(2, msg.getMsgId());
-            ps.executeUpdate();
-        }
-        catch (SQLException sqle) {
-            sqle.getStackTrace();
-        }
-    }
 }
\ No newline at end of file