只有当文件以php代码开头时,php文件才起作用

只有当文件以php代码开头时,php文件才起作用,php,html,setcookie,Php,Html,Setcookie,我是php新手,想知道我在交错html和php代码的规则上遗漏了什么 这是我第二次遇到php文件只有在php标记位于文件开头时才起作用的情况。我的所有文件都不是这样。我想知道为什么会这样 以下是一个例子: 我的文件结构如下,工作正常: <?php ... my php code ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

我是php新手,想知道我在交错html和php代码的规则上遗漏了什么

这是我第二次遇到php文件只有在php标记位于文件开头时才起作用的情况。我的所有文件都不是这样。我想知道为什么会这样

以下是一个例子:

我的文件结构如下,工作正常:

<?php

... my php code

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Authentication</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="container">
</div>
</body>
</html>

认证
但是当我将html块移到顶部时(这是我最终想要的,因为我在php代码中使用了一些echo语句),只在底部留下以下内容:

</div>
</body>
</html>

那么php代码的某些部分就不起作用了。例如,我的setcookie函数不再设置cookie(尽管它不会出错),而我仍然可以很好地运行sql查询或echo语句。我遇到了一个类似的问题,一个完全不同的代码直接取自一个教程站点:只有当代码以开头时,这个示例才会起作用。在将任何输出发送到浏览器之前,某些操作(如编写cookie)必须由PHP执行,因为这些操作涉及设置响应头(总是在任何其他内容之前发送)。这似乎是这里的问题。

在将任何输出发送到浏览器之前,必须由PHP执行某些操作(如编写cookie),因为这些操作涉及设置响应头(总是在任何其他内容之前发送)。这似乎是这里的问题。

根据:

setcookie()定义一个cookie,该cookie将与文件的其余部分一起发送 HTTP标头。与其他标头一样,cookies必须在任何 脚本的输出(这是协议限制) 要求在任何输出之前调用此函数, 包括
标记以及任何空格

根据:

setcookie()定义一个cookie,该cookie将与文件的其余部分一起发送 HTTP标头。与其他标头一样,cookies必须在任何 脚本的输出(这是协议限制) 要求在任何输出之前调用此函数, 包括
标记以及任何空格


看看这些链接,它们会解释一些东西,永远不要忘记在stackOverflow上询问


看看这些链接,它们会解释一些东西,永远不要忘记在stackOverflow上询问


回答您的问题,只要结构正确,您几乎可以将标记放置在html代码中的任何位置

然而,php中有一些函数要求在执行之前不进行任何输出,比如setcookie、setsession、header..等等

这里的输出是:; a、 php代码中的echo语句。 b、 函数所在的标记之前的html代码

至于php中的一些代码不起作用。
通常,如果您的代码中有任何问题,那么php代码就无法工作。因此,最好在这之前检查它的语法是否正确。

回答您的问题,您可以将标记放在html代码中的任何位置,只要它的结构正确

然而,php中有一些函数要求在执行之前不进行任何输出,比如setcookie、setsession、header..等等

这里的输出是:; a、 php代码中的echo语句。 b、 函数所在的标记之前的html代码

至于php中的一些代码不起作用。
通常,如果您的代码中有任何问题,那么php代码就无法工作。因此,最好先检查它的语法是否正确。

对于cookie或会话。在输出页面中的任何内容之前,您必须先发出生成cookie或会话的代码,即标记之外的任何echo语句或html代码。用谷歌搜索准确的错误当你无法设置cookie时,你会收到一条消息,你会发现数百万次点击,解释发生了什么。简单地说:有些事情是通过HTTP头完成的,一旦你开始输出内容,你就不能“返回”并添加更多标题。您不应将HTML放在顶部:将所有要回显的信息保存到PHP变量中,并在打印HTML时使用PHP代码段,如:
,感谢大家如此快速地响应。这非常有意义。对于cookie或会话,您必须在输出之前发出生成cookie或会话的代码ut页面中的任何内容,即标记之外的任何echo语句或html代码。当您无法设置cookie时,用谷歌搜索您收到的准确错误消息,您会发现数百万次点击,解释发生了什么。简单地说:有些事情是通过HTTP头完成的,一旦您开始输出内容,您就无法“返回”并添加更多的标题。你不应该把HTML放在最上面:将所有你想要回显的信息保存到PHP变量中,当你打印HTML时,使用PHP代码片段,如:
,感谢大家这么快的响应。这非常有意义。