PhP头和输出缓冲

PhP头和输出缓冲,php,header,buffer,ob-start,Php,Header,Buffer,Ob Start,所以。。。如果你有一个脚本是这样写的 while($result = mysql_fetch_array($resource)) { if($result['TITLE'] == $this->title) { header("LOCATION: profile.php?error=11"); } echo 'testing'; } //Create the database

所以。。。如果你有一个脚本是这样写的

while($result = mysql_fetch_array($resource))
    {
        if($result['TITLE'] == $this->title)
        {
            header("LOCATION: profile.php?error=11");
        }
        echo 'testing';
    }

    //Create the database profile
    $second_query = "INSERT INTO profiles(USER_ID, KEYWORDS, TITLE, INTRO) ";
    $second_query .= "VALUES(".$this->userId.",'".serialize($this->keywords)."','".$this->title."','".$this->intro."')";
    echo $second_query;
    if($result = mysql_query($second_query))
    {
        if(isset($file))
        {
            $this->update_profile($this->files);    
        }
        return true;    
    }else
    {
        return false;   
    }
第一个条件失败并将标头发送回。。。如果发送头后没有返回false,它是否继续运行脚本?我遇到了一个问题,如果在我的数据库中找到标题,它将返回错误,但它将继续运行该脚本,从而将重复的标题条目插入到我的数据库中


所以再一次。。。即使在发送头之后,脚本是否仍继续执行?aka(在本例中)重定向?

如果发送
位置
头时没有退出是,它将继续运行脚本

有效期:

header("Location: profile.php?error=11");
die(); // or exit();
想想看,
header
不是由PHP本身执行的,它是由浏览器执行的,当您应用
header(“内容类型:应用程序/强制下载”)时也是如此它告诉浏览器必须下载以下输出块


因此,即使您将头设置到另一个位置,脚本中的所有代码(除非我们退出)都将由
PHP
处理,然后浏览器将获取位置并重定向。

如果发送
位置
头时没有
退出
是,它将继续运行脚本

有效期:

header("Location: profile.php?error=11");
die(); // or exit();
想想看,
header
不是由PHP本身执行的,它是由浏览器执行的,当您应用
header(“内容类型:应用程序/强制下载”)时也是如此它告诉浏览器必须下载以下输出块


因此,即使您将头设置到另一个位置,脚本中的所有代码(除非我们退出)都将由
PHP
处理,然后浏览器将获取位置并重定向。

是的,它将这样做,所以在发送头后退出脚本

header("Location: profile.php?error=11"); 
exit;

是的,它会,所以在发送标题后退出脚本

header("Location: profile.php?error=11"); 
exit;

另一个简短的问题。。。我想在我的脑海里,我明白这个问题的答案;但是,当我在脚本继续运行的时候,我在页面的任何地方都没有看到echo“Testing”。我假设这与它首先发送头并忽略所有输出有关,但仍在运行脚本;我说的对吗?修改了我的答案,你现在应该明白了。看到你的编辑。。。我会在它允许的时候检查它,再4分钟,再次感谢。另一个快速问题。。。我想在我的脑海里,我明白这个问题的答案;但是,当我在脚本继续运行的时候,我在页面的任何地方都没有看到echo“Testing”。我假设这与它首先发送头并忽略所有输出有关,但仍在运行脚本;我说的对吗?修改了我的答案,你现在应该明白了。看到你的编辑。。。如果时间允许,我会再检查4分钟,再次感谢。