Когда я нажимаю кнопку отправки формы, появляется следующее сообщение об ошибке:
«Кодировка символов 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');