是什么导致 PHP 在完成脚本之前重定向标头


What Causes PHP To Redirect Header Before Finished With Script?

在我的网站上,我使用PHP文件做各种事情,与人交朋友,创建帐户等等。我将有一个这样的PHP文件:

<?php
    /*Does some sort of action to stored data on the server*/
    header('location: mysite.org');
?>

问题是它在PHP的其余部分实际更新之前就 mysite.org 了。这会导致问题,因为例如,如果用户发布消息,它不会立即显示,只有在 1 或 2 次刷新后才会显示。我该如何解决这个问题?我正在访问这些PHP文件与发送POST请求的HTML表单。

如果要

在某个"操作"之后触发标头,请包含条件语句。例如,如果您要发送 POST 数据,则可以执行以下操作:

if(isset($_POST)){
  //do stuff here
header();
}

由于数据存储在数据库中,因此可以在成功插入数据库后调用 header()。

if(!$mysql_query){//if it fails
//do nothing
}
else{
header();
}