diff --git a/TP3/js/chat.js b/TP3/js/chat.js index 643199d..be059f7 100644 --- a/TP3/js/chat.js +++ b/TP3/js/chat.js @@ -67,7 +67,10 @@ function sendMessage(){ let channelId = channelsList.options[channelsList.selectedIndex].value; const message = document.getElementById("message").value; document.getElementById("message").value = ""; - ajaxRequest("POST", "http://serveur-ajax-s3.felix/TP3/php/chat.php?request=messages&channel_id=" + channelId + "&userlogin=etudiant0&message=" + message, getMessages, message); + if(message === ""){ + return; + } + ajaxRequest("POST", "http://serveur-ajax-s3.felix/TP3/php/chat.php?request=messages", getMessages, "&channel_id=" + channelId + "&userlogin=etudiant0&message=" + message); } getChannels(); diff --git a/TP3/js/utils.js b/TP3/js/utils.js index 65041dd..b41186f 100644 --- a/TP3/js/utils.js +++ b/TP3/js/utils.js @@ -1,9 +1,6 @@ console.log("utils.js loaded"); function ajaxRequest(type, url, callback=null, data=null){ - console.log("ajaxRequest called"); - console.log("type: " + type); - console.log("url: " + url); let xhr = new XMLHttpRequest(); xhr.open(type, url, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); @@ -11,9 +8,19 @@ function ajaxRequest(type, url, callback=null, data=null){ switch (xhr.status){ case 200: case 201: - let parsedResponse = JSON.parse(xhr.responseText); - if (callback){ - callback(parsedResponse); + if(xhr.responseText.trim() !== ''){ + try { + let parsedResponse = JSON.parse(xhr.responseText); + if (callback){ + callback(parsedResponse); + } + } + catch (e){ + errorAlert("Erreur: " + e); + } + } + else{ + errorAlert("Erreur: Aucune donnée reçue"); } break; default: diff --git a/TP3/php/chat.php b/TP3/php/chat.php index 425fd67..20384da 100644 --- a/TP3/php/chat.php +++ b/TP3/php/chat.php @@ -22,26 +22,34 @@ if(isset($_GET['request']) && $_GET['request'] == 'channels'){ } } -if(isset($_GET['request']) && $_GET['request'] == 'messages' && $_GET['channel_id']){ - $channel_id = intval($_GET['channel_id']); - $messages = dbGetMessages($pdo, $channel_id); - if($messages){ - echo json_encode($messages); +if(isset($_GET['request']) && $_GET['request'] == 'messages'){ + if(isset($_GET['channel_id'])){ + header('Content-Type: application/json'); + $channel_id = intval($_GET['channel_id']); + $messages = dbGetMessages($pdo, $channel_id); + if($messages){ + echo json_encode($messages); + } + else{ + echo json_encode([]); + } } else{ - echo json_encode([]); + if(isset($_POST['channel_id']) && $_POST['userlogin'] && $_POST['message']){ + header('Content-Type: application/json'); + $channel_id = intval($_POST['channel_id']); + $userlogin = $_POST['userlogin']; + $message = $_POST['message']; + $result = dbAddMessage($pdo, $userlogin, $channel_id, $message); + if($result){ + echo json_encode(array("status" => "success", "message" => "Message added")); + } else { + echo json_encode(array("status" => "error", "message" => "Message not added")); + } + } + else{ + echo json_encode(array("status" => "error", "message" => "Invalid request")); + } } -} -if(isset($_POST['request']) && $_POST['request'] == 'messages' && $_POST['channel_id'] && $_POST['userlogin'] && $_POST['message']){ - $channel_id = intval($_POST['channel_id']); - $userlogin = $_POST['userlogin']; - $message = $_POST['message']; - $result = dbAddMessage($pdo, $userlogin, $channel_id, $message); - if($result){ - echo json_encode('Message added'); - } - else{ - echo json_encode('Message not added'); - } } \ No newline at end of file diff --git a/TP3/test.http b/TP3/test.http new file mode 100644 index 0000000..943da30 --- /dev/null +++ b/TP3/test.http @@ -0,0 +1,5 @@ +POST http://serveur-ajax-s3.felix/TP3/php/chat.php + +Content-Type: application/x-www-form-urlencoded + +request=messages&channel_id=1&userlogin=etudient0&message=Test%20Post \ No newline at end of file