Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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_Mysql_Html - Fatal编程技术网

PHP头错误为什么不起作用?

PHP头错误为什么不起作用?,php,mysql,html,Php,Mysql,Html,当我运行它时,它会说: 警告:无法修改标题信息-标题已由发送(输出从第6行的xxxxx开始) 怎么了?您的php代码在从头('Location:index.php')发送头数据之前发送包含文件中的内容。HTTP头必须始终在发送任何其他内容之前发送 为了您自己的利益,请使用。您可能在header.php或您的die中回显/打印某些内容,它在调用header('Location:index.php')之前发送头信息;头必须是脚本发送的第一个内容。如果在调用头()之前有任何输出到页面函数,则会出现该错

当我运行它时,它会说: 警告:无法修改标题信息-标题已由发送(输出从第6行的xxxxx开始)


怎么了?

您的php代码在从
头('Location:index.php')
发送头数据之前发送包含文件中的内容。HTTP头必须始终在发送任何其他内容之前发送


为了您自己的利益,请使用。

您可能在
header.php
或您的
die
中回显/打印某些内容,它在调用
header('Location:index.php')之前发送头信息;

头必须是脚本发送的第一个内容。如果在调用头()之前有任何输出到页面函数,则会出现该错误。

要么
header.php
要么
connection.php
正在输出某些内容。发送内容后,无法修改HTTP头,因为此时已发送头

解决方案的一个技巧是:

<?php
require 'header.php';
require 'connection.php';

mysql_query("DELETE FROM quotes WHERE ID = $_GET[id]") or die("didnt delete properly");
header('Location: index.php');
?>

但是,您应该找出内容的发送位置并抑制它,或者将其重新排序,使其位于
header()调用之后

如果,正如我所怀疑的,
header.php
输出一个HTML头,您可以删除
require'header.php';
行——内容无论如何都不会显示,因为这是一个重定向


另外,请注意,HTTP标准要求位置标头的值为绝对URL。因此,
标头('Location:index.php');
将生成一个根据HTTP标准无效的HTTP响应。

我不知道这是如何工作的,但它是有效的!谢谢:):)另外,
$\u GET[id]
连接到查询中的unscaped是一种典型的SQL注入。危险。
<?php

ob_start();

require 'header.php';
require 'connection.php';

mysql_query("DELETE FROM quotes WHERE ID = $_GET[id]") or die("didnt delete properly");

header('Location: index.php');

ob_end_flush();

?>