Кодировка символов 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; ?> 

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

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

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

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

 <meta charset="UTF-8"> 

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

Когда вы публикуете сообщение, браузер выводит только $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> 

Ваша начальная страница представляет собой полную 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>'; ?> 

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

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

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