PHP 文件字符编码未声明错误



我有一个PHP文件,运行时会产生白屏和此错误: "未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档在某些浏览器配置中将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。 查看此网站上的其他答案,最常见的答案是 加

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

<head>.但是我有这个并且仍然收到错误。我也试过

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

在 PHP 中,它仍然不起作用。当我删除所有 php 代码时,它可以工作,有人知道我的代码中可能有什么会导致此错误吗?我是PHP的新手,仍然不知道我在做什么。我的完整PHP代码是这样的:

$favisit = $favanimal = $age = $area = "";
$viserror = $anierror = $ageerror = $areaerror = "";
$errormessage = $extra = "";
$errorlist = [$viserror,$anierror,$ageerror,$areaerror]
$counter = 0;
if ($_SERVER["REQUEST_METHOD"]=="POST") {
if (empty($_POST["favisit"])) {
$viserror = " the favorite bit of your visit";
} else {
$favisit = test_input($_POST["favisit"]);
}
if (empty($_POST["favanimal"])) {
$anierror = " your favorite animal";
} else {
$favanimal = test_input($_POST["favanimal"]);
}
if (empty($_POST["age"])) {
$ageerror = " your age";
} else {
$age = test_input($_POST["age"]);
}
if (empty($_POST["area"])) {
$areaerror = " the area where you live";
} else {
$area = test_input($_POST["area"]);
}
}
foreach($errormessage as $error) {
if ($error == "") {
$counter = $counter+1
}
}
if ($counter != 0) {
$errormessage = "You have not filled out"
if ($counter == 1) {
foreach($errormessage as $error) {
if ($error == "") {
$errormessage = $errormessage . $error . ".";
}
}
} else {
$extra = ","
foreach($errormessage as $error) {
if ($error == "") {
if ($counter == 1) {
$extra = " or"
}
$errormessage = $errormessage + $extra + $error + ".";
$counter = $counter -1;
}
}
}
}

同样,我仍然是PHP的新手,所以这可能是一个愚蠢的错误,我无法接受。提前感谢!

您有多个 PHP 错误。例如,几行缺少;。因此,您的请求可能会返回 500,并且您在错误日志中收到错误。

这意味着你得到一个空的身体(显然它没有任何元声明。错误是真实的,但具有误导性(

您可能会从中受益 如何显示 PHP 错误?

例子:

  • $counter = $counter+1需要;
  • $errormessage = "You have not filled out"需要;
  • $errormessage = $errormessage + $extra + $error + ".";应该与.连接,而不是+
  • $extra = ","需要;
  • $extra = " or"需要;

最新更新