0

所以......如果你有一个脚本说明这样的事情......

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,它会继续运行脚本吗?我有一个问题,如果在我的数据库中找到标题,它将返回错误,但它会继续运行该脚本,从而将重复的标题条目插入到我的数据库中。

再说一遍……即使您发送了标头,脚本是否会继续执行?又名(在这种情况下)重定向?

4

2 回答 2

3

如果在location没有 yes 的情况下发送标头,exit它将继续运行脚本。

有效的:

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

想想它header不是由 PHP 本身执行的,它是由浏览器执行的,当你应用它时header("Content-Type: application/force-download");它告诉浏览器必须下载以下输出块。

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

于 2012-09-11T19:18:31.667 回答
0

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

header("Location: profile.php?error=11"); 
exit;
于 2012-09-11T19:21:25.510 回答