Задать вопрос
@Afafks123132132165

Как расшифровать ответ сервера?

Ну делал я значит чат и дошел до отображения сообщений ,а он отображаются как:
<b>Name<b>Text<br>
Ответ от сервера(файлика php) приходит правильно но <b>заменяются на &b или что то в этом роде.Как можно это расшифровать и сделать отображение правильным?
js
<html>
    <head>
        <meta charset = "utf-8">
        <title>Chat</title>
    </head>
    <body>
        <div id = "div"></div>
        <div id = "div2">
          <input id = "name" type = "text" placeholder = "Name" required>
          <input id = "text" type = "text" placeholder = "Text" required>
          <button id = "button" onclick = "send()">Send</button>
        </div>
        <style>
            #div{
                margin: 0;
                padding: 0;
                background-color: black;
                width: 100%;
                height: 90%;
                color: white;
                overflow-x: scroll;
            }
            #div2{
                margin: 0;
                padding: 0;
                width: 100%;
                height: 10%;
            }
            #name{
                margin: 0;
                padding: 0;
                width: 100%;
                height: 50%;
            }
            #text{
                margin: 0;
                padding: 0;
                float: left;
                width: 80%;
                height: 50%;
            }
            #button{
                margin: 0;
                padding: 0;
                float: left;
                width: 20%;
                height: 50%;
            }
            #button:hover{
                background-color: red;
            }
        </style>
        <script>
            function send(){
                name = document.getElementById("name").value;
                text = document.getElementById("text").value;
                name = encodeURIComponent(name);
                text = encodeURIComponent(text);
                var xhr = new XMLHttpRequest();
                xhr.open("GET","chat.php?" + "Name=" + name + "&text=" + text + "&status=" + "0");
                xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
                document.getElementById("text").value = "";
                xhr.send();
            }
            function text(){
                var xh = new XMLHttpRequest();
                xh.open("GET","chat1.php?" + "status=" + "1");
                xh.setRequestHeader("Content-type","application/x-www-form-urlencoded");
                xh.send();
                xh.onreadystatechange = function(){
                if(xh.readyState === 4 && xh.status === 200){
                    document.getElementById("div").innerHTML = xh.responseText;
                    document.getElementById("div").scrollTop = 9999;
                }
                }
            }
            setInterval(text,500);
        </script>
    </body>
</html>

Код который записывает:
<?php
$str = "";
if($_GET["status"] == 0){
  $name = $_GET["Name"];
  $text = $_GET["text"];
  $fd = fopen("chat.txt","a");
  $a = "<b>".$name."</b>".$text."<br>";
  fwrite($fd,"\n");
  fwrite($fd,$a);
  fclose();
}
?>

Код который читает из файла:
<?php
$str = "";
if($_GET["status"] == 1){
  $fd = fopen("chat.txt","r");
  while(!feof($fd)){
    $str .= htmlentities(fgets($fd));
  }
  echo $str;
}
?>
  • Вопрос задан
  • 196 просмотров
Подписаться 1 Средний 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
netrox
@netrox
Вы используете htmlentities() во время чтения, так что результат ожидаемый. Но если хотите безопасно отображать разметку, то используйте HTML Purifier.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы