PHP删除数据后无法跳转至index.php问题求助
解决PHP header跳转报错:Cannot modify header information
这个报错是PHP里非常常见的问题,本质就是你在调用header()发送跳转指令之前,已经有内容输出到浏览器了——哪怕是一个不起眼的空格、换行,或者调试用的echo语句,都会触发这个问题。
从你的错误提示来看,输出是从config.php的第31行开始的,那咱们先从这里入手排查:
- 检查config.php第31行的内容:看看是不是写了
echo、print_r、var_dump这类输出语句?如果是调试时加的,赶紧删掉或者注释掉,这些内容会提前向浏览器发送数据,导致后续的header()无法生效。 - 检查config.php的空白字符:有没有在
<?php标签之前出现空格、换行?或者文件末尾的?>之后多了空白?其实PHP文件末尾的?>完全可以省略,这样能避免不小心留下的空白被输出。 - 检查文件编码的BOM头:有些编辑器保存UTF-8文件时会自动加上BOM头(三个隐形字符),这也会被当作输出。你可以用VS Code、Notepad++这类编辑器,把文件编码改成「UTF-8 无BOM」再保存。
接下来再确认delete.php本身:
- 确保在调用
header('Location:index.php')之前,没有任何输出——包括HTML标签、空格,甚至是<?php开头前的空白。如果有,全部清理掉。
如果以上方法都试过还是有问题,还有个应急方案:在脚本最开头(比如config.php的第一行)加上ob_start();,开启输出缓冲。这样PHP会把所有输出暂时存在内存里,直到脚本结束再发送,就能让header()正常工作了。不过这只是临时解决,最好还是找到根源去掉提前的输出,这样代码更规范。
内容的提问来源于stack exchange,提问作者guerreiroandre
相关产品推荐
相关产品推荐

