1

可能重复:
PHP 已发送的标头

我想重定向到某个页面,所以我尝试了这样。

www.example.com/logout.php?redirect=www.index-page.com/index.php
         echo $redirect = "'Location: http://".$_GET['redirect']."'";
       //redirects to index
       header($redirect);

但这对我不起作用。有什么建议吗?

4

6 回答 6

4

像这样的东西:

在注销链接中:

<a href="http://www.example.com/logout.php?redirect=<?=urlencode('http://www.index-page.com/index.php')?>"> Logout </a>

在 logout.php 页面上:

<?
    // destroy session
    header('location:'.urldecode($_GET['redirect']));
    die();
?>
于 2012-09-21T11:36:36.603 回答
2

如果不是它会生成,你不​​能使用echo之前的标题Warning: Cannot modify header information - headers already sent by

    $redirect = "Location: http://". $_GET['redirect'];
    header($redirect);
于 2012-09-21T11:22:47.197 回答
1

你不应该需要额外的'

$redirect = "Location: http://".$_GET['redirect'];
于 2012-09-21T11:21:27.123 回答
1

这是将用户重定向到 Google 的示例

$link='http://Google.com';
header("location: $link");

你可以把它变成一个函数

function redirectUser($link){
    header("location: $link");
}

然后你可以这样称呼它

redirectUser('http://google.com');

或者

echo redirectUser('http://google.com');

不会发生错误!

我建议你die();在重定向代码之后使用,中止来电代码

于 2012-09-21T11:30:24.407 回答
0

你只能使用redirect没有echo

header("Location: http://".$_GET['redirect']);
于 2012-09-21T11:23:42.020 回答
0

问题就在这里

echo $redirect = "'Location: http://".$_GET['redirect']."'";
//redirects to index
header($redirect);

你不应该在 header 之前使用 echo ,这会导致 warning header already sent

像这样使用它

$redirect = "Location: http://".$_GET['redirect'];
//redirects to index
header($redirect);
于 2012-09-21T11:25:35.050 回答