Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法修改已发送的标题信息_Php_Macos_Http Headers - Fatal编程技术网

Php 无法修改已发送的标题信息

Php 无法修改已发送的标题信息,php,macos,http-headers,Php,Macos,Http Headers,我知道这个问题已经被问过很多次了,但是我看到了很多不同的答案,我都试过了,没有一个对我有效。因此,让我向您介绍我的具体情况,看看您的建议: 我正在Mac OS X El Capitan上开发。我使用的是PHP版本5.5.31 我在php.ini文件中打开了输出缓冲。在发送标题之前,我一直在检查是否没有空格。以下是代码所指的行: (编辑_subject.php:6) (functions.php:3) 在过去的48小时里,我一直在拔头发。我希望您能给我一些指导。 谢谢 Chris以下行触发警告

我知道这个问题已经被问过很多次了,但是我看到了很多不同的答案,我都试过了,没有一个对我有效。因此,让我向您介绍我的具体情况,看看您的建议:

我正在Mac OS X El Capitan上开发。我使用的是PHP版本5.5.31

我在php.ini文件中打开了输出缓冲。在发送标题之前,我一直在检查是否没有空格。以下是代码所指的行:

(编辑_subject.php:6)

(functions.php:3)


在过去的48小时里,我一直在拔头发。我希望您能给我一些指导。
谢谢
Chris

以下行触发警告(functions.php第3行):


它试图在已经输出某些内容之后发送头(考虑到您的语法被破坏,可能是另一个错误/警告)。检查错误日志。

下面的一行触发了警告(functions.php第3行):


它试图在已经输出某些内容之后发送头(考虑到您的语法被破坏,可能是另一个错误/警告)。检查错误日志。

尝试在重定向之前刷新缓冲区。如果已经输出了一些内容,并且在本例中尝试通过重定向来更改标头,则会出现问题

可以在顶部使用ob_start(),在更改标头之前使用ob_end_flush()进行刷新


注意:刷新缓冲区只会隐藏问题,而不是解决方案。有一种不好的编码方法,试着找出它。

在重定向之前尝试刷新缓冲区。如果已经输出了一些内容,并且在本例中尝试通过重定向来更改标头,则会出现问题

可以在顶部使用ob_start(),在更改标头之前使用ob_end_flush()进行刷新


注意:刷新缓冲区只会隐藏问题,而不是解决方案。有一些不好的编码实践,请试着弄清楚。

从函数重定向是一种不好的方法。
functions.php
没有任何意义,应该会产生一个无限循环,但它甚至没有用正确的语法编写,所以您的代码应该是爆炸式的。尝试添加
错误报告(E_ALL)在PHP脚本的开头。根据我的理解,“已发送邮件头”不应该是您遇到的唯一错误。还有,随机位置的双星号是什么意思。如果它不在你的代码中,那么不要将它添加到你问题中的代码中;相反,写一些注释来引起人们对问题点的注意。从函数重定向是一种不好的方法。
functions.php
没有任何意义,应该会产生一个无限循环,但它甚至没有用正确的语法编写,所以你的代码应该是爆炸式的。尝试添加
错误报告(E_ALL)在PHP脚本的开头。根据我的理解,“已发送邮件头”不应该是您遇到的唯一错误。还有,随机位置的双星号是什么意思。如果它不在你的代码中,那么不要将它添加到你问题中的代码中;相反,写一些评论来引起对问题点的注意。
<?php require_once("../includes/session.php");?>
<?php require_once("../includes/db_connection.php");?>
<?php require_once("../includes/functions.php");?>
<?php require_once("../includes/validation_functions.php");?>
<?php find_selected_page();?> 
<?php 
if(!$current_subject){
**redirect_to("manage_content.php")**;
}
?>
$result = mysqli_query($connection, $query);
if ($result && mysqli_affected_rows($connection) >= 0) {
// Success
$_SESSION["message"] = "Subject edited succesfully.";
**redirect_to("Location: manage_content.php");**
} else {
// Failure
$message = "Subject update failed.";
}
<?php
function redirect_to($new_location) {
redirect_to("Location: . $new_location");
exit;
?>
redirect_to("Location: . $new_location");