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