Кодировка символов HTML-документа не была объявлена

Когда я нажимаю кнопку отправки формы, появляется следующее сообщение об ошибке:

"Кодировка символов HTML-документа не была объявлена. Документ будет отображаться с искаженным текстом в некоторых конфигурациях браузера, если документ содержит символы вне диапазона US-ASCII. Кодировка символов страницы должна быть объявлена ​​в документа или в протоколе передачи".

insert.html:

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>insert page</title></head>
<body>
<h1> Insert Page </h1>
    <form   action="insert.php"  method="post"  enctype="application/x-www-form-urlencoded" >
    <p>Title:<input type="text"  name="title" size="40"/></p>
     <p>Price:<input type= "text"  name="price" size="40" /></p>
     <p><input type="submit" value="Insert" />
    <input type="reset"  value="Reset" /></p>
    </form>    
</body>
</html>

insert.php:

<?php
   $title = $_POST["title"];
   $price = $_POST["price"];

  echo $title;
 ?>

Я не знаю, где проблема в моем коде. Пожалуйста, помогите мне.

Ответ 1

Добавьте это как первую строку в разделе HEAD вашего HTML-шаблона

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">

Ответ 2

У меня такая же проблема с самой базовой ситуацией, и моя проблема была решена с вставкой этой мета в голову:

<meta charset="UTF-8">

кодировка символов (которая на самом деле является UTF-8) html-документа не была объявлена ​​

Ответ 3

Хорошо, когда вы публикуете сообщение, браузер выводит $title - все ваши HTML-теги и doctype уходят. Вам нужно включить те, которые находятся в вашем файле insert.php:

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>insert page</title></head>
<body>
<?php 

   $title = $_POST["title"];
   $price = $_POST["price"];

  echo $title;


 ?>  
</body>
</html>

Ответ 4

Ваша начальная страница - это полная HTML-страница, содержащая форму, содержимое которой отправляется в insert.php при нажатии кнопки отправки, но insert.php необходимо обработать содержимое формы и сделать с ней что-то вроде добавления их в базу данных или вывод их на новую страницу. Ваш текущий файл insert.php просто выводит содержимое поля заголовка, поэтому ваш браузер пытается интерпретировать его как HTML-страницу и, очевидно, не работает, потому что он недействителен HTML (т.е. Он не содержится в "HTML", тег и т.д.).

Ваш файл insert.php должен вывести необходимый HTML-код и вставить туда данные формы.

Например:

<?php 

   $title = $_POST["title"];
   $price = $_POST["price"];

  echo '<html xmlns="http://www.w3.org/1999/xhtml">';
  echo '<head>';
  echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
  echo '<title>';
  echo $title;
  echo '</title>';
  echo '</head>';
  echo '<body>';
  echo 'Hello, world.';
  echo '</body>';

 ?>

Ответ 5

Вы должны изменить файл с .html на .php.

и добавьте следующую строку

header('Content-Type: text/html; charset=utf-8');