【发布时间】:2020-01-21 15:18:48
【问题描述】:
这里是初学者 PHP 编码器
我正在尝试使用 if 语句来检测会话,并在使用正确的用户名和密码登录时将导航栏从登录更改为注销。 我将 php 脚本放在 html 之前,但仍然出现“标头已发送”错误。 脚本:
<?php
session_start();
?>
<DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href=main.css>
</head>
<body>
<div id="wrapper">
<nav>
<ul class="main_menu">
<li><a href="mainpage.html">Main page</a>
<li><a href="contact.html">Contact Us?</a>
<li><a href="aboutus.html">About Us</a>
<?php
if (isset($_SESSION['username'])){
echo "<li><a href="Logout.php">Logout</a>";
} else {
echo "<li><a href="Login.php">Login</a>";
}
?>
</ul>
</nav>
</div>
</body>
</html>
我做错了什么?
【问题讨论】:
-
确保在您的第一个
<?php之前没有空格或换行符。 -
还要确保您的脚本文件保存为“UTF-8 without BOM”。如果您的文件确实在开头包含 BOM,PHP 会将其传递到要发送到客户端的输出中,然后这也构成“输出”。
-
<?php标签前有 4 个空格。 -
你的 li 也没有结束标签。
-
是的,谢谢,现在可以了,我刚刚删除了空格。
标签: php html error-handling