处理URL后PHP头奇怪的行为

时间:2015-01-12 13:17:38

标签: php url header

在我的网站上,我在网址中使用相当数量的GET参数来加载特定页面。一些可用的操作涉及调用另一个GET参数以执行某些操作(..&act=something)。具有此操作的PHP文件包含在页面顶部。在这个包含下面我有一些代码检查URL是否有效,反正标题将引导您到正确的。

假设我已经添加了一名玩家作为朋友。 请求的URL将是例如:

?id=3&request=clan&act=add&target=5

所以通过这个url,我应该进入case: 'add'部分,然后被该标题重定向。不过我所拥有的是这个标题被忽略了。相反,我通过检查部分重定向。更奇怪的是,添加的朋友出现在我的朋友列表中。为什么会这样?

<?php
if (isset($_GET['act']))    //this code is included
{
    switch ($_GET['act'])
    {
        case 'add':
            //do something
            header('Location: /index.php?id='.$cuid.'&request=clan&section=members');
        break;
    }
}

//some other code

if ($_GET['request'] == 'clan')
{
    if ((!isset($_GET['section']) || ($_GET['section'] == '')) && ($c_guid != 0))
    {
        header('Location: /index.php?id='.$cuid.'&request=clan&section=info');
    }
}
?>

1 个答案:

答案 0 :(得分:1)

输出header实际上并不会停止您的脚本!所有其他代码也在运行。如果您不希望执行任何其他代码,则需要明确exit

相关问题