diff --git a/img.c b/img.c
index 2fcedd347f7bed1d49a0881457303ce43a0163e5..ebedf5e8981c83963b682d3b353f6d2861c411b0 100644
--- a/img.c
+++ b/img.c
@@ -20,7 +20,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-
+#define GUESS_SUFFIX "&guess=Guess"
 #define MAX_BUFF 2049
 
 
@@ -373,9 +373,43 @@ static bool handle_http_request(int sockfd, struct User* user_arr[])
                 }
 
                 else {
-                    
+                    char * guess = strstr(buff, "keyword=") + 8;
+                    guess = [strlen(guess)-strlen(GUESS_SUFFIX)] = '\0';
+                    if (match(guess, curr_user->keywords, curr_user->n_word)){
+
+                        curr_user->stage = 2;
+                        the_other_user(curr_user, user_arr)->stage = 2;
+                        simple_load_html("6_endgame.html",sockfd,buff,n,curr_user);
+                        lear_user_keyword(curr_user);
+
+
+                    }else{
+                        record_keyword(curr_user, guess);
+
+                        char guess_buff[MAX_BUFF];
+                        strcpy(guess_buff,"<br>");
+
+                        if(curr_user->n_word==1)
+                        {
+                            strcat(guess_buff, guess);
+                            guess_buff[strlen(guess_buff)]='\0';
+
+                        }
+                        else
+                        {
+                            for (int i = 0; i < curr_user->n_word; ++i)
+                            {
+                                strcat(guess_buff, curr_user->keywords[i]);
+                                strcat(guess_buff,"<br>");
+                            }
+                        }
+                        dit_load_html("4_accepted.html", sockfd,buff,username,curr_user);
+
+                    }
+
                 }
             }
+            
 
         }