当我点击表单的提交按钮时,会出现以下错误消息:
未声明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;
?>
我不知道我的代码中的问题在哪里。请帮帮我。
将其作为HTML模板的HEAD部分的第一行添加
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
注意:如果
<head>
和这些元线之间有任何一条线(即使是注释)问题仍然存在,所以请确保添加了元行<head>
后直接
我在最基本的情况下也遇到了同样的问题,我的问题通过将这个标签插入文档的头部来解决:
<meta charset="utf-8">
html文档的字符编码(实际上是UTF-8)没有声明。
在这里,在这里,了解更多。
我在Firefox中运行表单应用程序时也遇到了同样的问题。在html代码中添加<meta charset="utf-8"/>
解决了我在Firefox中的问题。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Voice clip upload</title>
<script src="voiceclip.js"></script>
</head>
<body>
<h2>Upload Voice Clip</h2>
<form id="upload_form" enctype="multipart/form-data" method="post">
<input type="file" name="file1" id="file1" onchange="uploadFile()"><br>
<progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
</form>
</body>
</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更改为php.
并添加以下行
header('Content-Type: text/html; charset=utf-8');
您的初始页面是一个完整的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>';
?>